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

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

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

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: [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

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: E

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

2021-11-19 Thread Brian Goetz
The translation model I had in mind was more complicated, but my point was that the reason we disallow inheritance is because we’re trying to disallow layout polymorphism for concrete types, so that we know exactly how big a “C” is. And this is not inconsistent with abstract superclasses

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

2021-11-19 Thread Dan Heidinga
On Thu, Nov 18, 2021 at 6:06 PM Brian Goetz wrote: > > No, I’m talking more broadly. > > abstract class A implements PureObject { > int a; > } > > abstract class B extends A { > int b; > } > > pure class C extends B { > int c; > } > > Now C is a

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

2021-11-18 Thread Brian Goetz
No, I’m talking more broadly. abstract class A implements PureObject { int a; } abstract class B extends A { int b; } pure class C extends B { int c; } Now C is a final, pure class with fields a, b, and c. A and B are abstract superclasses of