RFR: JDK-8226585: Improve javac messages for using a preview API
Erik Joelsson
erik.joelsson at oracle.com
Wed Oct 16 12:55:12 UTC 2019
Build change looks good now.
/Erik
On 2019-10-16 05:50, Jan Lahoda wrote:
> Hi,
>
> An updated patch is here:
> http://cr.openjdk.java.net/~jlahoda/8226585/webrev.02/
>
> Changes in the update:
> -added the dependency into the makefiles
> -loosened the handling of essential preview APIs when --enable-preview
> and @SuppressWarnings is applied - there is no warning for the
> essential APIs (as there is no warning in such a case for
> non-essential APIs). This is per the discussion in the CSR:
> https://bugs.openjdk.java.net/browse/JDK-8231411
>
> Any comments/feedback on this?
>
> Thanks!
> Jan
>
> On 09. 10. 19 17:41, Erik Joelsson wrote:
>> Oh, you are absolutely correct, the dependency is missing.
>>
>> We need something like this inside "define SetupInterimModule":
>>
>> $$(BUILD_$1.interim): $(COPY_PREVIEW_FEATURES)
>>
>> /Erik
>>
>> On 2019-10-09 01:42, Magnus Ihse Bursie wrote:
>>> I can’t see how the compilation is dependent on the copy being
>>> finished. Since Erik contributed this it will probably be correct :)
>>> but I’d appreciate an explanation on how this dependency is guaranteed.
>>>
>>> Or maybe I’m misunderstanding what this is supposed to do?
>>>
>>> /Magnus
>>>
>>>> 8 okt. 2019 kl. 17:27 skrev Jan Lahoda <jan.lahoda at oracle.com>:
>>>>
>>>> Thanks for the new code Erik!
>>>>
>>>> A new webrev/patch that includes this better way of copying is here:
>>>> http://cr.openjdk.java.net/~jlahoda/8226585/webrev.01/
>>>>
>>>> Any feedback is welcome!
>>>>
>>>> Thanks,
>>>> Jan
>>>>
>>>>> On 03. 10. 19 18:06, Erik Joelsson wrote:
>>>>> Hello Jan,
>>>>> The build change looks ok, but I would recommend this construct
>>>>> for copying the file instead:
>>>>> $(eval $(call SetupCopyFiles, COPY_PREVIEW_FEATURES, \
>>>>> FILES :=
>>>>> $(TOPDIR)/src/java.base/share/classes/jdk/internal/PreviewFeature.java,
>>>>> \
>>>>> DEST :=
>>>>> $(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim/jdk/internal/PreviewFeature.java,
>>>>> \
>>>>> ))
>>>>> TARGETS += $(COPY_PREVIEW_FEATURES)
>>>>> Then you automatically get all the corner case handling we have
>>>>> implemented over the years for logging, making directories and
>>>>> copying files. Your version is still correct for this case though.
>>>>> /Erik
>>>>>> On 2019-10-03 02:57, Jan Lahoda wrote:
>>>>>> Hi,
>>>>>>
>>>>>> This is a continuation of Joe's patch from here:
>>>>>> https://mail.openjdk.java.net/pipermail/compiler-dev/2019-June/013498.html
>>>>>>
>>>>>>
>>>>>> APIs associated with preview features are split into two groups:
>>>>>> essential and non-essential. These are marked with an
>>>>>> JDK-internal annotation, PreviewFeature, and a tag in the
>>>>>> javadoc, @preview. The javac follows the PreviewFeature
>>>>>> annotation, and produces either warnings or errors for the usages
>>>>>> of such APIs. For the @preview tag, there is a taglet in the JDK
>>>>>> build that adds the content of the tag into the documentation.
>>>>>> The first part of the @preview's text goes into the summary, the
>>>>>> second part goes into the detailed description.
>>>>>>
>>>>>> For build, a tricky problem is that the jdk.compiler module uses
>>>>>> the PreviewFeature annotation as well, but that is not in the
>>>>>> bootstrap JDK. So, for the intermediate langtools build, the
>>>>>> PreviewFeature annotation is copied from java.base.
>>>>>>
>>>>>> Proposed webrev:
>>>>>> http://cr.openjdk.java.net/~jlahoda/8226585/webrev.00/
>>>>>>
>>>>>> Javadoc with the change:
>>>>>> http://cr.openjdk.java.net/~jlahoda/8226585/docs.00/api/index.html
>>>>>>
>>>>>> See for example:
>>>>>> http://cr.openjdk.java.net/~jlahoda/8226585/docs.00/api/java.base/java/lang/String.html
>>>>>>
>>>>>> http://cr.openjdk.java.net/~jlahoda/8226585/docs.00/api/jdk.compiler/com/sun/source/tree/CaseTree.html
>>>>>>
>>>>>>
>>>>>> JBS:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8226585
>>>>>>
>>>>>> CSR:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8231411
>>>>>>
>>>>>> Feedback is welcome!
>>>>>>
>>>>>> Thanks,
>>>>>> Jan
More information about the build-dev
mailing list