> On Oct 24, 2016, at 3:48 AM, Erik Joelsson <erik.joels...@oracle.com> 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. >
The problem I have with this solution is that jdk.vm.ci code is now restricted to JDK N-1 code. This might be ok right now because we are able to work around that issue with reflection but when important features like Valhalla come around this is a problem. Value types will be hugely important for JVMCI and its compilers and we simply cannot just skip one JDK release just because the build system can’t handle it. > /Erik > > [1] > http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-October/024743.html > > <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 >>>> <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 >>> >> >