Thank you, Erik, for explanation.

Then I will go with the reflection solution. We can revert/simplify it in JDK 
10 when jdk 9 will be used as boot JDK.

Thanks,
Vladimir

On 10/24/16 6:48 AM, Erik Joelsson wrote:
Adding build-dev, which should be included when discussing build issues. For 
any new readers, please see [1] for the
full discussion.

In theory it is possible to compile against and run on the exploded image 
during the build, but I do not recommend it.
Igor is correct in the build team being against that design. The rationale is 
that it adds a lot of complexity to the
build. The exploded image cannot be safely run until all java modules have been 
compiled as it introduces races.
Maintaining the build with such a construct will be very brittle when other 
changes are made. We did allow the gensrc
for jdk.vm.ci to run in this way for a short time, since it was only supported 
on Linux x64, where these races are
rarer, but if this would ever need to be built on Windows, we would be in 
trouble quickly. Luckily, jdk.vm.ci was able
to refactor away from needing this annotation processing for that module.

I certainly prefer the reflection solution proposed here, but find it sad that 
it's needed.

/Erik

[1] 
http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-October/024743.html

On 2016-10-19 21:54, Igor Veresov wrote:

On Oct 19, 2016, at 12:47 PM, Christian Thalinger <cthalin...@twitter.com 
<mailto:cthalin...@twitter.com>> wrote:


On Oct 19, 2016, at 9:40 AM, Vladimir Kozlov <vladimir.koz...@oracle.com 
<mailto:vladimir.koz...@oracle.com>> wrote:

https://bugs.openjdk.java.net/browse/JDK-8168317

webrev:
http://cr.openjdk.java.net/~kvn/8168317/webrev/ 
<http://cr.openjdk.java.net/%7Ekvn/8168317/webrev/>

When Graal is built as part of JDK it requires first to build an annotation 
processor using boot jdk 8.
After JDK-8167180 changes Services class is referenced by annotation processor 
but the code is using jdk 9 Module
API and it can't be used with jdk 8.

I left a comment in the bug: Permalink
<https://bugs.openjdk.java.net/browse/JDK-8168317?focusedCommentId=14013733&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14013733>

Basically, it should be possible to use the newly built javac to compile the 
annotation processors.  Erik?

It’s not only about compilation it’s about running it on the bootstrap JDK, 
which in currently 8.

igor


Can you paste or upload the .gmk file?


Use reflection instead of Module API and use code only for running with jdk 9.

Testing with JPRT and JDK build of Graal.

Thanks,
Vladimir



Reply via email to