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. _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev