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