tail call optimisation question
John.Rose at Sun.COM
Mon Mar 16 15:52:52 PDT 2009
On Mar 16, 2009, at 7:27 AM, Ben Evans wrote:
> Or is the intent that the new form of wide will never appear
> in .class files, but only in code which has been generate
> dynamically, ie so that this is a private implementation detail to
> HotSpot and can't cause problems to other JVMs?
As with all the mlvm subprojects, tail call is an experimental
extension to the JVM architecture.
In order to become one of the Java standards (and in order to extend
the official JVM standard in particular), it will need to pass various
gates. Implementability and customer demand are the most fundamental
gates. The Java Community Process owns the standards, so another key
gate is forming an Expert Group to officially verify that it is
practical not just for Hotspot, but for all JVM implementations.
In the mean time, as an experimental feature, it cannot be used as if
it were an accepted standard. But it can be the subject of
experimental studies. It can also be an internal implementation
mechanism, along the lines of the Hotspot-specific code in sun.misc.
Such experimentation is necessary before we go to the JCP and ask the
JVM vendors to invest in new functionality within their JVM
There's no fast path here. Because the Java ecosystem is not based on
any one vendor (not even Sun), it takes time to implement, evaluate,
and promulgate changes.
More information about the mlvm-dev