diff --git a/ci/common.jsonnet b/ci/common.jsonnet index c15b0a8b42dc..c1c5dc100a55 100644 --- a/ci/common.jsonnet +++ b/ci/common.jsonnet @@ -8,24 +8,50 @@ local common_json = import "../common.json"; { # JDK definitions # *************** + local jdk_base = { + name: error "name not set", # string; The JDK provider, e.g. "jpg-jdk", "labsjdk" + version: error "version not set", # string; Full version string, e.g., "ce-21+35-jvmci-23.1-b15" + jdk_version:: error "jdk_version not set", # int; The major JDK version, e.g., 21 + jdk_name:: "jdk%d" % self.jdk_version, # string; The major JDK version with the JDK prefix. + # For the latest (unreleased) this should be overridden with "jdk-latest" + # otherwise the jdk_version with the "jdk" prefix, e.g., "jdk21". + # This should be use for constructing CI job names. + # Optional: + # "build_id": "33", + # "release": true, + # "platformspecific": true, + # "extrabundles": ["static-libs"], + }, + # *************** local variants(name) = [name, name + "Debug", name + "-llvm"], + # gets the JDK major version from a labsjdk version string (e.g., "ce-21+35-jvmci-23.1-b15" -> 21) + local parse_labsjdk_version(version) = + assert std.startsWith(version, "ce-") || std.startsWith(version, "ee-") : "Unsupported labsjdk version: " + version; + local number_prefix(str) = + if std.length(str) == 0 || std.length(std.findSubstr(str[0], "0123456789")) == 0 then + "" + else + str[0] + number_prefix(str[1:]) + ; + std.parseInt(number_prefix(version[3:])) + , local jdks_data = { - oraclejdk11: common_json.jdks["oraclejdk11"] + { jdk_version:: 11 }, + oraclejdk11: jdk_base + common_json.jdks["oraclejdk11"] + { jdk_version:: 11 }, } + { - [name]: common_json.jdks[name] + { jdk_version:: 17 } + [name]: jdk_base + common_json.jdks[name] + { jdk_version:: 17 } for name in ["oraclejdk17"] + variants("labsjdk-ce-17") + variants("labsjdk-ee-17") } + { - [name]: common_json.jdks[name] + { jdk_version:: 19 } + [name]: jdk_base + common_json.jdks[name] + { jdk_version:: 19 } for name in ["oraclejdk19"] + variants("labsjdk-ce-19") + variants("labsjdk-ee-19") } + { - [name]: common_json.jdks[name] + { jdk_version:: 20 } + [name]: jdk_base + common_json.jdks[name] + { jdk_version:: 20 } for name in ["oraclejdk20"] + variants("labsjdk-ce-20") + variants("labsjdk-ee-20") } + { - [name]: common_json.jdks[name] + { jdk_version:: 21 } + [name]: jdk_base + common_json.jdks[name] + { jdk_version:: 21 } for name in ["oraclejdk21"] + variants("labsjdk-ce-21") + variants("labsjdk-ee-21") } + { - [name]: common_json.jdks[name] + { jdk_version:: 22 } - for name in variants("labsjdk-ce-22") + variants("labsjdk-ee-22") + [name]: jdk_base + common_json.jdks[name] + { jdk_version:: parse_labsjdk_version(self.version), jdk_name:: "jdk-latest"} + for name in variants("labsjdk-ce-latest") + variants("labsjdk-ee-latest") }, assert std.assertEqual(std.objectFields(common_json.jdks), std.objectFields(jdks_data)), @@ -39,6 +65,7 @@ local common_json = import "../common.json"; [if std.endsWith(name, "llvm") then "LLVM_JAVA_HOME" else "JAVA_HOME"]: jdks_data[name] }, jdk_version:: jdks_data[name].jdk_version, + jdk_name:: jdks_data[name].jdk_name, }, for name in std.objectFields(jdks_data) } + { diff --git a/common.json b/common.json index 3a6f83fdbaa3..5b9df097ce0e 100644 --- a/common.json +++ b/common.json @@ -4,7 +4,7 @@ "Jsonnet files should not include this file directly but use ci/common.jsonnet instead." ], - "mx_version": "6.46.1", + "mx_version": "6.50.2", "COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet", "jdks": { @@ -42,12 +42,12 @@ "labsjdk-ee-21Debug": {"name": "labsjdk", "version": "ee-21+35-jvmci-23.1-b15-debug", "platformspecific": true }, "labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21+35-jvmci-23.1-b15-sulong", "platformspecific": true }, - "labsjdk-ce-22": {"name": "labsjdk", "version": "ce-22+13-jvmci-b01", "platformspecific": true }, - "labsjdk-ce-22Debug": {"name": "labsjdk", "version": "ce-22+13-jvmci-b01-debug", "platformspecific": true }, - "labsjdk-ce-22-llvm": {"name": "labsjdk", "version": "ce-22+13-jvmci-b01-sulong", "platformspecific": true }, - "labsjdk-ee-22": {"name": "labsjdk", "version": "ee-22+13-jvmci-b01", "platformspecific": true }, - "labsjdk-ee-22Debug": {"name": "labsjdk", "version": "ee-22+13-jvmci-b01-debug", "platformspecific": true }, - "labsjdk-ee-22-llvm": {"name": "labsjdk", "version": "ee-22+13-jvmci-b01-sulong", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+15-jvmci-b01", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+15-jvmci-b01-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+15-jvmci-b01-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+15-jvmci-b01", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+15-jvmci-b01-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+15-jvmci-b01-sulong", "platformspecific": true } }, "eclipse": { diff --git a/mx.truffleruby/env_files.md b/mx.truffleruby/env_files.md index 6820576e45f5..c9b194c75a9e 100644 --- a/mx.truffleruby/env_files.md +++ b/mx.truffleruby/env_files.md @@ -5,7 +5,8 @@ Here is how the various env files relate to each other: * `jvm-ce-libgraal`: + libgraal * `native`: + librubyvm + `Truffle Macro` * `native-host-inlining`: + `TruffleHostInliningPrintExplored`, - native toolchain launchers - * `jvm-ee`: + Oracle GraalVM Compiler + `Truffle enterprise` + * `native-profiling`: + `-H:-DeleteLocalSymbols` + * `jvm-ee`: + Oracle GraalVM Compiler + `Truffle enterprise` + license + `LLVM Runtime Native Enterprise` * `jvm-ee-ntl`: + native toolchain launchers * `jvm-ee-libgraal`: + libgraal * `native-ee`: + librubyvm + `Truffle Macro Enterprise` + Native Image G1 diff --git a/mx.truffleruby/jvm-ee b/mx.truffleruby/jvm-ee index dd3896d05f0a..36e8e98348cf 100644 --- a/mx.truffleruby/jvm-ee +++ b/mx.truffleruby/jvm-ee @@ -1,6 +1,8 @@ GRAALVM_SKIP_ARCHIVE=true -DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise -COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise +DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise +COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise +NATIVE_IMAGES=false # To also create the standalone INSTALLABLES=TruffleRuby BUILD_TARGETS=GRAALVM,GRAALVM_STANDALONES +# NOTE: SVM EE is added as a workaround to tell the JVM standalone to be EE diff --git a/mx.truffleruby/jvm-ee-libgraal b/mx.truffleruby/jvm-ee-libgraal index 7bdbcaa02571..2fce74b6e1fc 100644 --- a/mx.truffleruby/jvm-ee-libgraal +++ b/mx.truffleruby/jvm-ee-libgraal @@ -1,6 +1,6 @@ GRAALVM_SKIP_ARCHIVE=true -DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/substratevm-enterprise -COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,SubstrateVM Enterprise,LibGraal Enterprise +DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise +COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise,LibGraal Enterprise NATIVE_IMAGES=suite:sulong,lib:jvmcicompiler # To also create the standalone INSTALLABLES=TruffleRuby diff --git a/mx.truffleruby/jvm-ee-ntl b/mx.truffleruby/jvm-ee-ntl index dda97e3815e3..6b27cf14d5ba 100644 --- a/mx.truffleruby/jvm-ee-ntl +++ b/mx.truffleruby/jvm-ee-ntl @@ -1,6 +1,6 @@ GRAALVM_SKIP_ARCHIVE=true -DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/substratevm-enterprise -COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,SubstrateVM Enterprise +DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise +COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise NATIVE_IMAGES=suite:sulong # To also create the standalone INSTALLABLES=TruffleRuby diff --git a/mx.truffleruby/native-ee b/mx.truffleruby/native-ee index 44fa1dfb7034..ba55612f8323 100644 --- a/mx.truffleruby/native-ee +++ b/mx.truffleruby/native-ee @@ -1,6 +1,6 @@ GRAALVM_SKIP_ARCHIVE=true -DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/substratevm-enterprise,substratevm-enterprise-gcs -COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,SubstrateVM Enterprise,Truffle Macro Enterprise,suite:substratevm-enterprise-gcs +DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise,substratevm-enterprise-gcs +COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise,Truffle Macro Enterprise,suite:substratevm-enterprise-gcs NATIVE_IMAGES=suite:sulong,lib:rubyvm EXTRA_IMAGE_BUILDER_ARGUMENTS=rubyvm:-H:+UnlockExperimentalVMOptions rubyvm:-H:BuildOutputJSONFile=native-image-build-rubyvm.json rubyvm:-H:-UnlockExperimentalVMOptions GENERATE_DEBUGINFO=false diff --git a/mx.truffleruby/native-ee-aux b/mx.truffleruby/native-ee-aux index 328ab80e90bb..4ac082f464dd 100644 --- a/mx.truffleruby/native-ee-aux +++ b/mx.truffleruby/native-ee-aux @@ -1,6 +1,6 @@ GRAALVM_SKIP_ARCHIVE=true -DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/substratevm-enterprise -COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,SubstrateVM Enterprise,Truffle Macro Enterprise +DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise +COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise,Truffle Macro Enterprise NATIVE_IMAGES=suite:sulong,lib:rubyvm EXTRA_IMAGE_BUILDER_ARGUMENTS=rubyvm:-H:+UnlockExperimentalVMOptions rubyvm:-H:BuildOutputJSONFile=native-image-build-rubyvm.json rubyvm:-H:-UnlockExperimentalVMOptions rubyvm:-H:+AuxiliaryEngineCache rubyvm:-H:ReservedAuxiliaryImageBytes=1073741824 GENERATE_DEBUGINFO=false diff --git a/mx.truffleruby/native-ee-host-inlining b/mx.truffleruby/native-ee-host-inlining index 518a1bcc34c4..cdc1c00edc60 100644 --- a/mx.truffleruby/native-ee-host-inlining +++ b/mx.truffleruby/native-ee-host-inlining @@ -1,8 +1,8 @@ GRAALVM_SKIP_ARCHIVE=true -DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/substratevm-enterprise,substratevm-enterprise-gcs -COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,SubstrateVM Enterprise,Truffle Macro Enterprise,suite:substratevm-enterprise-gcs +DYNAMIC_IMPORTS=/tools,/truffleruby-enterprise,/graal-enterprise,/vm-enterprise,/sulong-managed,/substratevm-enterprise,substratevm-enterprise-gcs +COMPONENTS=TruffleRuby,suite:tools,GraalVM enterprise compiler,Truffle enterprise,GraalVM enterprise license files,LLVM Runtime Native Enterprise,SubstrateVM Enterprise,Truffle Macro Enterprise,suite:substratevm-enterprise-gcs NATIVE_IMAGES=lib:rubyvm -EXTRA_IMAGE_BUILDER_ARGUMENTS=rubyvm:-H:+UnlockExperimentalVMOptions rubyvm:-H:BuildOutputJSONFile=native-image-build-rubyvm.json rubyvm:-H:Log=HostInliningPhase,~CanonicalizerPhase,~GraphBuilderPhase rubyvm:-H:+TruffleHostInliningPrintExplored rubyvm:-H:-UnlockExperimentalVMOptions rubyvm:-Dgraal.LogFile=host-inlining.txt +EXTRA_IMAGE_BUILDER_ARGUMENTS=rubyvm:-H:+UnlockExperimentalVMOptions rubyvm:-H:BuildOutputJSONFile=native-image-build-rubyvm.json rubyvm:-H:Log=HostInliningPhase,~CanonicalizerPhase,~GraphBuilderPhase rubyvm:-H:+TruffleHostInliningPrintExplored rubyvm:-H:-UnlockExperimentalVMOptions rubyvm:-Dgraal.LogFile=host-inlining.txt GENERATE_DEBUGINFO=false # To also create the standalone INSTALLABLES=TruffleRuby diff --git a/mx.truffleruby/native-profiling b/mx.truffleruby/native-profiling new file mode 100644 index 000000000000..004d50463bf1 --- /dev/null +++ b/mx.truffleruby/native-profiling @@ -0,0 +1,9 @@ +GRAALVM_SKIP_ARCHIVE=true +DYNAMIC_IMPORTS=/tools,/compiler,/substratevm +COMPONENTS=TruffleRuby,suite:tools,GraalVM compiler,SubstrateVM,Truffle Macro +NATIVE_IMAGES=suite:sulong,lib:rubyvm +EXTRA_IMAGE_BUILDER_ARGUMENTS=rubyvm:-H:+UnlockExperimentalVMOptions rubyvm:-H:BuildOutputJSONFile=native-image-build-rubyvm.json rubyvm:-H:-DeleteLocalSymbols rubyvm:-H:-UnlockExperimentalVMOptions +GENERATE_DEBUGINFO=false +# To also create the standalone +INSTALLABLES=TruffleRuby +BUILD_TARGETS=GRAALVM,GRAALVM_STANDALONES diff --git a/mx.truffleruby/suite.py b/mx.truffleruby/suite.py index 55238f896347..0ffaa6a44b73 100644 --- a/mx.truffleruby/suite.py +++ b/mx.truffleruby/suite.py @@ -20,7 +20,7 @@ { "name": "regex", "subdir": True, - "version": "07e38d9f2ae21ec51f24ecfb64a0fba91f03752a", + "version": "77f8dd83827ed60ef68079d93f37b95a9412c681", "urls": [ {"url": "https://github.com/oracle/graal.git", "kind": "git"}, {"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"}, @@ -29,7 +29,7 @@ { "name": "sulong", "subdir": True, - "version": "07e38d9f2ae21ec51f24ecfb64a0fba91f03752a", + "version": "77f8dd83827ed60ef68079d93f37b95a9412c681", "urls": [ {"url": "https://github.com/oracle/graal.git", "kind": "git"}, {"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"},