RFR: 8294960: Convert java.base/java.lang.invoke package to use the Classfile API to generate lambdas and method handles [v18]
Claes Redestad
redestad at openjdk.org
Thu Jun 13 09:30:19 UTC 2024
On Thu, 6 Jun 2024 11:41:05 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Adam Sotona has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - reverted static initialization of ConstantPoolBuilder and CP entries
>> - fixed naming conventions
>
> src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java line 616:
>
>> 614: final ClassDesc classDesc = ClassDesc.of(className0);
>> 615: final ClassDesc superClassDesc = classDesc(speciesData.deriveSuperClass());
>> 616: return ClassFile.of().build(classDesc, clb -> {
>
> We need a confirmation here that these BMH species are only initialized after LMF is ready. @cl4es Is a dependency on LMF from BMH safe?
LMF will BMH and `ClassSpecializer`, but does not call into this code normally as the simple bound method handle needed by LMF is statically defined (`BoundMethodHandle.Species_L`). To be perfectly safe - and to keep lambda/indy/condy bootstrap overheads to a minumum - I'll continue recommending the desugaring of lambdas in java.lang.invoke
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17108#discussion_r1637893254
More information about the core-libs-dev
mailing list