• JVM
    August 26, 2008

Happy International Invokedynamic Day!

John Rose
I have been working furiously this summer, patching the OpenJDK HotSpot JVM for the JSR 292 implementation of dynamic invocation.

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 Email thread of the announcement is truly international, since Guillaume Laforge celebrated by sending virtual champagne.

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.)

Join the discussion

Comments ( 4 )
  • Sam Pullara Tuesday, August 26, 2008

    Truly epic!... benchmarks or it didn't happen :)


  • John Rose Tuesday, August 26, 2008

    No benchmarks yet, and no performance. This milestone, significant as it is, is only step 3 in the list detailed in my MLVM-DEV message of August 4. Ref: http://mail.openjdk.java.net/pipermail/mlvm-dev/2008-August/000166.html

  • anjan bacchu Monday, September 1, 2008

    hi there,

    congrats!! Can you update the post with some important notes from the email thread to make it easier for JVM dynamic language noobs to understand the significance of what you did ?

    thank you,



  • Rémi Forax's Blog Monday, September 22, 2008
    [Trackback] I will be at JVM Language Summit as a speaker to talk about JSR 292 backport.
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.