EG meeting, 2021-11-17

Remi Forax forax at univ-mlv.fr
Thu Nov 18 22:58:07 UTC 2021


> From: "Brian Goetz" <brian.goetz at oracle.com>
> To: "Kevin Bourrillion" <kevinb at google.com>
> Cc: "Dan Heidinga" <heidinga at redhat.com>, "daniel smith"
> <daniel.smith at oracle.com>, "valhalla-spec-experts"
> <valhalla-spec-experts at openjdk.java.net>
> Sent: Jeudi 18 Novembre 2021 23:34:51
> Subject: Re: EG meeting, 2021-11-17

> 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.

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. 

Rémi 

> Sent from my iPad

>> On Nov 18, 2021, at 5:27 PM, Kevin Bourrillion <kevinb at google.com> wrote:

>> On Wed, Nov 17, 2021 at 7:05 PM Dan Heidinga < [ mailto:heidinga at redhat.com |
>> heidinga at redhat.com ] > 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 interest in
>> exposing identity, but just get defaulted into it. Any dependency on the
>> distinction between one instance and another that equals() it would be a
>> probable bug.

>> When B2 exists I see myself advocating that a developer's first instinct should
>> be to make new classes in B2 except when they need something from B1 like
>> mutability (and perhaps subclassability belongs in this list too!). As far as I
>> can tell, this makes sense whether there are even any performance benefits at
>> all, and the performance benefits just make it a lot more motivating to do what
>> is already probably technically best anyway.

>> Now, if subclassability legitimately belongs in that list of B1-forcing-factors,
>> that'll be fine, I just hadn't fully thought it through and was implicitly
>> treating it like an open question, which probably made my initial question in
>> this subthread confusing.

>> --
>> Kevin Bourrillion | Java Librarian | Google, Inc. | [ mailto:kevinb at google.com |
>> kevinb at google.com ]


More information about the valhalla-spec-observers mailing list