tail call optimisation question

John Rose 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  
implementations.

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.

-- John



More information about the mlvm-dev mailing list