RFR: 8152641: Plugin to generate BMH$Species classes ahead-of-time

Claes Redestad claes.redestad at oracle.com
Thu Mar 24 13:42:03 UTC 2016


Hi,

please review this patch which add an enabled-by-default plugin to 
generate a
configurable list of BoundMethodHandle$Species_*-classes using jlink.

Bug: https://bugs.openjdk.java.net/browse/JDK-8152641
Webrev: http://cr.openjdk.java.net/~redestad/8152641/webrev.01/

This plugin adds the --generate-bmh flag to jlink, which takes a
comma-separated list of shortened species type strings.

As an example: --generate-bmh LL,L3,L4 will generate
BoundMethodHandle$Species_LL, ...$Species_L3 and ...$Species_L4 and add
them to the java.base module.

The Species class lookup in BoundMethodHandle will first check if there 
is a
generated class, otherwise generate it as previously. Adding an exceptional
path might seem problematic, but as the code generation is magnitudes more
expensive than the exception it doesn't seem fruitful to go to lengths 
to avoid
the CNFE.

More notes along with some results can be found here:

http://cr.openjdk.java.net/~redestad/scratch/bmh_species_gen.txt

Thanks!

/Claes


More information about the jigsaw-dev mailing list