[9] RFR(XL) 8166417: Integrate Graal-core into JDK for AOT compiler

Mandy Chung mandy.chung at oracle.com
Fri Dec 9 03:46:00 UTC 2016


> On Dec 7, 2016, at 2:10 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> https://bugs.openjdk.java.net/browse/JDK-8166417
> 
> It is part of JEP 295: Ahead-of-Time Compilation
> https://bugs.openjdk.java.net/browse/JDK-8166089
> 
> http://cr.openjdk.java.net/~kvn/8166417/top.webrev/
> http://cr.openjdk.java.net/~kvn/8166417/jdk.webrev/

I reviewed module-info.java.*.

src/java.base/share/classes/module-info.java.extra

Now I realized jdk.vm.compiler may be excluded from JDK time at 
build/configure time.  That explains why you can’t add these
qualified exports to module-info.java.

As we discussed offline, you can move this file to unix/classes
and if jdk.vm.compiler is not included in the JDK build, the build
tool that generates gensrc/java.base/module-info.java would filter
out these qualified exports.

Related to the use of jdk.internal.misc.VM, you mentioned separately
that Graal uses jdk.internal.misc.VM.savedProps to find properties with
GRAAL_OPTION_PROPERTY_PREFIX.  Why can’t you use System.getProperties?
savedProps stores the properties that are removed from system properties.
Are Graal’s properties not in system properties?


> 
> http://cr.openjdk.java.net/~kvn/8166417/hotspot.webrev/

src/jdk.vm.compiler/share/classes/module-info.java

jdk.management requires transitive java.management and so line 28 is
not strictly necessary but no harm to have it:
  28     requires java.management;

make/gensrc/Gensrc-jdk.vm.compiler.gmk

 131         for i in $$($(FIND) $(GENSRC_DIR) -name '*_OptionDescriptors.java'); do \
 132             c=$$($(ECHO) $$i | $(SED) 's:.*/jdk\.vm\.compiler/\(.*\)\.java:\1:' | $(TR) '/' '.'); \
 133             $(ECHO) "provides org.graalvm.compiler.options.OptionDescriptors with $$c;" >> $@; \
 134         done

The new syntax for provides is to have one `provides` clause of the same SPI
with comma-separated implementation classes (see [1] for reference)

The build tool temporarily allows multiple `provides` of the same SPI just
for transition.  Is it easy to change the above to generate one single `provides`
clauses?  I’m okay if you want to file a JBS issue to follow up this separately
after the integration.
 
Mandy
[1] http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/java.desktop/share/classes/module-info.java




More information about the build-dev mailing list