diff --git a/ci.jsonnet b/ci.jsonnet index 9d97c5ff1bd7..3efb449e53dc 100644 --- a/ci.jsonnet +++ b/ci.jsonnet @@ -228,12 +228,6 @@ local part_definitions = { jdk: { local with_path = { environment+: { path+:: ["$JAVA_HOME/bin"] } }, - v11: with_path { - downloads+: { - JAVA_HOME: common.jdks["labsjdk-ce-11"], - }, - }, - v17: with_path { downloads+: { JAVA_HOME: common.jdks["labsjdk-ce-17"], @@ -535,7 +529,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " test_builds: { - "ruby-lint": $.platform.linux + $.cap.gate + $.jdk.v11 + $.use.common + $.env.jvm + $.use.build + $.run.lint + { timelimit: "45:00" }, + "ruby-lint": $.platform.linux + $.cap.gate + $.jdk.v17 + $.use.common + $.env.jvm + $.use.build + $.run.lint + { timelimit: "45:00" }, # Run specs on CRuby to make sure new specs are compatible and have the needed version guards "ruby-test-specs-on-cruby": $.platform.linux + $.cap.gate + $.use.skip_ci + $.use.common + $.run.test_specs_mri + { timelimit: "45:00" }, } + @@ -547,50 +541,42 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " local native_tests = $.run.testdownstream_aot + $.run.test_integration + $.run.test_compiler, # Order: platform, jdk, mx_env. Keep aligned for an easy visual comparison. - "ruby-test-specs-linux-11": $.platform.linux + $.jdk.v11 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:20:00" }, "ruby-test-specs-linux-17": $.platform.linux + $.jdk.v17 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:20:00" }, "ruby-test-specs-linux-19": $.platform.linux + $.jdk.v19 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:20:00" }, - "ruby-test-specs-darwin-amd64-11": $.platform.darwin_amd64 + $.jdk.v11 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:40:00" }, "ruby-test-specs-darwin-amd64-17": $.platform.darwin_amd64 + $.jdk.v17 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:40:00" }, "ruby-test-specs-darwin-amd64-19": $.platform.darwin_amd64 + $.jdk.v19 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:40:00" }, - "ruby-test-specs-darwin-aarch64-11": $.platform.darwin_aarch64 + $.jdk.v11 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:40:00" }, "ruby-test-specs-darwin-aarch64-17": $.platform.darwin_aarch64 + $.jdk.v17 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:40:00" }, "ruby-test-specs-darwin-aarch64-19": $.platform.darwin_aarch64 + $.jdk.v19 + $.env.jvm + gate_no_build + $.use.build + $.run.test_unit_tck + native_config + $.run.test_specs + { timelimit: "01:40:00" }, - "ruby-test-fast-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v11 + $.env.jvm + gate + $.run.test_fast + native_config + { timelimit: "45:00" }, - "ruby-test-fast-linux": $.platform.linux + $.jdk.v11 + $.env.jvm + gate + $.run.test_fast + { timelimit: "45:00" }, # To catch missing slow tags - "ruby-test-mri-linux": $.platform.linux + $.jdk.v11 + $.env.native + gate + $.run.test_mri + { timelimit: "01:20:00" }, - "ruby-test-mri-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v11 + $.env.native + gate + $.run.test_mri + { timelimit: "01:20:00" }, - "ruby-test-mri-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v11 + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" }, - "ruby-test-mri-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v11 + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" }, - "ruby-test-integration-linux": $.platform.linux + $.jdk.v11 + $.env.jvm + gate + $.run.test_integration, - "ruby-test-cexts-linux": $.platform.linux + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.use.sqlite331 + $.run.test_cexts, - "ruby-test-cexts-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.use.sqlite331 + $.run.test_cexts, - "ruby-test-cexts-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_cexts + { timelimit: "01:20:00" }, - "ruby-test-cexts-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_cexts + { timelimit: "01:20:00" }, - "ruby-test-gems-linux": $.platform.linux + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_gems, - "ruby-test-gems-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_gems, - "ruby-test-gems-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v11 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_gems, - "ruby-test-ecosystem-linux": $.platform.linux + $.jdk.v11 + $.env.jvm + gate + $.use.node + $.use.sqlite331 + $.use.gem_test_pack + $.run.test_ecosystem, - "ruby-test-standalone-linux": $.platform.linux + $.jdk.v11+ gate_no_build + $.run.test_make_standalone_distribution, - - "ruby-test-compiler-graal-core-11": $.platform.linux + $.jdk.v11 + $.env.jvm_ce + gate + $.use.truffleruby + $.run.test_compiler, + "ruby-test-fast-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v17 + $.env.jvm + gate + $.run.test_fast + native_config + { timelimit: "45:00" }, + "ruby-test-fast-linux": $.platform.linux + $.jdk.v17 + $.env.jvm + gate + $.run.test_fast + { timelimit: "45:00" }, # To catch missing slow tags + "ruby-test-mri-linux": $.platform.linux + $.jdk.v17 + $.env.native + gate + $.run.test_mri + { timelimit: "01:20:00" }, + "ruby-test-mri-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v17 + $.env.native + gate + $.run.test_mri + { timelimit: "01:20:00" }, + "ruby-test-mri-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v17 + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" }, + "ruby-test-mri-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v17 + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" }, + "ruby-test-integration-linux": $.platform.linux + $.jdk.v17 + $.env.jvm + gate + $.run.test_integration, + "ruby-test-cexts-linux": $.platform.linux + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.use.sqlite331 + $.run.test_cexts, + "ruby-test-cexts-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.use.sqlite331 + $.run.test_cexts, + "ruby-test-cexts-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_cexts + { timelimit: "01:20:00" }, + "ruby-test-cexts-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_cexts + { timelimit: "01:20:00" }, + "ruby-test-gems-linux": $.platform.linux + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_gems, + "ruby-test-gems-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_gems, + "ruby-test-gems-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v17 + $.env.jvm + gate + $.use.gem_test_pack + $.run.test_gems, + "ruby-test-ecosystem-linux": $.platform.linux + $.jdk.v17 + $.env.jvm + gate + $.use.node + $.use.sqlite331 + $.use.gem_test_pack + $.run.test_ecosystem, + "ruby-test-standalone-linux": $.platform.linux + $.jdk.v17+ gate_no_build + $.run.test_make_standalone_distribution, + "ruby-test-compiler-graal-core-17": $.platform.linux + $.jdk.v17 + $.env.jvm_ce + gate + $.use.truffleruby + $.run.test_compiler, "ruby-test-compiler-graal-core-19": $.platform.linux + $.jdk.v19 + $.env.jvm_ce + gate + $.use.truffleruby + $.run.test_compiler, - "ruby-test-compiler-graal-enterprise-11": $.platform.linux + $.jdk.v11 + $.env.jvm_ee + gate + $.use.truffleruby + $.run.test_compiler, "ruby-test-compiler-graal-enterprise-17": $.platform.linux + $.jdk.v17 + $.env.jvm_ee + gate + $.use.truffleruby + $.run.test_compiler, "ruby-test-compiler-graal-enterprise-19": $.platform.linux + $.jdk.v19 + $.env.jvm_ee + gate + $.use.truffleruby + $.run.test_compiler, - "ruby-test-svm-graal-core-linux-11": $.platform.linux + $.jdk.v11 + $.env.native + $.env.gdb_svm + gate + native_tests, "ruby-test-svm-graal-core-linux-17": $.platform.linux + $.jdk.v17 + $.env.native + $.env.gdb_svm + gate + native_tests, "ruby-test-svm-graal-core-linux-19": $.platform.linux + $.jdk.v19 + $.env.native + $.env.gdb_svm + gate + native_tests, - "ruby-test-svm-graal-core-darwin-amd64-11": $.platform.darwin_amd64 + $.jdk.v11 + $.env.native + $.env.gdb_svm + gate + native_tests, "ruby-test-svm-graal-core-darwin-amd64-17": $.platform.darwin_amd64 + $.jdk.v17 + $.env.native + $.env.gdb_svm + gate + native_tests, "ruby-test-svm-graal-core-darwin-amd64-19": $.platform.darwin_amd64 + $.jdk.v19 + $.env.native + $.env.gdb_svm + gate + native_tests, - "ruby-test-svm-graal-core-darwin-aarch64-11": $.platform.darwin_aarch64 + $.jdk.v11 + $.env.native + gate + native_tests, "ruby-test-svm-graal-core-darwin-aarch64-17": $.platform.darwin_aarch64 + $.jdk.v17 + $.env.native + gate + native_tests, "ruby-test-svm-graal-core-darwin-aarch64-19": $.platform.darwin_aarch64 + $.jdk.v19 + $.env.native + gate + native_tests, - "ruby-test-svm-graal-enterprise-linux": $.platform.linux + $.jdk.v11 + $.env.native_ee + $.env.gdb_svm + gate + native_tests, - "ruby-test-svm-graal-enterprise-darwin-aarch64 ": $.platform.darwin_aarch64 + $.jdk.v11 + $.env.native_ee + gate + native_tests, + "ruby-test-svm-graal-enterprise-linux": $.platform.linux + $.jdk.v17 + $.env.native_ee + $.env.gdb_svm + gate + native_tests, + "ruby-test-svm-graal-enterprise-darwin-aarch64 ": $.platform.darwin_aarch64 + $.jdk.v17 + $.env.native_ee + gate + native_tests, }, local other_rubies = { @@ -612,7 +598,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " bench_builds: { - local shared = $.platform.linux + $.jdk.v11 + $.use.common + + local shared = $.platform.linux + $.jdk.v17 + $.use.common + $.benchmark.runner + $.benchmark.compiler_metrics + { timelimit: "01:15:00" }, "ruby-metrics-compiler-graal-core": shared + graal_configurations["graal-core"] + $.use.no_multi_tier, @@ -622,7 +608,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " } + { - local shared = $.platform.linux + $.jdk.v11 + $.use.common + + local shared = $.platform.linux + $.jdk.v17 + $.use.common + $.benchmark.runner + $.benchmark.svm_build_stats + { timelimit: "00:20:00" }, # TODO this 2 jobs have GUEST_VM_CONFIG: 'default' instead of 'truffle', why? local guest_vm_override = { environment+: { GUEST_VM_CONFIG: "default" } }, @@ -632,7 +618,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " } + { - local shared = $.platform.linux + $.jdk.v11 + $.use.common + + local shared = $.platform.linux + $.jdk.v17 + $.use.common + $.benchmark.run_svm_metrics + { timelimit: "00:45:00" }, "ruby-metrics-svm-graal-core": shared + svm_configurations["svm-graal-core"] + $.use.no_multi_tier, @@ -642,7 +628,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " } + { - local shared = $.platform.linux + $.jdk.v11 + $.use.common + + local shared = $.platform.linux + $.jdk.v17 + $.use.common + $.benchmark.runner + $.benchmark.classic, "ruby-benchmarks-classic-mri": shared + other_rubies.mri + { timelimit: "00:55:00" }, @@ -658,7 +644,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " } + { - local shared = $.platform.linux + $.jdk.v11 + $.use.common, + local shared = $.platform.linux + $.jdk.v17 + $.use.common, local chunky = $.benchmark.runner + $.benchmark.chunky + { timelimit: "01:30:00" }, "ruby-benchmarks-chunky-mri": shared + chunky + other_rubies.mri, @@ -741,7 +727,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " { "ruby-metrics-truffle": - $.platform.linux + $.jdk.v11 + $.use.common + $.env.jvm + $.use.build + + $.platform.linux + $.jdk.v17 + $.use.common + $.env.jvm + $.use.build + $.use.truffleruby + $.cap.bench + $.cap.daily + $.benchmark.runner + $.benchmark.interpreter_metrics + @@ -750,7 +736,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " { "ruby-benchmarks-cext": - $.platform.linux + $.jdk.v11 + $.use.common + + $.platform.linux + $.jdk.v17 + $.use.common + $.use.truffleruby + $.use.truffleruby_cexts + $.env.jvm_ce + $.use.build + $.use.gem_test_pack + $.cap.bench + $.cap.daily + @@ -761,10 +747,10 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " manual_builds: { local shared = $.use.common + $.cap.manual + { timelimit: "15:00" }, - "ruby-generate-native-config-linux-amd64": $.platform.linux + $.jdk.v11 + shared + $.run.generate_native_config, - "ruby-generate-native-config-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v11 + shared + $.run.generate_native_config, - "ruby-generate-native-config-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v11 + shared + $.run.generate_native_config, - "ruby-generate-native-config-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v11 + shared + $.run.generate_native_config, + "ruby-generate-native-config-linux-amd64": $.platform.linux + $.jdk.v17 + shared + $.run.generate_native_config, + "ruby-generate-native-config-linux-aarch64": $.platform.linux_aarch64 + $.jdk.v17 + shared + $.run.generate_native_config, + "ruby-generate-native-config-darwin-amd64": $.platform.darwin_amd64 + $.jdk.v17 + shared + $.run.generate_native_config, + "ruby-generate-native-config-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.v17 + shared + $.run.generate_native_config, }, builds: diff --git a/mx.truffleruby/suite.py b/mx.truffleruby/suite.py index 0bcb00f3a02e..ac76f32f18c5 100644 --- a/mx.truffleruby/suite.py +++ b/mx.truffleruby/suite.py @@ -128,7 +128,7 @@ "dir": "src/annotations", "sourceDirs": ["java"], "jacoco": "include", - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "workingSets": "TruffleRuby", "checkPackagePrefix": "false", @@ -147,7 +147,7 @@ "TRUFFLERUBY-PROCESSOR", ], "jacoco": "include", - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "workingSets": "TruffleRuby", "license": ["EPL-2.0"], @@ -162,7 +162,7 @@ "truffle:TRUFFLE_API", ], "jacoco": "include", - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "workingSets": "TruffleRuby", "license": ["EPL-2.0"], @@ -176,7 +176,7 @@ "sdk:GRAAL_SDK", ], "jacoco": "include", - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "workingSets": "TruffleRuby", "license": ["EPL-2.0"], @@ -220,7 +220,7 @@ "TRUFFLERUBY-PROCESSOR", ], "jacoco": "include", - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "workingSets": "TruffleRuby", "findbugsIgnoresGenerated": True, @@ -235,7 +235,7 @@ "org.truffleruby.ruby": { "dir": "src/main/ruby", "sourceDirs": ["."], - "javaCompliance": "11+", + "javaCompliance": "17+", "license": [ "EPL-2.0", # JRuby (we're choosing EPL out of EPL,GPL,LGPL) "BSD-new", # Rubinius @@ -261,7 +261,7 @@ "sdk:LAUNCHER_COMMON", ], "jacoco": "include", - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "workingSets": "TruffleRuby", "license": ["EPL-2.0"], @@ -278,7 +278,7 @@ "NETBEANS-LIB-PROFILER", "sdk:LAUNCHER_COMMON" ], - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "license": ["EPL-2.0"], }, @@ -288,7 +288,7 @@ "dir": "src/tck", "sourceDirs": ["java", "ruby"], "dependencies": ["truffle:TRUFFLE_TCK"], - "javaCompliance": "11+", + "javaCompliance": "17+", "checkstyle": "org.truffleruby", "license": ["EPL-2.0"], }, diff --git a/test/mri/excludes/TestException.rb b/test/mri/excludes/TestException.rb index f85703358cab..94ead9abbec7 100644 --- a/test/mri/excludes/TestException.rb +++ b/test/mri/excludes/TestException.rb @@ -40,3 +40,4 @@ exclude :test_warning_category_experimental, "needs investigation" exclude :test_undef_Warning_warn, "[NoMethodError] exception expected, not #." exclude :test_exception_in_ensure_with_next, "NameError: uninitialized constant TestException::RubyVM" +exclude :test_stackoverflow, "[ruby-core:43794] [Feature #6216]." diff --git a/test/mri/excludes/TestThread.rb b/test/mri/excludes/TestThread.rb index 631e81ee84a8..3331e315ca5c 100644 --- a/test/mri/excludes/TestThread.rb +++ b/test/mri/excludes/TestThread.rb @@ -24,3 +24,4 @@ exclude :test_handle_interrupt_and_p, "transient" exclude :test_thread_value_in_trap, "transient" exclude :test_join_argument_conversion, "TypeError: TruffleRuby doesn't have a case for the org.truffleruby.core.thread.ThreadNodesFactory$JoinNodeFactory$JoinNodeGen node with values of type TestThread::Thread(org.truffleruby.core.thread.RubyThread) #(org.truffleruby.core.basicobject.RubyBasicObject)" +exclude :test_inspect, "<\"#<#::Cスレッド:0x34d208 /Users/graal/slave/e/main/test/mri/tests/ruby/test_thread.rb:33 run>\"> expected but was" diff --git a/tool/jt.rb b/tool/jt.rb index d0f04a0ea3b2..4e10e5c28b98 100755 --- a/tool/jt.rb +++ b/tool/jt.rb @@ -63,7 +63,8 @@ # Expand GEM_HOME relative to cwd so it cannot be misinterpreted later. ENV['GEM_HOME'] = File.expand_path(ENV['GEM_HOME']) if ENV['GEM_HOME'] -JDK_VERSIONS = [11, 17, 19] +JDK_VERSIONS = [17, 19] +DEFAULT_JDK_VERSION = JDK_VERSIONS.first MRI_TEST_RELATIVE_PREFIX = 'test/mri/tests' MRI_TEST_PREFIX = "#{TRUFFLERUBY_DIR}/#{MRI_TEST_RELATIVE_PREFIX}" @@ -171,7 +172,7 @@ def get_truffle_version(from: :suite) def jvmci_version @jvmci_version ||= begin ci = File.read("#{TRUFFLERUBY_DIR}/common.json") - regex = /{\s*"name"\s*:\s*"labsjdk"\s*,\s*"version"\s*:\s*"ce-11\..+-(jvmci-[^"]+)"\s*,/ + regex = /{\s*"name"\s*:\s*"labsjdk"\s*,\s*"version"\s*:\s*"ce-#{DEFAULT_JDK_VERSION}\..+-(jvmci-[^"]+)"\s*,/ raise 'JVMCI version not found in common.json' unless regex =~ ci $1 end @@ -750,7 +751,7 @@ def help The default can be changed with `export RUBY_BIN=RUBY_SELECTOR` --silent|-q Does not print the command and which Ruby is used --verbose|-v Print more details and commands - --jdk Specifies which version of the JDK should be used: #{JDK_VERSIONS.join(' or ')} + --jdk Specifies which version of the JDK should be used: #{JDK_VERSIONS.join(' or ')} (default: #{DEFAULT_JDK_VERSION}) jt build [graalvm|parser|options|core-symbols] ... by default it builds graalvm jt build parser|options|core-symbols @@ -3080,7 +3081,7 @@ def process_pre_args(args) needs_rebuild = false @silent = false @verbose = false - @jdk_version = Integer(ENV['JT_JDK'] || 11) + @jdk_version = Integer(ENV['JT_JDK'] || DEFAULT_JDK_VERSION) until args.empty? arg = args.shift