Mercurial > hg > graal-compiler
changeset 23295:22f57623221f
override "jvmci" tag for --jdk option with Graal specific JDK config
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 12 Jan 2016 15:31:53 +0100 |
parents | 3c37032e8e63 |
children | 2bd7d1d8acd4 |
files | mx.graal/mx_graal_8.py mx.graal/mx_graal_9.py mx.graal/suite.py |
diffstat | 3 files changed, 60 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mx.graal/mx_graal_8.py Tue Jan 12 14:34:05 2016 +0100 +++ b/mx.graal/mx_graal_8.py Tue Jan 12 15:31:53 2016 +0100 @@ -31,7 +31,7 @@ import re import mx -from mx_jvmci import JvmciJDKDeployedDist, JVMCIArchiveParticipant, jdkDeployedDists, add_bootclasspath_prepend, buildvms, get_jvmci_jdk, VM, relativeVmLibDirInJdk, isJVMCIEnabled +from mx_jvmci import JvmciJDKDeployedDist, JVMCIArchiveParticipant, jdkDeployedDists, add_bootclasspath_prepend, buildvms, get_jvmci_jdk, _JVMCI_JDK_TAG, VM, relativeVmLibDirInJdk, isJVMCIEnabled from mx_jvmci import get_vm as _jvmci_get_vm from mx_jvmci import run_vm as _jvmci_run_vm from mx_gate import Task @@ -446,5 +446,57 @@ self.services.setdefault('com.oracle.graal.options.OptionDescriptors', []).append(provider) return JVMCIArchiveParticipant.__add__(self, arcname, contents) +""" +The Graal JDK(s). +""" +_graal_jdks = {} + +def get_graal_jdk(): + """ + Gets a Graal JDK which adds support for handling the -G format of Graal options. + """ + jvmci_jdk = get_jvmci_jdk() + if jvmci_jdk.javaCompliance < '9': + # jvmci-8 + from mx_jvmci import check_VM_exists, JVMCIJDKConfig # pylint: disable=no-name-in-module + vmbuild = jvmci_jdk.vmbuild + check_VM_exists(get_vm(), jvmci_jdk.home, vmbuild) + jdk = _graal_jdks.get(vmbuild) + if jdk is None: + class GraalJDK8Config(JVMCIJDKConfig): + def __init__(self, vmbuild): + JVMCIJDKConfig.__init__(self, vmbuild) + + def parseVmArgs(self, args, addDefaultArgs=True): + return JVMCIJDKConfig.parseVmArgs(self, map(_translateGOption, args), addDefaultArgs=addDefaultArgs) + + jdk = GraalJDK8Config(vmbuild) + _graal_jdks[vmbuild] = jdk + else: + # jvmci-9 + jdk = _graal_jdks.get('default') + if jdk is None: + from mx_jvmci import JVMCI9JDKConfig # pylint: disable=no-name-in-module + class GraalJDK9Config(JVMCI9JDKConfig): + def __init__(self, debugLevel): + JVMCI9JDKConfig.__init__(self, debugLevel) + + def parseVmArgs(self, args, addDefaultArgs=True): + return JVMCI9JDKConfig.parseVmArgs(self, map(_translateGOption, args), addDefaultArgs=addDefaultArgs) + jdk = GraalJDK9Config(jvmci_jdk.debugLevel) + _graal_jdks['default'] = jdk + return jdk + +class GraalJDKFactory(mx.JDKFactory): + def getJDKConfig(self): + return get_graal_jdk() + + def description(self): + return "Graal JDK" + +# This will override the 'generic' JVMCI JDK with a Graal JVMCI JDK that has +# support for -G style Graal options. +mx.addJDKFactory(_JVMCI_JDK_TAG, mx.JavaCompliance('9' if isinstance(_jvmci_get_vm(), VM) else '8'), GraalJDKFactory()) + def mx_post_parse_cmd_line(opts): add_bootclasspath_prepend(mx.distribution('truffle:TRUFFLE_API'))
--- a/mx.graal/mx_graal_9.py Tue Jan 12 14:34:05 2016 +0100 +++ b/mx.graal/mx_graal_9.py Tue Jan 12 15:31:53 2016 +0100 @@ -361,12 +361,12 @@ cmd = [jdk.java] + ['-' + get_vm()] + jvmciModeArgs + args return mx.run(cmd, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd) -_GRAAL_JVMCI_TAG = 'graal' +_JVMCI_JDK_TAG = 'jvmci' class GraalJVMCI9JDKConfig(mx.JDKConfig): def __init__(self, original): self._original = original - mx.JDKConfig.__init__(self, original.home, tag=_GRAAL_JVMCI_TAG) + mx.JDKConfig.__init__(self, original.home, tag=_JVMCI_JDK_TAG) def run_java(self, args, **kwArgs): run_java(self._original, args, **kwArgs) @@ -378,7 +378,9 @@ def description(self): return "JVMCI JDK with Graal" -mx.addJDKFactory(_GRAAL_JVMCI_TAG, mx.JavaCompliance('9'), GraalJDKFactory()) +# This will override the 'generic' JVMCI JDK with a Graal JVMCI JDK that has +# support for -G style Graal options. +mx.addJDKFactory(_JVMCI_JDK_TAG, mx.JavaCompliance('9'), GraalJDKFactory()) def run_vm(args, vm=None, nonZeroIsFatal=True, out=None, err=None, cwd=None, timeout=None, debugLevel=None, vmbuild=None): """run a Java program by executing the java executable in a JVMCI JDK"""
--- a/mx.graal/suite.py Tue Jan 12 14:34:05 2016 +0100 +++ b/mx.graal/suite.py Tue Jan 12 15:31:53 2016 +0100 @@ -31,7 +31,7 @@ return [s for s in l if not JDK9 or not s.get('name') == "jvmci"] suite = { - "mxversion" : "5.6.7", + "mxversion" : "5.6.10", "name" : "graal", "imports" : { @@ -39,7 +39,7 @@ { "name" : "jvmci", "optional" : "true", - "version" : "61cc3ee666d2562ca6c51400729e65e0b8a0a669", + "version" : "7d02b40973092b688f7d941ffb3a479b41f14bd7", "urls" : [ {"url" : "http://lafo.ssw.uni-linz.ac.at/hg/graal-jvmci-8", "kind" : "hg"}, {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"},