At 09:16 PM 7/17/2002 -0400, Dan Sugalski wrote:
>Melvin (and the rest of you... :)
>
>Are subroutine PMCs at a point where we can use them? If not, that's fine, 
>but if so, they can go on the list 'o things. (And we can add global 
>variables, if they didn't make it in the 0.0.6 release notes)

Subs, co-routines and continuations are at a very limited, but functional
state.

Basically you can create a PMC with a bytecode address or label
and use the call/callco/callcc ops on it.

We can:
-capture and restore continuations.
-call, yield and re-call coroutines.
-call plain subs

Problems:
-The ops are wrong, they should be PMC methods
-For continuations the stack frames currently won't
  get collected (I started work on it). Also you have to turn off the garbage
  collector to play around with continuations, since I haven't put in the
  custom mark routine yet.
-Since we have no symbol tables yet, you have to create them at runtime.
-We have no lexicals so only registers and stack work for the closure variables
-The save/restore of a context is currently a bit more expensive
   than it has to be, but it works.
-COW copies the whole stack for continuations, but I think I already put in
  a patch that reworked stacks enough to allow COW on a chunk by chunk
  basis.
-About 100 other things

Sometime in the last couple of months I mailed samples of co-routines
and continuations to the list. I'll try to dig that up if you don't have it.

-Melvin


Reply via email to