Re: [External] : Re: EG meeting, 2021-11-17

2021-11-23 Thread John Rose
On Nov 22, 2021, at 5:13 PM, Dan Smith wrote: > >> On Nov 22, 2021, at 2:07 PM, Kevin Bourrillion wrote: >> >>> On Mon, Nov 22, 2021 at 6:27 AM Dan Heidinga wrote: >>> >>> I'll echo Brian's comment that I'd like to understand Kevin's use >>> cases better to see if there's something we're miss

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-22 Thread Dan Smith
> On Nov 22, 2021, at 2:07 PM, Kevin Bourrillion wrote: > >> On Mon, Nov 22, 2021 at 6:27 AM Dan Heidinga wrote: >> >> I'll echo Brian's comment that I'd like to understand Kevin's use >> cases better to see if there's something we're missing in the design / >> a major use case that isn't being

Re: EG meeting, 2021-11-17

2021-11-22 Thread John Rose
Thanks, Brian, for many useful suggestions about the diagram. I have updated it in place. Its message should be clearer now. On Nov 21, 2021, at 9:05 PM, John Rose mailto:john.r.r...@oracle.com>> wrote: http://cr.openjdk.java.net/~jrose/values/type-kinds-venn.pdf

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-22 Thread Brian Goetz
Or, to put it another way: success looks like yet another "got the defaults wrong", where people should default to B2 unless they need B1, and "pure" joins the ranks of "final" and "private" of "I shoulda been the default." Right, that's what you're saying? On 11/22/2021 4:07 PM, Kevin Bourri

Re: EG meeting, 2021-11-17

2021-11-22 Thread Kevin Bourrillion
On Mon, Nov 22, 2021 at 6:27 AM Dan Heidinga wrote: I'll echo Brian's comment that I'd like to understand Kevin's use > cases better to see if there's something we're missing in the design / > a major use case that isn't being addressed that will cause useer > confusion / pain. > Sorry if I thre

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-22 Thread Brian Goetz
I wouldn't say we flipped anything.  But we have made a lot of progress on the model; at first we thought abstract supers at all were a bridge too far, but we found the right set of constraints and it seems to fit naturally now.  So it makes sense to ask the question whether we're at the edge,

Re: EG meeting, 2021-11-17

2021-11-22 Thread Dan Heidinga
> This is the second turn of the crank (the first was "you can extend Object > only"), but as this conversation hinted, there may be a further turn where > abstract identity-agnostic classes can contribute to the layout and > initialization of a concrete final by-value class without pulling it i

Re: EG meeting, 2021-11-17

2021-11-22 Thread Brian Goetz
Is there a way to make that work in Java, so that identity-free classes can inherit from each other? Probably, in some limited way.  The simplest move is the one Brian and I are liking here, where a completely non-concrete class (one with no fields and no commitment to object identity) can be re

Re: EG meeting, 2021-11-17

2021-11-22 Thread Dan Heidinga
I'll echo Brian's comment that I'd like to understand Kevin's use cases better to see if there's something we're missing in the design / a major use case that isn't being addressed that will cause useer confusion / pain. That said > Yes. The key thing is that the abstract class in question

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-21 Thread John Rose
On Nov 19, 2021, at 5:32 AM, Brian Goetz mailto:brian.go...@oracle.com>> wrote: And this is not inconsistent with abstract superclasses contributing fields. For me the poster child is Enum as much as Record. I want pure enums, some day, but in order to make this work we need a way for the ordin

Re: EG meeting, 2021-11-17

2021-11-21 Thread John Rose
On Nov 18, 2021, at 2:58 PM, Remi Forax mailto:fo...@univ-mlv.fr>> wrote: I suppose you are talking about empty (no field) abstract classes. We need that for j.l.Object, j.l.Number or j.l.Record. From a user POV, it's not very different from an interface with default methods. Yes. The key thin

Re: EG meeting, 2021-11-17

2021-11-21 Thread John Rose
Yes. One way I like to think about the Old Bucket is that it is characterized by *concrete* representations which have somehow opted into object identity. Confusingly, the Old Bucket also contains interfaces which are non-concrete and also Object, which might as well be non-concrete. (I’m not sa

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-19 Thread forax
> From: "Brian Goetz" > To: "Dan Heidinga" > Cc: "Remi Forax" , "Kevin Bourrillion" , > "daniel smith" , "valhalla-spec-experts" > > Sent: Vendredi 19 Novembre 2021 14:32:38 > Subject: Re: [External] : Re: EG mee

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-19 Thread Brian Goetz
dinga" mailto:heidi...@redhat.com>>, "daniel smith" mailto:daniel.sm...@oracle.com>>, "valhalla-spec-experts" mailto:valhalla-spec-experts@openjdk.java.net>> Sent: Jeudi 18 Novembre 2021 23:34:51 Subject: Re: EG meeting, 2021-11-17 I think it is reasonable to consid

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-19 Thread Dan Heidinga
PM, Remi Forax wrote: > > > > > > From: "Brian Goetz" > To: "Kevin Bourrillion" > Cc: "Dan Heidinga" , "daniel smith" > , "valhalla-spec-experts" > > Sent: Jeudi 18 Novembre 2021 23:3

Re: [External] : Re: EG meeting, 2021-11-17

2021-11-18 Thread Brian Goetz
mailto:brian.go...@oracle.com>> To: "Kevin Bourrillion" mailto:kev...@google.com>> Cc: "Dan Heidinga" mailto:heidi...@redhat.com>>, "daniel smith" mailto:daniel.sm...@oracle.com>>, "valhalla-spec-experts" mailto:valhalla-spec-experts@openjdk.j

Re: EG meeting, 2021-11-17

2021-11-18 Thread Remi Forax
> From: "Brian Goetz" > To: "Kevin Bourrillion" > Cc: "Dan Heidinga" , "daniel smith" > , "valhalla-spec-experts" > > Sent: Jeudi 18 Novembre 2021 23:34:51 > Subject: Re: EG meeting, 2021-11-17 > I think it is reasonab

Re: EG meeting, 2021-11-17

2021-11-18 Thread Brian Goetz
I think it is reasonable to consider allowing bucket two classes to be abstract. They could be extended by other classes which would either be abstract or final. The intermediate types are polymorphic but the terminal type is monomorphic. A similar argument works for records. Sent from my iPa

Re: EG meeting, 2021-11-17

2021-11-18 Thread Kevin Bourrillion
On Wed, Nov 17, 2021 at 7:05 PM Dan Heidinga wrote: Let me turn the question around: What do we gain by allowing > subclassing of B2 classes? > I'm not claiming it's much. I'm just coming into this from a different direction. In my experience most immutable (or stateless) classes have no real i

Re: EG meeting, 2021-11-17

2021-11-17 Thread Dan Heidinga
>> > For the moment I think this does probably carry over to >> > WithIdentity/WithoutIdentity or whatever they are called. The question I >> > think is still open (to me) is whether there really are active contractual >> > implications of being identityless or if it's equivalent to being >> >

Re: EG meeting, 2021-11-17

2021-11-17 Thread Kevin Bourrillion
On Wed, Nov 17, 2021 at 11:16 AM Dan Heidinga wrote: > For the moment I think this does probably carry over to > WithIdentity/WithoutIdentity or whatever they are called. The question I > think is still open (to me) is whether there really are active contractual > implications of being identityle

Re: EG meeting, 2021-11-17

2021-11-17 Thread Dan Heidinga
>> "identityless objects and the type hierarchy": discussed how the >> IdentityObject/PrimitiveObject interfaces are used in the "Consolidating the >> user model" world > > > For the moment I think this does probably carry over to > WithIdentity/WithoutIdentity or whatever they are called. The q

Re: EG meeting, 2021-11-17

2021-11-17 Thread Kevin Bourrillion
On Wed, Nov 17, 2021 at 9:41 AM Kevin Bourrillion wrote: (The biggest ergonomic problem of `.equals()` > ... is that it's not negatable, sometimes forcing a `!` to be far away to the left, and I'm not under the impression pattern-matching addresses that.) -- Kevin Bourrillion | Java Libraria

Re: EG meeting, 2021-11-17

2021-11-17 Thread Kevin Bourrillion
Derp, I slept in today On Wed, Nov 17, 2021 at 7:39 AM Dan Smith wrote: "Consolidating the user model": followup discussions homed in on how we > model primitive values—whether they're reference-less objects or some other > "value" entity, and how they interact with reference types > I'm in pr

EG meeting, 2021-11-17

2021-11-17 Thread Dan Smith
EG Zoom meeting today at 5pm UTC (9am PDT, 12pm EDT). Lots of traffic this time, we can have follow up discussions wherever there's interest. Potential topics: "Consolidating the user model": followup discussions homed in on how we model primitive values—whether they're reference-less objects o