Addressing the full range of use cases
Remi Forax
forax at univ-mlv.fr
Wed Oct 6 10:19:59 UTC 2021
On October 6, 2021 10:07:09 AM UTC, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
>
>On 06/10/2021 10:56, Remi Forax wrote:
>>> - Existing class types like LocalDate are both nullable and atomic. These are
>>> useful properties to preserve during migration; nullability, in particular, is
>>> essential for source compatibility. We've provided reference-default
>>> declarations as a mechanism to make reference types (which have these
>>> properties) the default, with 'P.val' as an opt-in to value types. But in doing
>>> so we take away the many benefits of value types by default, and force new code
>>> to work with the "bad name".
>> The existing class LocalDate is not atomic per se, atomic in Java implies volatile and currently if a LocalDate field is updated in one thread, another thread may never see that update.
>> LocalDate is currently not tearable, a QLocalDate; is tearable in case of racy code.
>
>The fact that QLocalDate is tearable is a consequence of the fact that
>e.g. elements of a QLocalDate[] cannot be read/written atomically - e.g.
>in a single shot, unlike for references - which are pointers and can be
>loaded/stored atomically (as per Java Memory Model).
>
>It's true the word "atomic" is sometimes used to refer to operations
>such as CAS which provide strong inter-thread guarantees - this is not
>what Dan had in mind here.
Right, I used to think that being tearable was a huge issue.
Now, I don't.
At least, not to the point of making primive classes non tearable the default.
As I said, the code need to have race issues to observe that behavior and I think that a security token should not be a primitive class, i.e. i can live with the fact that a user can forge any permutations of my primitive class if he writes racy code on purpose.
>
>Maurizio
>
Rémi
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
More information about the valhalla-spec-observers
mailing list