On Wed, 2 Apr 2025 08:29:54 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> 
wrote:

>> Per Minborg has updated the pull request incrementally with two additional 
>> commits since the last revision:
>> 
>>  - Add lazy toSting for StableMap::values
>>  - Make toString for reversed and sublist lazy
>
> src/java.base/share/classes/java/lang/StableValue.java line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights 
>> reserved.
> 
> Should this be 2024 or both 2024, 2025 ?

The files that were created in 2024 and were changed in 2025 have both.

> src/java.base/share/classes/java/lang/StableValue.java line 52:
> 
>> 50:  * A stable value is a deferred holder of shallowly immutable content.
>> 51:  * <p>
>> 52:  * A {@code StableValue<T>} can be created using the factory method
> 
> s/can be/is (more direct) -- here and elsewhere

The reason we use the notion "can be" rather than "is" is that a `StableValue` 
can alternately be created via the `StableValue.of(initialValue)` method. In 
the latter case, it is already set.

> src/java.base/share/classes/java/lang/StableValue.java line 95:
> 
>> 93:  * <p>
>> 94:  * Note that the holder value can only be set at most once.
>> 95:  * In the example above, the {@code logger} field is declared {@code 
>> final} which is
> 
> This is not 100% true -- a final non-static field is not treated as a 
> constant by the VM (at least not yet). Again, I suggest to keep this 
> discussion focused on the fact that `logger` is a `final` stable value field. 
> The holder is created eagerly, but the _content_ is initialized lazily (in 
> the `getLogger` method). So, same similar to `final` (can only be set once) 
> -- but more flexible.

Now that we have removed the VM-specific handling of fields declared as 
`StableValue`, this is true. I will take a look at improving the wording.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23972#discussion_r2024403082
PR Review Comment: https://git.openjdk.org/jdk/pull/23972#discussion_r2024424746
PR Review Comment: https://git.openjdk.org/jdk/pull/23972#discussion_r2024431748

Reply via email to