Dan Sugalski: # This is just a collection of random notes I put together while serving # jury duty. There's not much coherence here, but better to get it down # than not.
"Is this case worthy of the death penalty?" "Hmm? Yeah, sure, whatever." :^) # Global namespaces need to be multilevel the way lexical spaces # are. Ruby and Python both require this. (Well, it's not required but # it makes things easier) Er...why? # Objects need to have a private method cache, as we may need per-object # methods. Yup. # We need per-PMC attributes. Yup. # Each object might have its own private variables. We'll know at # compile-time, though. I imagine we can just store an array (PMC or C-level is uncertain) behind an Object and work from there. # Attributes are done as a hash of hashes. Each interpreter has a # pointer to an attribute hash, whose keys are the attribute names. The # values will be hash pointers. Those hashes will each have a key which # is a PMC pointer (hashed up somehow) and the value is the attribute # value. If you're talking about 'is'-style attributes, why not have them be attached to the PMCs themselves? # We need private methods for objects. Call stack examination should handle that. # There are three types of interpreters: # # 1) Standalone # # 2) Concurrent (multiple interpreters that share some data, may run # simultaneously with threads) Preemptive multitasking. # 3) Linked (multiple interpreters that access the same data, only one # can run at once, and only switch at safe times) Cooperative multitasking (with data sharing). # How the heck should %MY work for private variables? Should it at all? No comment. # There are actually three (at least) groups of parameters that need to # be taken independently. # # 1) The object a method's called on # 2) The parameters passed to the sub/method # 3) The yield block. (A ruby thing, which is really kind of cool) >From what I've been reading, at least 1) and 2) are two sides of the same coin. Larry and Damian seem to be expecting that you'll be able to put a colon anywhere in a list and it should Just Work. (And I did confirm at some point that : will be the separator between the object and its parameters.) # Subs need the following bits: # # A starting scratchpad pointer # A current entry point (In case the sub's yielded, this is where you # start back up) # A default entry point # A stack top pointer to restore (for continuations) # A register frame pointer to restore (for continuations) # Parameter descriptor # JIT/native code pointer # Flags # Bytecode block info pointer No comment. --Brent Dax [EMAIL PROTECTED] Configure pumpking for Perl 6 <obra> mmmm. hawt sysadmin chx0rs <lathos> This is sad. I know of *a* hawt sysamin chx0r. <obra> I know more than a few. <lathos> obra: There are two? Are you sure it's not the same one?