Dan Sugalski <[EMAIL PROTECTED]> wrote:

>     load_global $P1, ['foo'; 'bar'] '$baz'
>     load_global $P2, ['foo'; 'bar'] '$xyzzy'

> The difference there being that, rather than having two separate
> constant keys we have one constant key and two string constants. This
> should result in less memory usage and a faster startup time for
> bytecode that accesses globals (which should pretty much be all of
> it).

I already commented on the last one: Above syntax is hmmm - strange
(bracketed access on nothing doesn't really fit). So why not use a
scheme, that matches current syntax:

   getinterp $P1        # (or) get_namespace PMC
   set $P2, $P1['foo'; 'bar'; '$baz'] # get var

and (optimized for multiple access)

   set $P3, $P1['foo'; 'bar']   # get foo::bar namespace
   set $P2, $P3['$baz']         # get var

This needs a bit of work (CSE) and eventually one more register, but
makes it usable for all multi-keyed opcodes - no special syntax is
needed, just a namespace PMC.

Anyway - my original question was on attributes: how are these accessed?

leo

Reply via email to