这是错误的。在 Ruby 层面,该环境变量是官方切换开关之一,详见 Ruby 官方文档:
这也是错误的。DISCOURSE_YJIT_ENABLED 仅用于设置 GlobalSetting.yjit_enabled → config/application.rb 中的 config.yjit。Rails 会据此启用 YJIT,但前提是 YJIT 尚未启用。它不会禁用已经启用的 YJIT。因此,当环境变量已设置时,DISCOURSE_YJIT_ENABLED 实际上不起任何作用。
为证明我的观点,我编写了一个插件,用于返回 Web 进程中 YJIT 是否已启用:
https://discourse-on-a-pi5.falco.dev/ruby-info
你混淆了 Rails 层面的切换开关,这其实没有必要,因为应直接使用 Ruby 层面的切换开关。