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]>