Re: Outstanding parrot issues?
[email protected] (Nicholas Clark) Fri, 30 Apr 2004 12:24:38 +0100
| Newsgroups | perl.ponie.dev |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Apr 29, 2004 at 11:09:28AM -0400, Dan Sugalski wrote: > Since I've only been mildly keeping track... > > Are there outstanding issues that Ponie has with Parrot and, if so, > which ones? (If there are open bug reports for them that's cool, skip > those if you want) I'm not sure if we have any open bug reports. I'll list the issues I can remember here now, and check them against bug reports at the weekend. ponie is failing some regression tests, (and skipping others that would fail) because of signal handling. Ultimately it would be nice if carrot's signal handling was as transparent as perl's when embedded, and ultimately pone will be using parrot's runloop so it will only be using parrot's signal handling, but I'm wondering 1: Right now, would it be possible for parrot only to install its signal handlers when it starts the runloop? (given that ponie isn't using the runloop) 2: Long term can parrot interwork nicely with existing signal handlers by storing the function pointer returned by signal() when it installs its handler, and calling that function when its signal handler is called? IIRC ponie isn't playing nicely with how parrot does embedding. I'd like parrot's embedding to be as "clean" as perl's. IIRC parrot is currently assuming that we give it the address of a local variable (for the stack top) before doing anything else, which is making a big assumption about the calling locations of various parrot functions within the code of the embedding program. Would it be possible for parrot to provide an embedder's interface to all the (exported) functions that checks whether the stack top pointer is set, and if not (ie NULL) it pulls the address of a local variable in it (and restores it to NULL on the way out). I think that this would mean that any externally visible parrot call could be made without having to set up any stack top, and all the internal garbage collection would work perfectly. IIRC there only interface to call into parrot bytecode subs currently assumes that one sets up the full parrot calling convention (eg putting values into PMC regs). Will there be a way to call in without needing to become an extender of parrot? Can the NCI code work for calling into parrot, as well as calling out? Also IIRC parrot is still creating globally visible symbols that aren't well prefixed, so may cause linker fun. But that's not really a ponie issue. Sorry if I'm behind the times on parrot, and some of what I remember is wrong. Nicholas Clark