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