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-experts
mailing list