Skip to content

Commit 34a1701

Browse files
author
Nicolas Laurent
committed
[GR-25246] jt: make it easy to use JDK11
PullRequest: truffleruby/2181
2 parents 7589239 + f017d21 commit 34a1701

File tree

1 file changed

+48
-17
lines changed

1 file changed

+48
-17
lines changed

tool/jt.rb

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,12 @@ def get_truffle_version(from: :suite)
146146
def jvmci_version
147147
@jvmci_version ||= begin
148148
ci = File.read("#{TRUFFLERUBY_DIR}/common.json")
149-
unless /{\s*"name"\s*:\s*"openjdk"\s*,\s*"version"\s*:\s*"8u(?:\d+(?:\+\d+)?)-(jvmci-[^"]+)"\s*,/ =~ ci
150-
raise 'JVMCI version not found in common.json'
149+
if @jdk_version == 8
150+
regex = /{\s*"name"\s*:\s*"openjdk"\s*,\s*"version"\s*:\s*"8u.+-(jvmci-[^"]+)"\s*,/
151+
else
152+
regex = /{\s*"name"\s*:\s*"labsjdk"\s*,\s*"version"\s*:\s*"ce-11\..+-(jvmci-[^"]+)"\s*,/
151153
end
154+
raise 'JVMCI version not found in common.json' unless regex =~ ci
152155
$1
153156
end
154157
end
@@ -530,7 +533,9 @@ def find_java_home
530533
end
531534
else
532535
raise '$JAVA_HOME should be set in CI' if ci?
533-
install_jvmci('$JAVA_HOME is not set, downloading JDK8 with JVMCI', (@mx_env || @ruby_name || '').include?('ee'))
536+
install_jvmci(
537+
"$JAVA_HOME is not set, downloading JDK#{@jdk_version} with JVMCI",
538+
(@mx_env || @ruby_name || '').include?('ee'))
534539
end
535540
end
536541
end
@@ -625,6 +630,7 @@ def help
625630
Default value is --use jvm, therefore all commands run on truffleruby-jvm by default.
626631
The default can be changed with `export RUBY_BIN=RUBY_SELECTOR`
627632
--silent Does not print the command and which Ruby is used
633+
--jdk Specifies which version of the JDK should be used: 8 (default) or 11
628634
629635
jt build [graalvm|parser|options] ... by default it builds graalvm
630636
jt build [parser|options] [options]
@@ -1937,7 +1943,11 @@ def install(name, *options)
19371943
end
19381944

19391945
private def install_jvmci(download_message, ee)
1940-
jdk_name = ee ? 'oraclejdk8' : 'openjdk8'
1946+
if @jdk_version == 8
1947+
jdk_name = ee ? 'oraclejdk8' : 'openjdk8'
1948+
else
1949+
jdk_name = ee ? 'labsjdk-ee-11' : 'labsjdk-ce-11'
1950+
end
19411951

19421952
java_home = "#{CACHE_EXTRA_DIR}/#{jdk_name}-#{jvmci_version}"
19431953
unless File.directory?(java_home)
@@ -2638,25 +2648,46 @@ def self.gem_test_pack
26382648
JT.new.gem_test_pack
26392649
end
26402650

2641-
def main(args)
2642-
args = args.dup
2651+
def process_pre_args(args)
2652+
needs_build = false
2653+
needs_rebuild = false
2654+
@silent = false
2655+
@jdk_version = 8
26432656

2644-
if args.empty? or %w[-h -help --help].include? args.first
2645-
help
2646-
exit
2657+
until args.empty?
2658+
arg = args.shift
2659+
case arg
2660+
when '--build'
2661+
needs_build = true
2662+
when '--rebuild'
2663+
needs_rebuild = true
2664+
when '-u', '--use'
2665+
@ruby_name = args.shift
2666+
when '--silent'
2667+
@silent = true
2668+
when '--jdk'
2669+
@jdk_version = Integer(args.shift)
2670+
when '-h', '-help', '--help'
2671+
help
2672+
exit
2673+
else
2674+
args.unshift arg
2675+
break
2676+
end
26472677
end
26482678

2649-
if args.first =~ /^--((?:re)?build)$/
2650-
send $1
2651-
args.shift
2652-
end
2679+
raise "Invalid JDK version: #{@jdk_version}" if @jdk_version != 8 && @jdk_version != 11
26532680

2654-
if args.first == '--use' || args.first == '-u'
2655-
args.shift
2656-
@ruby_name = args.shift
2681+
if needs_rebuild
2682+
rebuild
2683+
elsif needs_build
2684+
build
26572685
end
2686+
end
26582687

2659-
@silent = !!args.delete('--silent')
2688+
def main(args)
2689+
args = args.dup
2690+
process_pre_args(args)
26602691

26612692
commands = Commands.public_instance_methods(false).map(&:to_s)
26622693

0 commit comments

Comments
 (0)