On Fri, 17 Oct 2025 09:25:01 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:
>
> Update javadocs
src/java.base/share/classes/java/lang/LazyConstant.java line 46:
> 44: * A lazy constant is created using the factory method
> 45: * {@linkplain LazyConstant#of(Supplier) LazyConstant.of({@code
> <computing function>})}.
> 46: * When created, the contents (and hence the lazy constant itself) is
> <em>not initialized</em>.
"When created, the lazy constant is not initialized, meaning it has no
contents."
E.g. it's the lazy constant that is initialized/not initialized. The content
"just is". (or "is not", if not initialized).
src/java.base/share/classes/java/lang/LazyConstant.java line 47:
> 45: * {@linkplain LazyConstant#of(Supplier) LazyConstant.of({@code
> <computing function>})}.
> 46: * When created, the contents (and hence the lazy constant itself) is
> <em>not initialized</em>.
> 47: * The contents (of type {@code T}) can then be <em>initialized</em>
Again, "a lazy constant can be initialized, and its content retrieved, by
calling get"
src/java.base/share/classes/java/lang/LazyConstant.java line 50:
> 48: * (and retrieved) by calling {@linkplain #get()}. The first time
> {@linkplain #get()}
> 49: * is called, the underlying <em>computing function</em> (provided at
> construction) will
> 50: * be invoked and the result will be used to initialize the contents.
> Once initialized,
"and the result will be used to initialize the lazy constant. Once a lazy
constant is initialized, its contents can never change..."
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2439058429
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2439060624
PR Review Comment: https://git.openjdk.org/jdk/pull/27605#discussion_r2439064085