RFR: JEP 359: Records (Preview) (full code)
Joe Darcy
joe.darcy at oracle.com
Mon Dec 2 06:17:06 UTC 2019
Hi Vicente,
I took the liberty of adding the necessary directory-level jtreg config
files to enable the feature and updated the tests accordingly:
https://hg.openjdk.java.net/amber/amber/rev/c91826d62310
(The feature is enabled by default in for the langtools tests, but
disabled by default elsewhere.)
HTH,
-Joe
On 11/29/2019 3:12 PM, Vicente Romero wrote:
> Hi Joe,
>
> All the tests that have an explicit -source 14 are that way because
> of, I think to remember, a bug in jtreg that doesn't expand the
> ${some.property} macro for those tests. I don't remember the details
> though
>
> Thanks,
> Vicente
>
> On 11/29/19 9:59 AM, Joe Darcy wrote:
>> Hi Vicente,
>>
>> Please change all uses of
>>
>> @compile --enable-preview -source 14
>>
>> in jtreg tags to to
>>
>> @compile --enable-preview -source ${jdk.version}
>>
>> The former structure will spuriously fail when the JDK 14 -> 15
>> transition occurs.
>>
>> Also, publishing delta-webrevs between iterations in additional to
>> full webrev would help track the incremental changes.
>>
>> Thanks,
>>
>> -Joe
>>
>> On 11/28/2019 8:05 AM, Vicente Romero wrote:
>>> Hi again,
>>>
>>> Sorry but I realized that I forgot to remove some code on the
>>> compiler side. The code removed is small, before we were issuing an
>>> error if some serialization methods were declared as record members.
>>> That section was removed from the spec. I have prepared another
>>> iteration with this change at [1]
>>>
>>> Thanks,
>>> Vicente
>>>
>>> [1]
>>> http://cr.openjdk.java.net/~vromero/records.review/all_code/webrev.01/
>>>
>>> On 11/27/19 11:37 PM, Vicente Romero wrote:
>>>> Hi,
>>>>
>>>> Please review the code for the records feature at [1]. This webrev
>>>> includes all: APIs, runtime, compiler, serialization, javadoc, and
>>>> more! Must of the code has been reviewed but there have been some
>>>> changes since reviewers saw it. Also this is the first time an
>>>> integral webrev is sent out for review. Last changes on top of my
>>>> mind since last review iterations:
>>>>
>>>> On the compiler implementation:
>>>> - it has been adapted to the last version of the language spec [2],
>>>> as a reference the JVM spec is at [3]. This implied some changes in
>>>> determining if a user defined constructor is the canonical or not.
>>>> Now if a constructor is override-equivalent to a signature derived
>>>> from the record components, then it is considered the canonical
>>>> constructor. And any canonical constructor should satisfy a set of
>>>> restrictions, see section 8.10.4 Record Constructor Declarations of
>>>> the specification.
>>>> - It was also added a check to make sure that accessors are not
>>>> generic.
>>>> - And that the canonical constructor, if user defined, is not
>>>> explicitly invoking any other constructor.
>>>> - The list of forbidden record component names has also been updated.
>>>> - new error messages have been added
>>>>
>>>> APIs:
>>>> - there have been some API editing in java.lang.Record,
>>>> java.lang.runtime.ObjectMethods and
>>>> java.lang.reflect.RecordComponent, java.io.ObjectInputStream,
>>>> javax.lang.model (some visitors were added)
>>>>
>>>> On the JVM implementation:
>>>> - some logging capabilities have been added to classFileParser.cpp
>>>> to provide the reason for which the Record attribute has been ignored
>>>>
>>>> Reflection:
>>>> - there are several new changes to the implementation of
>>>> java.lang.reflect.RecordComponent apart from the spec changes
>>>> mentioned before.
>>>>
>>>> bug fixes in
>>>> - compiler
>>>> - serialization,
>>>> - JVM, etc
>>>>
>>>> As a reference the last iteration of the previous reviews can be
>>>> found at [4] under folders: compiler, hotspot_runtime, javadoc,
>>>> reflection and serialization,
>>>>
>>>> TIA,
>>>> Vicente
>>>>
>>>> [1]
>>>> http://cr.openjdk.java.net/~vromero/records.review/all_code/webrev.00/
>>>> [2]
>>>> http://cr.openjdk.java.net/~gbierman/jep359/jep359-20191125/specs/records-jls.html
>>>> [3]
>>>> http://cr.openjdk.java.net/~gbierman/jep359/jep359-20191125/specs/records-jvms.html
>>>> [4] http://cr.openjdk.java.net/~vromero/records.review/
>>>>
>>>
>
More information about the core-libs-dev
mailing list