RFR: 8294960: Convert java.base/java.lang.invoke package to use the Classfile API to generate lambdas and method handles [v21]

Claes Redestad redestad at openjdk.org
Tue Jun 18 13:47:20 UTC 2024


On Tue, 18 Jun 2024 13:22:45 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> java.base java.lang.invoke package heavily uses ASM to generate lambdas and method handles.
>> 
>> This patch converts ASM calls to Classfile API.
>> 
>> This PR is continuation of https://github.com/openjdk/jdk/pull/12945
>> 
>> Any comments and suggestions are welcome.
>> 
>> Please review.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with four additional commits since the last revision:
> 
>  - Merge pull request #8 from cl4es/serialization_hostile
>    
>    SerializationHostileMethod
>  - Reduce gratuitous code movement
>  - Inline Consumer<MethodBuilder> into generateSer.. method, move seldom-used serialization support constants to new holder
>  - SerializationHostileMethod

I've done a final pass over this. Code changes overall look good - great even - and the only caveat is that there's going to be some added startup overhead in some apps from integrating this. A minimal app with a lambda expression might see a 2-3ms hit, for example.

While there are ideas on how to trim down such overheads further I think this is a good time to draw a line in the sand and get this change integrated and exposed to a larger set of testing.

-------------

Marked as reviewed by redestad (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/17108#pullrequestreview-2125569570


More information about the core-libs-dev mailing list