We have about 500K lines of Smalltalk code which we want to run on the JVM. The approach we picked was to translate the Smalltalk byte codes to jvm byte codes. We (oscar and myself) had looked at this prior to 292 but it seemed like a lot of work. But after attending the last dynamic languages conference we decided to give it a shot with invoke dynamic.
Wow, the implementation went extremely well. We were able to implement all of the Smalltalk constructs with what is there today. We are loading an image ( ST's code base), creating java classes on demand, and using invoke dynamic to execute Smalltalk code on the jvm. All this with a part time effort. The ease of putting a true dynamic language on the jvm was a wonder in itself. All this with about 3K lines of java code.
Mark Roos in a post to the mlvm-dev mailing list at OpenJDK.