今日は Integer#fdiv の最適化や bundled gems や default gems の require 時の警告が誤発生する不具合の修正などがありました。
[e7f1746d55] Jeremy Evans 2026-02-10 15:11:09 UTC
include/ruby/internal/scan_args.h の定数マクロ RB_{SCAN_ARGS,PASS}_KEYWORDS などの Doxygen 用コメントの英文を修正。
[74a4e2e66d] Nobuyoshi Nakada 2026-02-11 13:09:26 UTC
Integer#fdiv の実装で最大公約数を計算して約分する処理が double の精度に収まる小さな数同士では不要なのでスキップする fast pass を追加しています。よくある数値ではだいたい速くなると思われます。 [ruby-core:124631] [Bug #21851]
[59bfa2b510] Nobuyoshi Nakada 2026-02-11 15:19:27 UTC
拡張ライブラリ stringio で struct RBasic::flags のビットフラグの操作を直接ビット演算を書いてたのを RB_FL_SET_RAW()、RB_FL_UNSET_RAW() などのマクロを利用するようにしています。
[b9203a9383] Earlopain 2026-02-06 17:38:32 UTC
prism の Array#pack, String#unpack の指示文字列の解析機能は利用されていないようなので削除しています。
[9d8af87528] John Hawthorn 2026-02-10 20:33:51 UTC
iseq.c の cc_is_active() で struct rb_callcaceh が生きてるかどうかのチェックで rb_vm_empty_cc_for_super() の戻り値との比較をすべきところをそのまま真偽値として解釈して常に return false してしまっていたのを修正しています。これは mark 漏れに繋がりそうなので backport したほうがよさそうですね。
[b657d906ad] John Hawthorn 2026-02-10 21:08:39 UTC
ISeq の struct rb_callcaceh の GC.compact による移動の処理時に不要なメモリ書き込みを抑制することで fork 後の copy-on-write によるメモリコピーの発生を抑える最適化や実装のシンプル化を行なっています。
[b746efc1fb] John Hawthorn 2026-02-11 21:30:26 UTC
と思ったら直前の b657d906ad0d38b2015955b69f5711588801bc7a の struct rb_callcache の GC mark/move 実装の変更を revert しています。
[9aa30b512f] John Hawthorn 2026-02-11 21:30:26 UTC
9d8af87528be09bd4f846592e4922228288e3a10 の cc_is_active() が常に false を返していた不具合修正も revert しています。ということはこの変更を単独で当てるのもなにか別の問題が置きるということかな。であれば backport は待ったほうがいいのかも。
[a2a818169d] Nobuyoshi Nakada 2026-02-12 01:01:18 UTC
tool/lib/vcs.rb でコミットログから ChangeLog を生成する処理でログ内の commit hash っぽい文字列や fix #XXX のような issue のリンクっぽい記法を自動的に URL に展開する処理を削除しています。
[8f7c12830f] Nery Campusano 2026-02-11 21:07:49 UTC
標準添付ライブラリ prettyprint の PrettyPrint::SingleLine クラスの #fill_breakable、#group_sub、#break_outmost_groups などのメソッドを追加しています。PrettyPrint クラスとの互換性のため。 [ruby-core:124769] [Bug #21874]
[d57b752973] Earlopain 2026-02-12 08:23:13 UTC
prism のテストを ruby 3.4 および 4.0 で実行しないように? しています。
[b698c35590] Chris Hasiński 2026-01-19 17:35:52 UTC
default gems や bundled gems の require 時の警告を出すための lib/bundled_gems.rb で benchmakr-ips.gem のように "-" を含む gem で require "benchmark/ips" のように bundled gems と同名のディレクトリの配下のスクリプトを require した時に誤って警告が出ていたのを対策しています。
[2d159fbbb6] Nobuyoshi Nakada 2026-02-12 09:31:00 UTC
io.c, gc.c, debug.c などで _exit(2) の引数に直接 0 や 1とマジックナンバーを書いていたのを移植性のため EXIT_SUCCESS や EXIT_FAILURE などの定数マクロを使うように修正しています。
[c46fe31138] Nobuyoshi Nakada 2026-02-06 05:42:29 UTC
dtrace コマンドに渡すオプションに $(CPPFLAGS) をまるまる渡していたのを -D や -U などのオプションとその引数だけ抽出して渡すようにしています。 https://github.com/ruby/ruby/pull/12563#issuecomment-3691590489 [ruby-core:124680] [Bug #21862]