<i18n dev> RFR: 8366178: Implement JEP 526: Lazy Constants (Second Preview)
Chen Liang
liach at openjdk.org
Mon Oct 13 11:51:11 UTC 2025
On Thu, 2 Oct 2025 16:16:44 GMT, Kerman <duke at openjdk.org> wrote:
>> Implement JEP 526: Lazy Constants (Second Preview)
>>
>> The lazy list/map implementations are broken out from `ImmutableCollections` to a separate class.
>>
>> The old benchmarks are not moved/renamed to allow comparison with previous releases.
>>
>> `java.util.Optional` is updated so that its field is annotated with `@Stable`. This is to allow `Optional` instances to be held in lazy constants and still provide constant folding.
>
> src/java.base/share/classes/java/util/Optional.java line 74:
>
>> 72: * If non-null, the value; if null, indicates no value is present
>> 73: */
>> 74: @Stable
>
> Shouldn’t this also add a null sentinel to allow the folding of the empty case? Or is that irrelevant because empty would be the terminator of a chain.
Usually a null sentinel is used when null indicates something different. I think maybe to allow folding the empty case, we should probably add a new annotation or a new element-value to indicate this status and properly handle it in C1/C2 (similar to the field trusting in ciField)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2403729792
More information about the i18n-dev
mailing list