Fwd: Request for review (L): 6964498: JSR 292 invokedynamic sites need local bootstrap methods
Rémi Forax
forax at univ-mlv.fr
Sun Jul 11 03:06:54 PDT 2010
The switch to use the old dynamically BSM registration is
AllowTransitionalJSR292
for those like me that relies on ASM.
ASM that doesn't support (at the moment) this new constant pool
attribute (CONSTANT_InvokeDynamic).
Rémi
Le 11/07/2010 07:25, John Rose a écrit :
> There are more JVM changes in the pipeline, FYI.
>
> Bootstrap methods are going to be made specific to instructions, and (therefore) represented statically in the constant pool.
>
> The new CP entry CONSTANT_InvokeDynamic will be an ordered pair of CP indexes, the first to a CONSTANT_MethodHandle (the BSM) and the second to a CONSTANT_NameAndType (which is the same as before).
>
> For now, the JVM will accept both kinds of index in an invokedynamic instruction. The EG expects to get rid of the dynamically-registered BSM for invokedynamic, in favor of this new static notation in the classfile.
>
> Notation in the Java language is TBD; the prototype uses annotations to declare BSMs, but that's not a kosher use of annotations.
>
> -- John
>
> From: John Rose<john.r.rose at oracle.com>
> Date: July 10, 2010 10:17:26 PM PDT
> To: hotspot compiler<hotspot-compiler-dev at openjdk.java.net>
> Subject: Request for review (L): 6964498: JSR 292 invokedynamic sites need local bootstrap methods
>
> These JVM changes implement per-call-site bootstrap methods. The JSR 292 EG is (almost certainly) going to change the bootstrap method from a dynamically specified per-class attribute to a statically-specified per-instruction attribute (in the constant pool). This is the implementation.
>
> http://cr.openjdk.java.net/~jrose/6964498/webrev/
>
> This JVM continues to run programs with old-style bootstrap methods, under a compatibility switch. These JVM changes will be pushed unilaterally, before corresponding JDK and javac changes.
>
> -- John
>
> P.S. Here, FYI, are some prototyped JDK and javac changes which work with the JVM webrev. They are almost certain to change, since we don't know yet on how to "spell" bootstrap methods in the Java language. Annotations are a convenient hack, but probably not the right final answer.
>
> http://cr.openjdk.java.net/~jrose/6964498/jdk-webrev/
> http://cr.openjdk.java.net/~jrose/6964498/lt-webrev/
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20100711/62242059/attachment.html
More information about the mlvm-dev
mailing list