<i18n dev> RFR: 8366178: Implement JEP 526: Lazy Constants (Second Preview)
Maurizio Cimadamore
mcimadamore at openjdk.org
Mon Oct 13 13:20:38 UTC 2025
On Thu, 2 Oct 2025 10:51:08 GMT, Per Minborg <pminborg 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/LazyCollections.java line 255:
> 253: }
> 254:
> 255: interface LenientList<E> extends List<E> {
Ok, this seems needed to give access to `getAcquire` from sublists created from other sublists...
src/java.base/share/classes/java/util/LazyCollections.java line 360:
> 358:
> 359: @Stable
> 360: private final Set<K> keySet;
I believe putting the field in here might cause some redundancies -- for instance LazyMap extends this class and addss a `Map<K, Integer>`, from which you can clearly derive the key set...
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2426326166
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2426329562
More information about the i18n-dev
mailing list