On Tue, Jan 24, 2006 at 05:43:25PM +0100, Leopold Toetsch wrote:
> *) what is Stash.parent_stash? (It's currently unused)

Historically, "stash" is perl5-guts-speak for "namespace".  However, I see
in Parrot the Stash structure which seems quite different.  From its usage,
I gather it's an attempt at layered or translucent namespaces -- where one
namespace underlies another and is only consulted when the top one does not
contain the name being searched for.  Interesting, but puzzling.  Let it
live.  For now.

> *) I presume that the stash_hash is the thing, that holds the top-level 
> namespace.

Each stash_hash should now hold a pointer to a namespace.  But why call it
"top-level"?  It seems to me, based on its construction, that a Stash could
refer to any namespace, not just the top-level one.

> *) what is vtable->package? A pointer to the namespace PMC of this 
> class? (It's currently unused)

Beats me.  Vtables don't have namespaces.  Pleaes just comment it as "WTF?"
(or equivalent :-)).

> *) what is Parrot_Context.current_package? Shoudn't that better be a 
> PMC* current_namespace (if we want to cache the current_subs's namespace)?

Yes, it should be current_namespace.  And I think the 'getpackage' and
'setpackage' opcodes are going away, to be replaced with more robust
namespace operations.  (I have no idea why anybody [even Dan :-)] would have
thought that caching the current package's *name* would be particularly wise
or useful.  Names change, but a PMC* is forever.)
-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to