Matt Fowles <[EMAIL PROTECTED]> wrote:
> Leo~

> On Wed, 24 Nov 2004 04:55:24 +0100, Leopold Toetsch <[EMAIL PROTECTED]> wrote:

>> I've clearly stated that lexicals aka non-volatiles have distinct
>> registers.

> Thus for these large subs, won't this be a large overhead?

Why? It's actually less overhead. In the normal case these lexicals are
created/stored in the scratchpad PMC array. So they have a storage,
equally large anyway. Accessing these lexicals is an array lookup at
best. Please look again at the picture I've drawn.

This approach saves the scratchpad PMC (or better the array part of it)
and the distinct non-volatile area, what we've now. It's cheaper.

>> It was too slow - remember a factor of 5!

> Yes, but that is because we COPIED the data for every invocation.
> With what I am proposing we would only need to copy the data when
> invoking a full continuation

That doesn't work. If you create a real continuation all continuations
up the call chain have to be real continuations. And copying or not
imposes different semantics on register usage.

leo

Reply via email to