EG meeting, 2020-09-09

Brian Goetz brian.goetz at oracle.com
Wed Sep 9 20:44:09 UTC 2020


Sure, and what I want to avoid is having a requirement of the JVMS (not 
even the JVM!) turn into a user-visible artifact.  Having a public class 
whose spec says "I exist entirely for the implementation of X" seems 
likely to be distracting.

Does it have to be nominal?  Can we say "`new j/l/Object` puts a 
reference to a new instance of a direct identity subclass of Object with 
no methods or fields on the top of the stack"?

> Yes, this is all good from the language perspective. The outstanding bit is "what does the instruction 'new java/lang/Object' do?" The simple thing is for JVMS to say "an instance of java/lang/SimpleIdentityObject is created on the heap".
>
> If the class is private, the JVM implementation still knows what it is, so that's probably okay, but what does JVMS say? I don't want to phrase it in a way that, say, lets a JVM implementation interpret 'new java/lang/Object' as 'new java/lang/String' or something stupid like that.



More information about the valhalla-spec-observers mailing list