On Mon, Sep 02, 2002 at 08:25:30AM -0700, Sean O'Rourke wrote:
> On Mon, 2 Sep 2002, Dan Sugalski wrote:
> 
> > Here's a call for potential goals for the 0.0.9 release of parrot. My list:
> >
> > *) Exceptions
> > *) initial PMC freeze/thaw API
> > *) Sub indicators in bytecode
> > *) On-the-fly bytecode section generation
> 
> *) methods (in PASM and C)
> *) implementation of some methods for the Perl classes
> *) stashes

*) Resolve the prompt finalization problem (good luck...)
*) PMC name, implementation cleanup
*) Filename, line number tracking

The second one requires more comment. Right now, we have a set of
language-independent PMCs (Array, Continuation, Coroutine, Key,
Pointer, etc.) and a set of Perl PMCs (PerlArray, PerlString, etc.).
But the exact methods implemented on each one are a little tangled,
and many of the Parrot PMCs refer to and create Perl PMCs on the fly.
For example, when you increment an nonexistent Array slot, it
automatically creates a PerlInt to hold the number. Similarly,
PerlUndef gets spontaneously created all over the place. Some of these
problems can probably be fixed by renaming PMCs (eg PerlUndef ->
Undef); others by making a generic base PMC and having the Perl PMC
inherit from it; and still others need to be rethought.

On a related note, we should probably have a test case that tries
every possible vtable entry for every PMC and makes sure that the
result makes sense (mostly meaning that things throw 'operation not
supported' type errors when appropriate.)

Reply via email to