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?

Reply via email to