مرحبًا،
أدير تثبيتًا خاصًا بـ Discourse (الإصدار 2026.5.0-latest). اليوم حاولت تفعيل YJIT. أضفت "templates/enable-ruby-yjit.yml" إلى containers/app.yml وأعدت بناء التطبيق.
بعد اكتمال إعادة البناء، حدث شيء مثير للاهتمام. داخل حاوية Docker، شغلت الأمر env | grep RUBY_YJIT_ENABLE وحصلت على النتيجة RUBY_YJIT_ENABLE=1. حتى الآن كل شيء على ما يرام. لكن عند تشغيل الأمر sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "YJIT enabled: #{RubyVM::YJIT.enabled?}"; puts RUBY_DESCRIPTION' … حصلت على:
YJIT enabled: false
ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux]
إذًا لم يتم تفعيل YJIT رغم إضافة قالب enable-ruby-yjit.yml. ثم، عند تشغيل الأمر sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "GlobalSetting.yjit_enabled=#{GlobalSetting.yjit_enabled}"' حصلت على GlobalSetting.yjit_enabled= — قيمة فارغة (nil)!
على أي حال، بعد بعض التجارب الإضافية، تمكنت أخيرًا من تفعيل YJIT بإضافة ما يلي إلى containers/app.yml:
env:
DISCOURSE_YJIT_ENABLED: true
أعتقد أن هناك خللًا ما (GlobalSetting.yjit_enabled لا يجب أبدًا أن تُرجع قيمة فارغة)، لكن ضبط متغير البيئة نجح، وآمل أن يجد شخص ما يبحث في Google عن هذه المشكلة هذا الموضوع.