RFR 8199875: Require first parameter type of a condy bootstrap to be Lookup

John Rose john.r.rose at oracle.com
Sat Apr 7 05:32:38 UTC 2018

Reviewed; it's good.

The javadoc text doesn't need to predict the future; it just needs to document
the present specification.  So the sentence that begins "This constraint allows for
the future possibility…" is not really necessary.  It's certainly not normative.

— John

On Apr 6, 2018, at 5:15 PM, Paul Sandoz <paul.sandoz at oracle.com> wrote:
> Hi,
> Please review this patch to constrain constant dynamic bootstrap methods to methods whose first parameter type is MethodHandles.Lookup.
>  http://cr.openjdk.java.net/~psandoz/jdk/JDK-8199875-condy-bsm-lookup/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk/JDK-8199875-condy-bsm-lookup/webrev/>
> We are conservatively diverging from invoke dynamic bootstrap method invocation behaviour to possibly diverge further in the future and allow for constant dynamic bootstrap methods that are invoked without the lookup/name/type arguments. The change enables further divergence in a future release without breaking compatibility.
> This would make it easier to use existing methods as bootstrap methods rather than invoking via a level of indirection for explicit wrappers or using ConstantBootstraps.invoke. The experience garnered from prototyping language and low-level library features informs us this is useful.
> CSR is here:
>  https://bugs.openjdk.java.net/browse/JDK-8201268 <https://bugs.openjdk.java.net/browse/JDK-8201268>
> Thanks,
> Paul.

More information about the core-libs-dev mailing list