Updated State of Valhalla documents

forax at univ-mlv.fr forax at univ-mlv.fr
Thu Dec 23 19:26:08 UTC 2021


> From: "John Rose" <john.r.rose at oracle.com>
> To: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "Brian Goetz" <brian.goetz at oracle.com>, "valhalla-spec-experts"
> <valhalla-spec-experts at openjdk.java.net>
> Sent: Thursday, December 23, 2021 7:51:14 PM
> Subject: Re: Updated State of Valhalla documents

>> On Dec 23, 2021, at 10:35 AM, Remi Forax <forax at univ-mlv.fr> wrote:

>>> From: "Brian Goetz" <brian.goetz at oracle.com>
>>> To: "valhalla-spec-experts" <valhalla-spec-experts at openjdk.java.net>
>>> Sent: Thursday, December 23, 2021 6:14:43 PM
>>> Subject: Updated State of Valhalla documents

>>> Just in time for Christmas, the latest State of Valhalla is available!

>>> [
>>> https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/01-background
>>> |
>>> https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/01-background
>>> ]
>>> [
>>> https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/02-object-model
>>> |
>>> https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/02-object-model
>>> ]
>>> [
>>> https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/03-vm-model
>>> |
>>> https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/03-vm-model
>>> ]

>>> The main focus for the last year has been finding the right way to expose the
>>> Valhalla features in the user model, in a way that is cleanly factored,
>>> intuitive, and clearly connects with where the platform has come from. I am
>>> very pleased with where this has landed.

>>> There are several more installments in the works, but these should give plenty
>>> to chew on for now!

>> I've done a rapid reading,
>> in the objec-model
>> primitive class Point implements Serializable

>> should be
>> primitive Point implements Serializable

>> "value" is a modifier but "primitive" is a top level type.

> I call bike shed on that! Since a primitive class file defines two types we have
> a choice in how to convey that in the source notation. This may evolve further
> of course and even to the place you suggest.

For "value", we know that we want value class and value record, so it's more like a modifier. 
For primitive, do we want a primitive record ? The VM supports it, but do we want to offer that possibility in Java ? 
My gut feeling is that the answer is "No" because of what Kevin said earlier, we should drive users to use value classes instead of primitives. 

>> The design in part 3 is cool, because if i'm not mistaken, you can implement
>> value classes without the support of Qtype in the classfile.

> Thank you. That is correct! This is a big result of the refactoring work, and to
> a lower total complexity.

yes ! 

Rémi 


More information about the valhalla-spec-observers mailing list