JDK-6655646 : dynamic languages need dynamically linked call sites
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2008-01-27
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u18Fixed 7Fixed hs16Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
See "Notes on an Architecture for Dynamic Invocation"

Dynamic languages have rich, loosely-linked call sites.  The present JVM architecture supports Java call sites directly, and these are statically linked, with carefully limited dynamic linking and dispatch.  It is difficult to emulate more dynamic call sites; the simulation overheads make for complex implementation, voluminous bytecodes, slow interpreted execution, and poor optimizability in the JIT.

The solution is JVM support for a new sort of call site, sometimes called "invokedynamic".  This is the prime deliverable of JSR 292.

In JSR 292 Expert Group deliberations so far, dynamic call sites appear to require a separate, lower-level facility for specifying independent units of behavior, called called method handles (6655638).  The present RFE would add dynamic (re-)linking and an architecture for programmable method guards (type dispatch) to obtain the desired dynamic call sites.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/be93aad57795

EVALUATION http://cr.openjdk.java.net/~jrose/6829144/