Wednesday Jul 21, 2010
Thursday Jun 24, 2010
By john.rose on Jun 24, 2010
Wednesday Nov 25, 2009
By john.rose on Nov 25, 2009
Tuesday Nov 10, 2009
By john.rose on Nov 10, 2009
Bytecodes meet Combinators: invokedynamic on the JVM
John Rose, VMIL '09 Workshop at OOPSLA, Orlando, October 2009
The focus of the paper is on evaluating the architectural effect of adding invokedynamic to JVM bytecodes. The description of JSR 292 is partial and provisional but I expect the part I have described is mostly stable. There is a lot of overview of (a) current implementation techniques for JVM languages, (b) how these techniques adapt to invokedynamic, and (c) how a JVM might optimize invokedynamic. The treatment is not specific to HotSpot. I hope it is useful to JVM teams and to dynamic language implementors.
Thursday Sep 17, 2009
By john.rose on Sep 17, 2009
It's been wonderful so far, and I'm looking forward to the final day tomorrow. You can see what we've been talking about by clicking on the talk links in the agenda; most of the slide decks are uploaded there...[Read More]
Monday Jul 27, 2009
By john.rose on Jul 27, 2009
Thursday Jun 04, 2009
Tuesday Jun 02, 2009
By john.rose on Jun 02, 2009
Monday Jun 01, 2009
By john.rose on Jun 01, 2009
Wednesday Apr 15, 2009
By john.rose on Apr 15, 2009
May 8 update: After the conference I enjoyed a video chat with Charles Torre of Microsoft Channel 9 about the Da Vinci Machine Project. Charles has posted a number of very good interviews from Lang.NET; check out those with Lars, Gilad, Anders, and Erik. Also, the Lang.NET organizers have posted synchronized slides and audio of the talks.
Wednesday Mar 25, 2009
By john.rose on Mar 25, 2009
Monday Feb 16, 2009
Wednesday Oct 01, 2008
By john.rose on Oct 01, 2008
Pizza with extra MOP
Here are my top-level takeaways:
invokedynamicdesign is sound, but the exposition needs more work.
- The synergy of JSR 292 with Attila Szegedi’s MOP looks very promising.
- Interface injection is going to be helpful to a lot of people, and it is not hard to implement (on top of method handles).
- Tailcall and value types will never go away. We have to plan for them.
- Unless we do this sort of innovation on the JVM, crucial multicore research will move elsewhere.
- We have to do this again next year.
Tuesday Aug 26, 2008
By john.rose on Aug 26, 2008
In the wee hours of this morning, the JVM has for the first time processed a full bootstrap cycle for
invokedynamic instructions, linking the constant pool entries, creating the reified call site object, finding and calling the per-class bootstrap method, linking the reified call site to a method handle, and then calling the linked call site 999 more times through the method handle, at full speed. The method names mentioned by the caller and the callee were different, though the signatures were the same. The linkage was done by random, hand-written Java code inside the bootstrap methdod.
The example code is included in the Email, and also posted (as a truly rebarbative test in a NetBeans project) with the patches. As for the JVM code, it only works on x86/32; the next step is to move the assembler code into the right files, and finish the support for x86/64 and SPARC.
Happy International Invokedynamic Day!
(And by a curious anagrammatic permutation of letters, it could also be International Davinci-Monkey Day. My co-workers, who watched me pounding on my keyboard all summer, claim to see some significance in this.)
Saturday May 31, 2008
By john.rose on May 31, 2008
John R. Rose
Java maven, HotSpot developer, Mac user, Scheme refugee.
Once Sun and present Oracle engineer.