[9] RFR (xs) 8168317: [JVMCI] use reflection instead of jdk 9 Module API in Services.java
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Oct 24 17:01:37 UTC 2016
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 <cthalinger at twitter.com <mailto:cthalinger at twitter.com>> wrote:
>>>
>>>
>>>> On Oct 19, 2016, at 9:40 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com <mailto:vladimir.kozlov at 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
>>>
>>
>
More information about the hotspot-compiler-dev
mailing list