RFR: JDK-8190452: javac should not add MethodParameters attributes to v51 and earlier class files
Vicente Romero
vicente.romero at oracle.com
Mon Feb 5 14:30:41 UTC 2018
looks good, I will push it,
Thanks!
Vicente
On 02/04/2018 01:27 AM, Liam Miller-Cushon wrote:
> Thanks for the reminder, done:
> http://cr.openjdk.java.net/~cushon/8190452/webrev.03/
> <http://cr.openjdk.java.net/%7Ecushon/8190452/webrev.03/>
>
> On Sat, Feb 3, 2018 at 8:59 PM, Jonathan Gibbons
> <jonathan.gibbons at oracle.com <mailto:jonathan.gibbons at oracle.com>> wrote:
>
> Liam,
>
> From a minor stylistic point of view, we generally place the test
> description (the comment beginning @test) after the legal header,
> and before any code like package and import statements
>
> -- Jon
>
>
> On 2/3/18 6:27 PM, Liam Miller-Cushon wrote:
>> I reworked the test to use class reading, and added the
>> -Xlint:option warning.
>>
>> Here's the updated patch:
>> http://cr.openjdk.java.net/~cushon/8190452/webrev.02/
>> <http://cr.openjdk.java.net/%7Ecushon/8190452/webrev.02/>
>>
>> On Sat, Feb 3, 2018 at 10:39 AM, Vicente Romero
>> <vicente.romero at oracle.com <mailto:vicente.romero at oracle.com>> wrote:
>>
>>
>>
>> On 02/03/2018 12:37 AM, Liam Miller-Cushon wrote:
>>> Hi Vicente, thanks for the review!
>>>
>>> I inlined the golden files into the test class. I don't
>>> think inlining Lib.java works with the current approach of
>>> using `@compile --release 7/8` and reflection to access the
>>> parameter names, because the reflective APIs were added in
>>> 8. I could rewrite the test to use class reading instead of
>>> reflection if you prefer.
>>
>> yes I was thinking about class reading but I'm OK with the
>> current version of the patch
>>
>>>
>>> Here's the updated webrev:
>>> http://cr.openjdk.java.net/~cushon/8190452/webrev.01/
>>> <http://cr.openjdk.java.net/%7Ecushon/8190452/webrev.01/>
>>>
>>> > Regarding your questions about what to do with the -Xlint:X
>>> options. I don't have any opinion on one way or the other,
>>> is there any reason to change them?
>>>
>>> I thought it was potentially surprising that -parameters
>>> will now be silently ignored for Java 7 and earlier language
>>> levels. Warning about that flag combination would make the
>>> new behaviour more discoverable.
>>>
>>> Since the bug shipped in 9 and 10 there are some <v52 class
>>> files with MethodParameters in the wild, and I've seen cases
>>> where it broke builds using -Xlint:classfile and -Werror.
>>>
>>> I don't think either of those are common problems. If you
>>> think we should leave the -Xlint handling as-is that sounds
>>> good to me.
>>
>> as discussed off-line with Jon, yes please add the warning,
>> but feel free to do it as part of this bug or in a different one.
>>
>> Vicente
>>
>>>
>>> On Fri, Feb 2, 2018 at 6:17 AM, Vicente Romero
>>> <vicente.romero at oracle.com
>>> <mailto:vicente.romero at oracle.com>> wrote:
>>>
>>> Hi Liam,
>>>
>>> The fix looks OK, regarding the test, I don't see the
>>> need for the two golden files as they can be constants
>>> in the test per se. In addition, the whole test could be
>>> self contained in only one class that compiles the
>>> Lib.java source. Regarding your questions about what to
>>> do with the -Xlint:X options. I don't have any opinion
>>> on one way or the other, is there any reason to change them?
>>>
>>> Thanks,
>>> Vicente
>>>
>>>
>>> On 02/01/2018 01:56 PM, Liam Miller-Cushon wrote:
>>>> Bump. I'm happy to implement either of the alternatives
>>>> I mentioned, but was hoping to get feedback on the
>>>> approach first.
>>>>
>>>> On Wed, Jan 17, 2018 at 11:51 AM, Liam Miller-Cushon
>>>> <cushon at google.com <mailto:cushon at google.com>> wrote:
>>>>
>>>> Please review a fix for JDK-8190452. The change
>>>> causes javac to not emit MethodParameters
>>>> attributes when targeting v51 class files.
>>>>
>>>> The change implements the suggestion from this thread:
>>>> http://mail.openjdk.java.net/pipermail/compiler-dev/2018-January/011579.html
>>>> <http://mail.openjdk.java.net/pipermail/compiler-dev/2018-January/011579.html>
>>>>
>>>> There are two related changes that may be worth
>>>> considering:
>>>> * now that -parameters will be ignored when
>>>> compiling with --release < 8, should this
>>>> combination of flags result in a warning if
>>>> -Xlint:options is enabled?
>>>> * since this wasn't fixed in JDK 9, there are v51
>>>> class files in the wild that contain unexpected
>>>> MethodParameters attributes. Should
>>>> -Xlint:classfile be relaxed to avoid warning on those?
>>>>
>>>> bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8190452
>>>> <https://bugs.openjdk.java.net/browse/JDK-8190452>
>>>> webrev:
>>>> http://cr.openjdk.java.net/~cushon/8190452/webrev.00/
>>>> <http://cr.openjdk.java.net/%7Ecushon/8190452/webrev.00/>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20180205/2b2d3e42/attachment-0001.html>
More information about the compiler-dev
mailing list