consolidated VM notes for primitive classes
Gernot Neppert
mcnepp02 at googlemail.com
Tue Apr 27 05:18:28 UTC 2021
Hi John,
the most recent update to this document was the insertion of the
paragraph starting with
"JVM-inserted supers are *not* visible to reflection via
`Class::getInterfaces`"
The text goes to great lengths to explain the very complicated (or
should I say "convoluted") way by which you could still find out
reliably via reflection whether you were looking at a Class implementing
one of the Marker interfaces...
And then, when I was eagerly reading on to find the rationale for this
inconsistent design, I finally came to this sentence:
"Keeping secrets from reflection is a risky business, but in this
case it seems safer to do so, lest a large fraction of existing Java classes
suddenly grow new items in their `Class::getInterfaces` arrays."
To be honest, this seems to be the most unconvincing reason one could
think of. How could the addition of an interface in
"Class::getInterfaces" ever be a problem?
Regards,
Gernot
Am 21.04.2021 um 08:51 schrieb John Rose:
> Brian and I hammered out a document this week that
> captures what we think is emerging as our shared
> understanding of how adapt the JVM to support
> primitive classes.
>
> It is still white-hot, not even off the press, but I think
> it is worth looking it even in its unfinished state.
>
> https://github.com/openjdk/valhalla-docs/blob/main/site/design-notes/state-of-valhalla/03-vm-model.md
>
> That is the JVM side, only. Most of it is already
> prototyped in HotSpot, some is not.
>
> I’ll let Brian speak for the valhalla-doc repository
> as a whole, but I wanted to get this out there for
> tomorrow’s meeting.
>
> — John
More information about the valhalla-spec-observers
mailing list