RFR: 8293336: AOT-linking of invokedynamic for lambda expression and string concat [v2]

Ioi Lam iklam at openjdk.org
Wed Oct 9 05:55:59 UTC 2024


On Wed, 9 Oct 2024 03:49:49 GMT, ExE Boss <duke at openjdk.org> wrote:

>> We haven't done much testing with the other SCF BSMs, so I think it's better to do that in a follow-up REF.
>
> [`StringConcatFactory​::makeConcat(…)`] is definitely deterministic, as it simply delegates to [`StringConcatFactory​::makeConcatWithConstants(…)`] with the recipe being based on the number of [`MethodType`] parameters:
> https://github.com/openjdk/jdk/blob/de90204b60c408ef258a2d2515ad252de4b23536/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java#L231-L240
> 
> And there is no other bootstrap method in [`StringConcatFactory`] at the moment.
> 
> [`MethodType`]: https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/invoke/MethodType.html
> [`StringConcatFactory`]: https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/invoke/StringConcatFactory.html
> [`StringConcatFactory​::makeConcat(…)`]: https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/invoke/StringConcatFactory.html#makeConcat(java.lang.invoke.MethodHandles.Lookup,java.lang.String,java.lang.invoke.MethodType)
> [`StringConcatFactory​::makeConcatWithConstants(…)`]: https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/invoke/StringConcatFactory.html#makeConcatWithConstants(java.lang.invoke.MethodHandles.Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object...)

Since the comment says "This bootstrap method is unlikely to be used in practice", I am not sure if we can sufficiently test it (with aot-linking).

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21143#discussion_r1792884101


More information about the hotspot-dev mailing list