happy new year!
John Rose
John.Rose at Sun.COM
Tue Feb 10 15:13:29 PST 2009
Hey, Arnold, I just reintegrated the latest patch I had from you and
posted it to the mlvm repo.
I also stuck your design notes (from your patch) on the wiki, FWIW:
http://wikis.sun.com/display/mlvm/TailCalls
I'd be happy to take the next layer when you have a good moment to
shoot it my way.
At some point, we need to figure out the right kind of test harness to
put on the repo (or wherever it belongs). We'll probably want to hack
some sort of tunnel through javac so we don't have to play with jasm
to make use cases, and so we can begin to get the feel of using it as
a first-class feature of the JVM stack.
Thanks for all your work so far. It's pretty amazing stuff!
We really want tail calls in order to build good method handle
combinators (hence flexible invokedynamic runtimes) that don't blow
the stack and introduce extraneous transition frames.
Best,
-- John
On Jan 21, 2009, at 3:46 AM, Arnold Schwaighofer wrote:
> A prototype was implemented on x86-32 and will hopefully be soon
> availabe on the mlvm site.
> The modified hotspot supports tail calls in the interpreter, client
> and server compiler.
> To mark a call as tail call the programmer emits a 'wide' byte code
> before the various invoke... instructions.
> The verifier checks that the call really is a tail call (i.e the last
> thing the method does before it returns etc.).
> Hotspot guarantees that a series of such tail calls execute in bounded
> stack space. That is no stackoverflow exception happens.
More information about the mlvm-dev
mailing list