> From: "John Rose" <john.r.r...@oracle.com> > To: "Remi Forax" <fo...@univ-mlv.fr> > Cc: "Brian Goetz" <brian.go...@oracle.com>, "valhalla-spec-experts" > <valhalla-spec-experts@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 <fo...@univ-mlv.fr> wrote: >>> From: "Brian Goetz" <brian.go...@oracle.com> >>> To: "valhalla-spec-experts" <valhalla-spec-experts@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