ZJIT: Look for RUBY_ZJIT_ENABLE in combo build with YJIT

This commit is contained in:
Alan Wu 2025-08-12 18:10:44 -04:00
parent 88d71eb04d
commit fdb831fdfc
2 changed files with 10 additions and 1 deletions

3
ruby.c
View file

@ -2354,7 +2354,8 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
if (!FEATURE_USED_P(opt->features, yjit) && env_var_truthy("RUBY_YJIT_ENABLE")) { if (!FEATURE_USED_P(opt->features, yjit) && env_var_truthy("RUBY_YJIT_ENABLE")) {
FEATURE_SET(opt->features, FEATURE_BIT(yjit)); FEATURE_SET(opt->features, FEATURE_BIT(yjit));
} }
#elif USE_ZJIT #endif
#if USE_ZJIT
if (!FEATURE_USED_P(opt->features, zjit) && env_var_truthy("RUBY_ZJIT_ENABLE")) { if (!FEATURE_USED_P(opt->features, zjit) && env_var_truthy("RUBY_ZJIT_ENABLE")) {
FEATURE_SET(opt->features, FEATURE_BIT(zjit)); FEATURE_SET(opt->features, FEATURE_BIT(zjit));
} }

View file

@ -18,6 +18,14 @@ class TestZJIT < Test::Unit::TestCase
RUBY RUBY
end end
def test_enable_through_env
child_env = {'RUBY_YJIT_ENABLE' => nil, 'RUBY_ZJIT_ENABLE' => '1'}
assert_in_out_err([child_env, '-v'], '') do |stdout, stderr|
assert_includes(stdout.first, '+ZJIT')
assert_equal([], stderr)
end
end
def test_call_itself def test_call_itself
assert_compiles '42', <<~RUBY, call_threshold: 2 assert_compiles '42', <<~RUBY, call_threshold: 2
def test = 42.itself def test = 42.itself