プロジェクト

全般

プロフィール

バグ #1606

完了

YJITが有効になっていないRubyでmikutterが起動しない

Akira Ouchi さんが約1年前に追加. 約1ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:
いいえ

説明

YJITが有効になっていないRubyでは、以下の行でエラーとなってmikutterが起動できなくなります。
Rust環境がないPCで、rbenv等を使用してビルドされたRuby環境がおもに該当します。

--- a/mikutter.rb
+++ b/mikutter.rb
@@ -61,7 +61,7 @@ Plugin.call(:boot, nil)
 # _profile_ がtrueなら、プロファイリングした結果を一時ディレクトリに保存する
 def boot!(profile)
   begin
-    RubyVM::YJIT.enable if RUBY_VERSION.split('.') >= %w[3 3]
+    #RubyVM::YJIT.enable if RUBY_VERSION.split('.') >= %w[3 3]
     if profile
       require 'ruby-prof'
       begin

以下はしばふの解析です。

https://ertona.net/@shibafu528/114242983598722984
https://ertona.net/@shibafu528/114242985389869403
https://ertona.net/@shibafu528/114242988422991960


ファイル

Izumi Tsutsui さんが約1ヶ月前に更新

https://x.com/ebijun/status/2036635798108504254

NetBSD/earmv7hf mikutter rubyのYJIT 定義があったらenableするようにすると起動する。

pkgsrc-2026Q1 でやっと Ruby 3.3 がデフォルトになって NetBSD/i386 でも同じ現象で自分でも試しましたが
添付のパッチ 0001-Ruby-YJIT-YJIT.enable-refs-1606.patch で起動はしました。
ebijun さんの diff に対してなんとなく Ruby バージョンのチェックを先にしています。

toshi_a 初音 さんが約1ヶ月前に更新

  • ステータスパッチ適用待ち から レビュー待ち に変更
  • 担当者Izumi Tsutsui にセット
  • ブランチtopic/1606-yjit にセット

修正しました。
ただし、YJIT定数が前のRubyバージョンでは定義されてるはずがないこと、mikutter 5.2でRuby3.3未満のサポートを切ることからバージョン判定は取り除いています

Izumi Tsutsui さんが約1ヶ月前に更新

  • ステータスレビュー待ち から マージ待ち に変更
  • 再現手順 を更新 (差分)

Izumi Tsutsui さんが約1ヶ月前に更新

  • 再現手順 を更新 (差分)

記入する場所を間違えるておくれになった……

超アバウトに NetBSD/i386 11.0_RC3 + pkgsrc-2026Q1 (なので bundler は無し)で
mikutter develop + topic/1290-pango-emoji-height + topic/1606-yjit + topic/1609-ruby4 + addressable 2.9.0 + ruby-gnome 4.3.6
という全部入りで起動テストしてOKです

toshi_a 初音 さんが約1ヶ月前に更新

  • ステータスマージ待ち から 終了 に変更

merged

他の形式にエクスポート: Atom PDF