Skip to content

RubyVM::YJIT.enabled? doesn't respect RUBYOPT="--yjit-pause" #545

Closed
@intrip

Description

@intrip

I noticed that if you boot Ruby with RUBYOPT="--yjit-pause" the output of "RubyVM::YJIT.enabled?" is always "true" even if you haven't called yet "RubyVM::YJIT.resume".

Example:

jacopo-37s-mb 3.3.0-preview2 ~ cat yjit.rb
#!/usr/bin/env ruby

puts "RUBY_DESCRIPTION: #{RUBY_DESCRIPTION}"
puts "RUBYOPT: #{ENV['RUBYOPT']}"
puts "YJIT enabled before resuming: #{RubyVM::YJIT.enabled?}"
puts "Resuming"
RubyVM::YJIT.resume
puts "YJIT enabled after resuming #{RubyVM::YJIT.enabled?}"
jacopo-37s-mb 3.3.0-preview2 ~ for rubyopt in "--yjit" "--yjit-pause" ""; do RUBYOPT=$rubyopt ruby yjit.rb; done
RUBY_DESCRIPTION: ruby 3.3.0preview2 (2023-09-14 master e50fcca9a7) +YJIT [arm64-darwin22]
RUBYOPT: --yjit
YJIT enabled before resuming: true
Resuming
YJIT enabled after resuming true
RUBY_DESCRIPTION: ruby 3.3.0preview2 (2023-09-14 master e50fcca9a7) +YJIT [arm64-darwin22]
RUBYOPT: --yjit-pause
YJIT enabled before resuming: true
Resuming
YJIT enabled after resuming true
RUBY_DESCRIPTION: ruby 3.3.0preview2 (2023-09-14 master e50fcca9a7) [arm64-darwin22]
RUBYOPT:
YJIT enabled before resuming: false
Resuming
YJIT enabled after resuming false
jacopo-37s-mb 3.3.0-preview2 ~

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions