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