Skip to content

Commit 977d5c4

Browse files
committed
JT: Fix language_dir() to always check on the GraalVM to run
1 parent ade1417 commit 977d5c4

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

tool/jt.rb

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,8 @@ def ruby_launcher
190190
elsif File.executable?(@ruby_name)
191191
@ruby_name
192192
else
193-
"#{TRUFFLERUBY_DIR}/mxbuild/truffleruby-#{@ruby_name}/#{language_dir}/ruby/bin/ruby"
193+
graalvm = "#{TRUFFLERUBY_DIR}/mxbuild/truffleruby-#{@ruby_name}"
194+
"#{graalvm}/#{language_dir(graalvm)}/ruby/bin/ruby"
194195
end
195196

196197
raise "The Ruby executable #{ruby_launcher} does not exist" unless File.exist?(ruby_launcher)
@@ -200,7 +201,8 @@ def ruby_launcher
200201
@ruby_launcher = ruby_launcher
201202

202203
unless @silent
203-
shortened_path = @ruby_launcher.sub(%r[^#{Regexp.escape TRUFFLERUBY_DIR}/], '').sub(%r[/bin/ruby$], '').sub(%r[/#{language_dir}/ruby$], '')
204+
shortened_path = @ruby_launcher.sub(%r[^#{Regexp.escape TRUFFLERUBY_DIR}/], '').sub(%r[/bin/(ruby|truffleruby)$], '')
205+
shortened_path = shortened_path.sub(%r[/#{language_dir(graalvm_home)}/ruby$], '') if graalvm_home
204206
tags = [*('Native' if truffleruby_native?),
205207
*('Interpreted' if truffleruby? && !truffleruby_compiler?),
206208
truffleruby? ? 'TruffleRuby' : 'a Ruby',
@@ -219,6 +221,18 @@ def ruby_home
219221
File.expand_path('../..', ruby_launcher)
220222
end
221223

224+
def graalvm_home
225+
up = if ruby_home.end_with?('jre/languages/ruby')
226+
3
227+
elsif ruby_home.end_with?('languages/ruby')
228+
2
229+
else
230+
nil # standalone
231+
end
232+
return nil unless up
233+
File.expand_path((['..'] * up).join('/'), ruby_home)
234+
end
235+
222236
def truffleruby_native!
223237
unless truffleruby_native?
224238
raise "The ruby executable #{ruby_launcher} is not native."
@@ -245,7 +259,6 @@ def truffleruby_compiler?
245259
return @truffleruby_compiler = true if truffleruby_native?
246260

247261
# Detect if the compiler is present by reading the $graalvm_home/release file
248-
graalvm_home = File.expand_path("..#{'/..' * (language_dir.count('/') + 1)}", ruby_home)
249262
@truffleruby_compiler = File.readlines("#{graalvm_home}/release").grep(/^COMMIT_INFO=/).any? do |line|
250263
line.include?('"compiler":') || line.include?("'compiler':")
251264
end
@@ -470,10 +483,9 @@ def find_java_home
470483
@java_home ||= ci? ? nil : ENV['JVMCI_HOME'] || install_jvmci
471484
end
472485

473-
def language_dir
474-
java_home = find_java_home || ENV.fetch('JAVA_HOME')
475-
raise "Java home #{java_home} does not exist" unless Dir.exist?(java_home)
476-
if Dir.exist?("#{java_home}/jmods")
486+
def language_dir(graalvm_home)
487+
raise "GraalVM #{graalvm_home} does not exist" unless Dir.exist?(graalvm_home)
488+
if Dir.exist?("#{graalvm_home}/jmods")
477489
'languages'
478490
else
479491
'jre/languages'
@@ -1920,7 +1932,7 @@ def bootstrap_toolchain
19201932
build_dir = mx(*mx_args, 'graalvm-home', capture: true).lines.last.chomp
19211933

19221934
dest = "#{TRUFFLERUBY_DIR}/mxbuild/#{name}"
1923-
dest_ruby = "#{dest}/#{language_dir}/ruby"
1935+
dest_ruby = "#{dest}/#{language_dir(build_dir)}/ruby"
19241936
dest_bin = "#{dest_ruby}/bin"
19251937
FileUtils.rm_rf dest
19261938
FileUtils.cp_r build_dir, dest

0 commit comments

Comments
 (0)