Updated Draft specs for JEP 359 (Records)

Alex Buckley alex.buckley at oracle.com
Wed Nov 6 18:21:50 UTC 2019

On 10/31/2019 7:17 AM, Gavin Bierman wrote:
> (Alongside is a draft JVM spec for this feature:
> http://cr.openjdk.java.net/~gbierman/jep359/jep359-20191031/specs/records-jvms.html
> )

I looked at this for the CSR JDK-8233595. The `component_info` structure 
which is mentioned all over the place really tripped me up. Unlike 
fields and methods, a component isn't a first-class JVM construct, so a 
simple (i.e. unqualified) name is not deserved. Even the JLS always uses 
the qualified name, "record component" (if nothing else, to distinguish 
from "array component").

It would be wrong to replace mentions of the `component_info` structure 
with mentions of the `Record_attribute` structure, because 
`Record_attribute` isn't literally the structure which holds attributes 
(whereas the oft-mentioned `Code_attribute` structure really is). It 
would also be clunky to spell out "the `component_info` structure of the 
`Record_attribute` structure" in many places.

For spec clarity, please rename `component_info` to 
`record_component_info`. (From a search of internal mail, I believe 
`component_info` was introduced around 7/24 in a discussion about 
annotations on record components, as an alternative to reusing the 
`field_info` structure in Record. Now that the term has spread 
throughout JVMS ch.4, it's time to name it properly.)

As an aside, please drop "We're being intentionally vague here about 
just what it means for a class to have a "component"." and strengthen 
the opener: "The Record attribute is a variable-length attribute in the 
attributes table of a ClassFile structure. ***A `Record` attribute 
indicates that this class is a _record type_ (JLS §8.10), declared with 
a list of _record components_.***"  [Almost certainly declared _in 
source code_, but maybe this class file was auto-generated, so no need 
to say how the record type was declared ... but it was, since here we 
are in its class file.]


More information about the amber-spec-experts mailing list