Only modified LOAD_PATH for RJIT with fiddle provided by bundled gems

This commit is contained in:
Hiroshi SHIBATA 2025-02-06 16:44:23 +09:00
parent b4bfbcaddc
commit ec8e3e376c
No known key found for this signature in database
GPG Key ID: F9CF13417264FAC2

16
rjit.rb
View File

@ -28,15 +28,19 @@ end
if RubyVM::RJIT.enabled?
begin
fiddle_paths = %w[.bundle/gems/fiddle-*/lib .bundle/extensions/*/*/fiddle-*].map do |dir|
Dir.glob("#{File.expand_path("..", __FILE__)}/#{dir}").first
end.compact
$LOAD_PATH.unshift(*fiddle_paths) unless fiddle_paths.empty?
require 'fiddle'
require 'fiddle/import'
rescue LoadError
return # miniruby doesn't support RJIT
# Find fiddle from artifacts of bundled gems for make test-all
fiddle_paths = %w[.bundle/gems/fiddle-*/lib .bundle/extensions/*/*/fiddle-*].map do |dir|
Dir.glob("#{File.expand_path("..", __FILE__)}/#{dir}").first
end.compact
if fiddle_paths.empty?
return # miniruby doesn't support RJIT
else
$LOAD_PATH.unshift(*fiddle_paths)
retry
end
end
require 'ruby_vm/rjit/c_type'