Near Infinity

JVM Language Summit 2009 - Day 3

By Bryan Weber

Sep 18, 2009

Terrance Parr - ANTLR

Terrance is entertaining and energetic.  He showed some of the challenges ANTLR faces and had some requests from the JVM that are slightly different from most of the language implementors.

Stadler - JVM Continuations

Another research talk.  The definition of continuations caused a side discussion, but I really enjoyed this talk.  It is only implemented in the c1 client compiler.  Security (serialization) and finally blocks are some of the unanswered questions here.

Wimmer - trace-based JIT

More research (UC-Irvine, but really more from Linz).  Discussed TCO, client compiler visualization tool and trace based JIT.  Uses traces and not just heuristics to identify hotspots for compilation.  Works with blocks as well as methods.  Think tracemonkey for Hotspot.

Gafter - Static dynamic types

Neal spoke about the new dynamic keyword in C# and the DLR.  Described the DLR as basically a MOP.  I would love to see a clean language implementation on the JVM with this sort of type system.

Siek - Blame tracking

Blame tracking is tracking type problems in dynamic languages and blaming the proper point in the code that made the initial improper call.  It also works for mixed static/dynamic type systems.  Currently it only identifies the outmost problem for space efficiency reasons.

Field - JavaFX binding

Bindings are handled by the creation of locations which can be pretty inefficient.  This talk went through the various rounds of attempting to make bindings fast(er).

Baker - Jython

History of Jython.  Optimizations.  Mostly discussed the libraries and future direction.

Remi Forax - 292 (invoke dynamic aka indy) backport

Backport works via proxies and code weaving since the byte code instruction is not available.  Two transformations occur via Java agents and the performance is very respectable.  It works with JDK 5 and 6.

The final session (not recorded) was by Slava on the Factor programming language compiler. Factor is a stack based language like Forth that does NOT run on the JVM.  This session was awesome.  While there weren't any new compiler optimizations that I hadn't heard of previously, it is very impressive was Slava has done with Factor.  If you haven't ever checked it out, the url is http://factorcode.org/  Again, kudos to Sun for inviting non-JVM participants, it really adds to the quality of the event imho.

PS Linux doesn't work well for presentations. :)
PPS People want TCO
PPPS 64k byte limit in methods is a problem
PPPPS The amount of cooperation among projects seems to have increased significantly since last year
PPPPPS Startup time needs to be improved