A related issue is that we want a word for describing which types are routinely 
flattened in layouts, and specialized in generics (the criteria are the same).  
Currently:

  - References and nullable projections of values (V?) are erased and not 
flattened
  - Values (zero-default and null-default) are specializable and flattenable

(This thread is for terminology; if you have questions about the above claims, 
make a new thread, or better, wait for the more detailed writeup explaining why 
this is.)

We need words for these two things too.  

> On Apr 8, 2019, at 2:58 PM, Brian Goetz <brian.go...@oracle.com> wrote:
> 
> Yes, that’s a promising direction.  And this is surely the motivation why the 
> C# folks picked “struct”; they wanted to carry the connotation that this is a 
> structure that is inlined.  Problem is, the word “struct” is already so 
> heavily polluted by what it means in C.  So perhaps something like:
> 
>     inline class V { … }
> 
> This says than a V can be inlined into things that contain a V — other 
> classes and arrays.  It also kind of suggests that this thing has no 
> intrinsic identity.  
> 
> A possible downside of this choice is that one might mistake it for meaning 
> “its methods are inlined”.  Which is actually a little true, in that the 
> methods are implicitly static and therefore more amenable to dynamic 
> inlining.  So that might actually be OK.  
> 
> Others?
> 
>> On Apr 8, 2019, at 2:25 PM, Kevin Bourrillion <kev...@google.com 
>> <mailto:kev...@google.com>> wrote:
>> 
>> I'd suggest the name should in some way allude to the inline/compact/flat 
>> memory layout, because that is the distinguishing feature of these new 
>> things compared to anything else you can do in Java. And it is what people 
>> should be thinking about as they decide whether a new class should use this.
>> 
>> 
>> On Mon, Apr 8, 2019 at 10:02 AM Brian Goetz <brian.go...@oracle.com 
>> <mailto:brian.go...@oracle.com>> wrote:
>> The slide deck contains a list of terminology.  I’d like to posit that the 
>> most confusion-reducing thing we could do is come up with another word for 
>> value types/classes/instances, since the word “value” is already used to 
>> describe primitives and references themselves.  This is a good time to see 
>> if there are better names available.  
>> 
>> So for this thread only, we’re turning on the syntax light to discuss what 
>> might be a better name for the abstraction currently known as “value 
>> classes”.  
>> 
>> 
>> 
>> > On Mar 29, 2019, at 12:08 PM, John Rose <john.r.r...@oracle.com 
>> > <mailto:john.r.r...@oracle.com>> wrote:
>> > 
>> > This week I gave some presentations of my current thinking
>> > about specializations to people (from Oracle and IBM) gathered
>> > in Burlington.  Here it is FTR.  If you read it you will find lots
>> > of questions, as well as requirements and tentative answers.
>> > 
>> > http://cr.openjdk.java.net/~jrose/pres/201903-TemplateDesign.pdf 
>> > <http://cr.openjdk.java.net/~jrose/pres/201903-TemplateDesign.pdf>
>> > 
>> > This is a checkpoint.  I have more tentative answers on the
>> > drawing board that didn't fit into the slide deck.  Stay tuned.
>> > 
>> > — John
>> 
>> 
>> 
>> -- 
>> Kevin Bourrillion | Java Librarian | Google, Inc. | kev...@google.com 
>> <mailto:kev...@google.com>

Reply via email to