for review (XXL): 6655638 method handles for invokedynamic

John Rose John.Rose at Sun.COM
Tue Mar 10 15:48:02 PDT 2009


Thanks for the reviews so far.  I've posted the remainder of  
meth.patch here:

6655638: dynamic languages need method handles
   http://cr.openjdk.java.net/~jrose/6655638/webrev.00/  (not yet  
integrated)

(Long live cr.OJN!  Goodbye webrev.invokedynamic.info.)

Later today (probably) I will update the index page to have useful  
comments about how each file is changed.

After responding to any further reviewer comments, I'll push the  
results.

Because it's a large body of code, and it will help to have a record  
of what we do, let's keep review comments public.

If the comments lead to large changes, I may have to ask for a re- 
review.  If that happens, I'll publish at least a diff of webrev.N to  
webrev.N+1, maybe even a 2nd-order webrev, if I can figure out how.

About self-review:  I will be reviewing my own code, too, and if the  
review period is long enough, may wish to make amendments.  I'll email  
a public comment if this seems necessary.  (I've "discovered" that  
people don't like it when they encounter unexplained changes mid- 
review.)

Meanwhile, I'm working on the same code that's being reviewed.  For  
big reviews like this one, I'll try to keep separate workspaces for  
review and further engineering.  (I wouldn't attempt this without hg/ 
MQ and Emacs diff-mode.)  Therefore, if a review takes a long time  
(which this one has) it may be followed immediately by a second review  
cycle with a new bug ID, to push the adjustments separately.  In fact,  
I'll allocate the bug ID now:

6815692: method handle code needs some cleanup (post-6655638)
   http://cr.openjdk.java.net/~jrose/6815692/webrev.00/  (not yet  
posted)

As that settles down I will be asking for reviews on this next step:

6655646: dynamic languages need dynamically linked call sites
   http://cr.openjdk.java.net/~jrose/6655646/webrev.00/  (not yet  
posted)

After that, there will be individual pushes for additional assembly  
code (x64 and/or sparc), compiler optimizations (2-3 steps there), and  
various smaller things like compressed oops and cppInterpreter  
support.  And of course bug fixes and cleanups as needed.

Onward!

-- John

On Jan 20, 2009, at 2:53 AM, John Rose wrote:

> This is part of the JVM side of the JSR 292 Reference  
> Implementation.  It should have no effect on application execution,  
> unless one of the new flags is turned on (chiefly -XX: 
> +MethodHandleSupport).
>
> Present limitations:
> - It works only on x86/32.  (No sparc, compressed oops, cpp  
> interpreter.)
> - There are no compiler optimizations.
> - It is young code.  There are bugs.  But only when a new flag is  
> turned on.
>
> This review is for contents of meth.patch, to be pushed from mlvm to http://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot 
>  .
>
> Here is the webrev for this review:
>  http://webrev.invokedynamic.info/jrose/6655638.meth/
>
> Here is the mlvm patch where the code currently lives:
>  http://hg.openjdk.java.net/mlvm/mlvm/hotspot/raw-file/tip/meth.patch
>
> An earlier version of these changes pass JPRT; it is expected that  
> at most minor tweaks will be needed to push it through again.
>
> Even though they are large, the changes should also pass a simple  
> visual inspection, since all substantially new control paths are  
> guarded by tests of the new flags.
>
> Please give it a look.
>
> -- John
>
> P.S.  Here are some relevant conversations about method handles and  
> invokedynamic:
>  http://mail.openjdk.java.net/pipermail/mlvm-dev/2009-January/000321.html
>  http://blogs.sun.com/jrose/entry/international_invokedynamic_day
>  http://blogs.sun.com/dannycoward/entry/firing_up_the_engines_for
>  http://groups.google.com/group/jvm-languages/browse_thread/thread/a4b8a616eb987ca8
>
> P.P.S. The proposed JDK changes are independent.  At present, you  
> can find them here, in patch and webrev formats:
>  http://hg.openjdk.java.net/mlvm/mlvm/hotspot/raw-file/tip/meth.proj.patch
>  http://webrev.invokedynamic.info/jrose/6655638.meth.proj/




More information about the hotspot-compiler-dev mailing list