On Wed, Apr 17, 2002 at 05:43:01PM -0400, Dan Sugalski wrote: > At 10:16 PM +0100 4/17/02, Dave Mitchell wrote: > >On Wed, Apr 17, 2002 at 04:57:21PM -0400, Dan Sugalski wrote: > >> At 9:48 PM +0100 4/17/02, Dave Mitchell wrote: > >> >On Wed, Apr 17, 2002 at 04:34:12PM -0400, Simon Glover wrote: > >> >> I thought lexicals were going to live in a symbol table now? In which > >> >> case, they're definitely going to depend on implementing hashes first. > >> > > >> >The first does not necessarily imply the second. > >> > >> True, but in this case it does. Symbol tables are hashes, as are the > >> lexical scratchpads. (Hashes you can look up by integer index, mind, > >> but hashes nonetheless) > > > >I'm not yet convinced that hashes are the best data structure for > >lexical symtabs, given their heirarchical and dynamic nature. > >But lets not get into that debate just now :-) > > Oh, hashes are exactly what we want, but they're *special* hashes. :) > > The hash PMC types used by symbol tables have the interesting > property of being able to look entries up by offset, not by key, and > the offset is determined by insertion order. > > The perl 6 equivalent would be: > > %foo = ('a', 1, 'b', 2, 'c', 3); > print %foo[2] > > printing 3. Access by offset is fast, so we're fine. (We may even > peek under the hood, just to be Extra Evil) > > At the moment, we don't have to support cascading lexical > scratchpads--since we know at compile time which variables we're > accessing and where they come from, we can install trampoline entries > in the current scope's scratchpad and not have to search outward at > runtime.
Hmmm, I think I still stand by both the statements I made: 1) I'm not yet convinced that hashes are the best data structure for lexical symtabs, given their heirarchical and dynamic nature. 2) But lets not get into that debate just now :-) :-)) -- "Do not dabble in paradox, Edward, it puts you in danger of fortuitous wit." Lady Croom - Arcadia