Jeff Clites <[EMAIL PROTECTED]> wrote: > Just to clarify: This is the approach wherein each frame gets a fresh > set of registers, and function call and return (or continuation > invocation) copy the relevant registers between the register sets?
Yes. Function arguments and return values get copied as well as the interpreter context. Its basically the same as was in, until around 0.0.3, except that we had 4 register frame pointers and 4 stacks. I really want to have just one register frame pointer now. It avoids 3/4th of the stack push/pop overhead and mappes nicely to run loops, including JIT. > ... And > this isn't quite the scheme from the "towards a new call scheme" > thread, in which we'd be duplicating the interpreter context for each > frame, right? (And the latter was what you did in "Proof of concept - > hack_42 (was: the whole and everything)", right?) Yep. That scheme was a bit too error prone during implementation attempts and it didn't perform well for recursive functions. Changing the interpreter pointer, or having an indirection fot the access to the interpreter, isn't really simple. > JEff leo