review request (L): 6984311 JSR 292 needs optional bootstrap method parameters

John Rose john.r.rose at Oracle.com
Thu Oct 28 11:40:05 PDT 2010


6984311: JSR 292 needs optional bootstrap method parameters

http://cr.openjdk.java.net/~jrose/6984311/webrev.02/

This is a rework of an earlier review request.  (The subject line mentioned bug 6981777.)

The changes are (1) the structure of the CONSTANT_MethodApply node is merged into the CONSTANT_InvokeDynamic node, and (2) the extra-argument structure is N-ary, not binary.

Both of these changes reduce the number of constant pool nodes, relative to the binary MethodApply version.

(Motivation:  This change will support injection of additional metadata parameters at dynamic call sites.  A key use is for Java closures, where the additional metadata parameter is a closure body method.  There are many other language-specific uses for such metadata.  Previously, such metadata had to be mangled into the name, or coded into a unique per-call-site bootstrap method.  Both of those older workarounds are significantly more costly in complexity, class file size, and constant pool entry count.)

-- John


More information about the mlvm-dev mailing list