RFR: JDK-8226585: Improve javac messages for using a preview API

Erik Joelsson erik.joelsson at oracle.com
Tue Oct 8 16:04:17 UTC 2019


Build changes look good.

/Erik

On 2019-10-08 08:27, Jan Lahoda wrote:
> 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 compiler-dev mailing list