Dan Sugalski <[EMAIL PROTECTED]> wrote:

> The first is the CPS style chews through continuation objects at a
> massive rate, and using them means that everything needs to be COW.

We don't have COWed stacks, they are all single chunk already.

> A return continuation is a *potential* continuation.

Ok, the return of the return continuation recycling. But it's likely a
bit more complicated. Creating a Continuation somewhere down a call
chain has to mark all return continuations up as non-recyclable. And as
the Continuation PMC can get passed anywhere, it looks to me that just
the presence of one Continuation PMC invalidates all return
continuations.

The proposed scheme with big register chunks and a watermark at the
frame pointer of the "highest" continuation looks more sane.

> ..., and it will completely invalidate all the
> existing JIT code.

Only i386, which is the only one that does not already a CPU register
indirect addressing of Parrot registers. i386 is currently being fixed.
When that's done, all JIT platforms basically need *one* additional
instruction in one place, e.g. for PPC:

  r16 = BP_OFFS(r13)    # get base bointer from interpreter

> ..., but I'm kinda sick at the moment,

Get well soon.

leo

Reply via email to