@@ -146,9 +146,12 @@ def get_truffle_version(from: :suite)
146
146
def jvmci_version
147
147
@jvmci_version ||= begin
148
148
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 *,/
151
153
end
154
+ raise 'JVMCI version not found in common.json' unless regex =~ ci
152
155
$1
153
156
end
154
157
end
@@ -530,7 +533,9 @@ def find_java_home
530
533
end
531
534
else
532
535
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' ) )
534
539
end
535
540
end
536
541
end
@@ -625,6 +630,7 @@ def help
625
630
Default value is --use jvm, therefore all commands run on truffleruby-jvm by default.
626
631
The default can be changed with `export RUBY_BIN=RUBY_SELECTOR`
627
632
--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
628
634
629
635
jt build [graalvm|parser|options] ... by default it builds graalvm
630
636
jt build [parser|options] [options]
@@ -1937,7 +1943,11 @@ def install(name, *options)
1937
1943
end
1938
1944
1939
1945
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
1941
1951
1942
1952
java_home = "#{ CACHE_EXTRA_DIR } /#{ jdk_name } -#{ jvmci_version } "
1943
1953
unless File . directory? ( java_home )
@@ -2638,25 +2648,46 @@ def self.gem_test_pack
2638
2648
JT . new . gem_test_pack
2639
2649
end
2640
2650
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
2643
2656
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
2647
2677
end
2648
2678
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
2653
2680
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
2657
2685
end
2686
+ end
2658
2687
2659
- @silent = !!args . delete ( '--silent' )
2688
+ def main ( args )
2689
+ args = args . dup
2690
+ process_pre_args ( args )
2660
2691
2661
2692
commands = Commands . public_instance_methods ( false ) . map ( &:to_s )
2662
2693
0 commit comments