ruby-trunk-changes 2023-02-02

今日はブロック内からの特殊変数の参照がうまくできないことがある不具合の修正や拡張ライブラリ ripper の不具合修正、ObjectSpace::WeakMap のメモリリーク修正などがありました。

[9445a14d31] Nobuyoshi Nakada 2023-02-01 13:42:12 UTC

4ce642620f10ae18171b41e166aaad3944ef482a環境変数 RUBY_YJIT_ENABLE の値を真偽値判定するために追加した関数が USE_YJIT マクロが真の時しか使われてなかったので、未使用関数の抑制のために preprocessor 分岐を追加しています。

[62146d3cee] Nobuyoshi Nakada 2023-02-01 13:45:45 UTC

9445a14d313346dea3379495000b8f4637250479 で USE_YJIT と #ifdef で分岐していたのを #if でチェックするように変更しています。

[269c5d408f] "NARUSE, Yui" 2023-02-01 13:49:19 UTC

tool/redmine-backporter.rb の done コマンドで引数にチケット番号を渡さずに commit hash だけ指定した時のために空白の有無を問わないようにしています。 done に引数指定できたんだ。

[aa222b56fa] Peter Zhu 2023-02-01 15:33:15 UTC

拡張ライブラリ bigdecimalBigDecimalインスタンスは RGenGC 用の Write Barrier で保護されていることを示す RUBY_TYPED_WB_PROTECTED フラグを立てて generation の管理されるようにしています。

[375f527ded] Hiroshi SHIBATA 2023-02-01 09:24:21 UTC

rubygems のコマンドに deprecated のマークをする機能でいつ削除される予定かを指定できる機能を追加しています。

[c6f84e9189] Peter Zhu 2023-02-01 14:08:57 UTC

ObjectSpace::WeakMap の free 関数が struct weakmap 自体のポインタの解放をしていなかったためメモリリークしていた不具合を修正しています。 [ruby-core:112172] [Bug #19398]

[2675f2c864] Maxime Chevalier-Boisvert 2023-02-01 21:05:22 UTC

yjit/src/codegen.rs の余分な空行の削除。

[0a82bfe5e1] Koichi Sasada 2023-02-02 00:13:19 UTC

ブロック内からの svar の参照に不具合があったのを修正とのことで、svar ってなんだっけと思ったけどたぶん special variables で $1 とかの $ ではじまる特殊な変数ですね。変数によってスコープが異なる(thread ごとだったりプロセス全体で共通だったり)のですが C 実装されたメソッドで行なわれる正規表現マッチ結果が ruby のブロック内から参照できないことがあったみたいです。テストがなくて pull request にもどういう結果になったのがおかしいのか書かれてなかったのでこの理解で合ってるかわからないですが……。 割と踏みやすそうなものですけど YJIT が有効な時だけの問題だったりしたのかな? https://github.com/ruby/ruby/pull/7225

[f499c81b01] Nobuyoshi Nakada 2023-01-21 16:06:21 UTC

win32/README.win32 の内容を doc/windows.md に移動してマージしています。

[fad48fefe1] Nobuyoshi Nakada 2023-02-02 01:52:38 UTC

拡張ライブラリ ripper の Ripper::Lexer がブロックパラメーター部分に文法エラーがあった時にそのブロック内にヒアドキュメントがあると NoMethodError でエラーになっちゃうというのを修正しています。 error_tolerant 対応の影響で普通ならすぐエラーになるところが続きも読むので発生したのかな? [ruby-core:112173] [Bug #19399]

[8087ba736e] Nobuyoshi Nakada 2023-01-29 06:07:11 UTC

拡張ライブラリ stringio のバージョンを 3.0.6 に更新しています。

[71e9eacc4c] git 2023-02-02 04:45:47 UTC

NEWS の default gems のバージョンリストの stringio のバージョンも更新しています。

[4d82e94200] Hiroshi SHIBATA 2023-02-02 05:11:21 UTC

.gitignore に ripper.tmp.y を追加。また rb_mjit_header.h.new も無視するため rb_mjit_header.h の末尾に任意の文字列をついたものも無視するようにしています。

[3474a62033] Hiroshi SHIBATA 2023-02-02 05:48:39 UTC

doc/windows.md で Windows のパッケージシステムについて scoop と vcpkg の利用方法についての記述を追記しています。

[c35ebed895] Hiroshi SHIBATA 2023-02-02 08:20:08 UTC

doc/distribution.md から特定の distribution に関する記述を削除しています。