In order to implement JSR 292, a.k.a. invoke dynamic, something called richochet frames is introduced into the hotspot vm. I'd like to know more about it, such as invoke dynamic itself, how richochet frames implements it, where the name richochet comes from, etc.

Google seems to be not very helpful here. Any pointers would be appreciated. Or better, someone please writes blogs about it :)


Basically you want to join the mlvm-dev mailing list at openjdk.java.net - here are their archives. You'll also want to join the JVM Languages Google group.

Please do peruse the archives before posting, you'll get a much better reception if you've shown that you did some of your own research first :-)

From John Rose:

The most complicated bit of assembly code in the HotSpot method handle implementation is "ricochet frames", which natively implement foldArguments. But it was a good investment, because this particular pattern of MH combination is a sort of universal glue for making every other kind of recursive combination.

  • Thanks for your answer. I did do some google searches but it didn't show anything useful. I even dig into JSR 272 specification but it has nothing to say about implementation details. Anyway, thanks for the pointers.
    – edwardw
    Dec 6 '11 at 10:04
  • Yeah it's not well documented and it's stuff at a level where I'm just glad there are people a lot smarter than me working on this stuff :-). Do ask your Q on those mailing lists though, they're a great bunch of people and always willing to help out a new person. Dec 6 '11 at 13:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.