On Mon, 10 Nov 2025 14:59:03 GMT, Per Minborg <[email protected]> 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.
>
> Per Minborg has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Add @AOTSafeClassInitializer
src/java.base/share/classes/jdk/internal/lang/LazyConstantImpl.java line 47:
> 45:
> 46: // Unsafe allows `LazyConstant` instances to be used early in the
> boot sequence
> 47: static final Unsafe UNSAFE = Unsafe.getUnsafe();
Suggestion:
private static final Unsafe UNSAFE = Unsafe.getUnsafe();
test/jdk/java/lang/LazyConstant/LazyConstantSafePublicationTest.java line 117:
> 115: @Test
> 116: void mainTest() {
> 117: CONSTANTS.set(constants());
Instead of passing this through a static field, why not just pass it through
the constructor of Producer and Consumer? (which are created below)
test/micro/org/openjdk/bench/java/lang/stable/StableMapSingleBenchmark.java
line 66:
> 64: private static final Map<MyEnum, Integer> MAP_ENUM =
> Map.ofLazy(EnumSet.allOf(MyEnum.class), MyEnum::ordinal);
> 65: private static final Map<MyEnum, Optional<Integer>> MAP_ENUM_OPTIONAL
> = Map.ofLazy(EnumSet.allOf(MyEnum.class), e -> Optional.of(e.ordinal()));
> 66: private static final Function<Integer, Integer> FUNCTION = MAP::get;
I suppose the function variants are not very interesting to test, since they
just delegate to Map::get, Maybe consider removing them
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2514957700
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2514930623
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2514913683