Re: User model: terminology

2022-05-04 Thread Kevin Bourrillion
On Wed, May 4, 2022 at 8:44 AM Remi Forax wrote: > - A term for all non-identity classes. (Previously, all classes had > identity.) > > I've used the term "immediate", immediate object vs reference object. > Note that the temporal meaning (right now) is much much stronger in people's minds tha

Re: EG meeting, 2022-05-04

2022-05-04 Thread John Rose
On 4 May 2022, at 11:36, Kevin Bourrillion wrote: >> - "Foo / Foo.ref is a backward default": Kevin and Brian argued that we >> should prefer treating B3 classes as reference-default, with something like >> '.val' to opt in to a primitive value type >> > > I will say that I have not personally fou

Re: [External] : Re: User model: terminology

2022-05-04 Thread Brian Goetz
While on the subject of defaults: we've been treating B2 as the default kind of non-identity class, on the theory that it is the smallest hop away from identity classes, and also that it covers a broader range (all the existing value-based classes.)  Is that still the default we want? Flipping

Re: [External] : Re: User model: terminology

2022-05-04 Thread Brian Goetz
What *is* identity? I'll claim it's exactly like an ordinary immutable field-based property, with one special provision: it is *always* auto-assigned to be unique, and thus can never be copied. That feels to me like it tells the whole story. So the difference between these kinds of objects

Re: EG meeting, 2022-05-04

2022-05-04 Thread Kevin Bourrillion
I wish I hadn't missed this meeting, but I was still paying the consequences for a bad decision to take an "overnight layover" coming home Monday night/Tuesday morning. On Wed, May 4, 2022 at 7:31 AM Dan Smith wrote: > > - "We need help to migrate from bucket 1 to 2; and, the == problem": Kevin

Re: User model: terminology

2022-05-04 Thread Kevin Bourrillion
My favorite kind of thread... At the risk of inducing groans, a reminder that much of my own terminology backstory is found in Data in Java Programs , and that when there are places we disagree below, the disa

Re: [External] : Re: User model: terminology

2022-05-04 Thread Brian Goetz
 - A term for those non-identity classes which do not _require_ a reference.  These must have a valid zero, and give rise to two types, what we've been calling the "ref" and "val" projections. I like "zero-default" (as opposite of null-default) but mostly because it's a valid hyph

Re: User model: terminology

2022-05-04 Thread Remi Forax
> From: "Brian Goetz" > To: "valhalla-spec-experts" > Sent: Wednesday, May 4, 2022 5:05:24 PM > Subject: User model: terminology > Let's talk about terminology. (This is getting dangerously close to a > call-for-bikeshed, so let's exercise restraint.) > Currently, we have primitives and classes

User model: terminology

2022-05-04 Thread Brian Goetz
Let's talk about terminology.  (This is getting dangerously close to a call-for-bikeshed, so let's exercise restraint.) Currently, we have primitives and classes/references, where primitives have box/wrapper reference companions.  The original goal of Bucket 3 was to model primitive/box pairs.

EG meeting, 2022-05-04

2022-05-04 Thread Dan Smith
EG Zoom meeting today at 4pm UTC (9am PDT, 12pm EDT). We've had a flurry of activity in the last couple of weeks. I think we can summarize as follows: - "Spec change documents for Value Objects": revised JVMS to align with previous discussions about Value Objects, and a new JLS changes document

User model: ref as default, vs universal generics

2022-05-04 Thread Brian Goetz
Just to record a constraint: there's somewhat of a conflict between the idea of "make ref the default", as Kevin advocated, and universal generics, which we need to keep in mind as we stack the whole tower. If a B3 class gives us Foo and Foo.val, then Map::get (currently) has no way to declare