ruby-trunk-changes 2024-04-17

今日は主に make all で docs の生成をしないようにするビルドプロセスの変更や Thread.each_caller_location の引数追加、Fiber#raise の仕様変更などがありました。

[8e341d81c9] Mari Imaizumi 2024-04-16 12:42:53 UTC

標準添付ライブラリ reline のバージョンを 0.5.2 に更新しています。 https://github.com/ruby/reline/pull/682

[e8f3ea3f87] git 2024-04-16 12:44:04 UTC

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

[39b13e5818] Takashi Kokubun 2024-04-16 14:41:21 UTC

YJIT の send 命令のコンパイル時に send 系関数の呼び出しが成功した後に次の VM 命令のコンパイル結果への明示的な jump 命令を生成するようにしているみたいです。 pull request をみるとローカル変数の共有についての最適化の下準備っぽいです。 https://github.com/ruby/ruby/pull/10539

[7380e3d30f] Jean Boussier 2024-04-16 12:23:45 UTC

オブジェクトを freeze する RB_OBJ_FREEZE_RAW() の実装を rb_obj_freeze_inline() に委譲するようにして RB_OBJ_FREEZE_RAW() でやっていた Chilled String 用の対応を rb_obj_freeze_inline() に移動しています。 rb_obj_freeze_inline() で行なっていた Object Shapes のための shape の再設定が必要だったのでその不具合修正も含めて同じ処理を使いまわすようにしたようです。

[f06670c5a2] Jean Boussier 2024-04-16 13:30:00 UTC

RB_OBJ_FREEZE_RAW() およびその wrapper macro の OBJ_FREEZE_RAW() の利用している箇所をそれぞれ RB_OBJ_FREEZE()/OBJ_FREEZE() を利用するように変更しています。 Object Shapes の対応のための処理が _RAW 版では抜けているので潜在的な不具合がありそうなので予防的修正をしているそうです。

[e5df8897fe] Peter Zhu 2024-04-16 15:16:19 UTC

gc.c の gc_sweep_page() で GET_THREAD() が NULL かどうかチェックして finalizer の登録処理を読んでたのを分岐を消しています。

[d6debba817] Peter Zhu 2024-04-16 17:25:23 UTC

gc.c の gc_is_moveable_obj() でここに渡される T_SYMBOL 型のオブジェクトは全て dynamic symbol のはずなので DYNAMIC_SYM_P() でのチェックは冗長ということで削除しています。

[75154dec73] Jean byroot Boussier 2024-04-17 01:29:09 UTC

拡張ライブラリ stringio の StringIO#read に読み込み先のバッファを引数で渡した場合にその文字列の Encoding が ASCII-8BIT に変更されてしまうという不具合? を修正しています。しかしこれは不具合なのかな? https://github.com/ruby/stringio/pull/95 [ruby-core:117478] [Bug #20418]

[0b630d6441] "dependabot[bot]" 2024-04-17 02:08:14 UTC

GitHub Actions の workflows で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[f9f3018001] Koichi Sasada 2024-04-17 07:30:47 UTC

RubyVM::InstructionSequence#to_a で 9180e33ca3a5886fec3f9e0a2f48072b55914e65 でブロックを使わないメソッドへのブロック渡しの警告のために導入したメソッドの use_block フラグを結果に含めるようにしています。

[d31eda8eb6] Jean Boussier 2024-04-16 06:29:25 UTC

NEWS に d019b3baec4485909e6727db2507f943e78f38ec のYJIT の最適化が行なわれるいくつかの組み込みメソッドの再定義に対して performance カテゴリの警告を出力するようにした変更について追記しています。 [ruby-core:117523] [Feature #20429]

[eac3dee9cd] Jean Boussier 2024-04-17 07:59:50 UTC

ここ数日デバッグしていた String#@- のテストで "bar" という文字列がどこか別のところで既に使われているために失敗することがあった? みたいでもっとユニークな文字列をテストに使うように変更しています。

[7bc66a366d] Koichi Sasada 2024-04-17 08:40:20 UTC

f9f301800199e7b5b9a6e92cf726cd0214d417a4 で追加した RubyVM::InstructionSequence#to_a のテストを prism 利用時にはまだ ISeq がフラグに対応していないので? skip するようにしています。

[09638741ba] Nobuyoshi Nakada 2024-04-17 07:03:05 UTC

ブロックを受け取る Thread.each_caller_location メソッドに Kernel#caller_locations などと同様に取得するフレームの範囲を指示する引数を受付けるようにしています。 [ruby-core:117147] [Feature #20335]

[55b68d6cdc] Nobuyoshi Nakada 2024-04-17 10:16:00 UTC

09638741ba4d9547a0e48af8c767744fb1d7f68d の Thread.each_caller_location の変更で意図せず rubyspec の変更が入ってしまっていた部分を revert しています。

[e7493df7ac] Jean Boussier 2024-04-17 09:46:01 UTC

ブロックを呼び出さないメソッドにブロックを渡して呼び出した時の警告メッセージの英文を修正しています。

[cc37c89c2f] Hiroshi SHIBATA 2024-03-19 06:03:11 UTC

make all の依存関係から docs を削除して通常の make 時に docs の生成を抑制するようにしています。make install 時には生成される模様。 [ruby-core:117225] [Feature #20347]

[945a0334c7] Hiroshi SHIBATA 2024-04-17 10:13:51 UTC

cc37c89c2f4253a6f39a36ad610d0ba89c4257e8 で make 時には docs を生成せず make install 時にするようにしたので doc/contributing/building_ruby.md でインストール時のステップとして make と make install を分離するようにしています。

[6ade36c06b] Samuel Williams 2024-04-17 11:08:47 UTC

Fiber#raise が Fiber#resume の呼び元の Fiber にも例外を伝播させるようにしているようです。ふーむ? それでいいのかなと思ったけどチケットもあって Matz の approval を得ているのでそういうもののようです。 https://github.com/ruby/ruby/pull/10482 [ruby-core:117458] [Bug #20414]

[e9d7478ded] Koichi Sasada 2024-04-17 10:46:48 UTC

ブロックを使わないメソッドへのブロックつき呼び出しの警告について、同じ呼び出し元で場合によってブロックの呼び出しの有無が異なるようなメソッドの呼び出し時に実際にはブロックを呼ばないバージョンのメソッドにブロックを渡しても警告されないようにチェックの条件を緩める変更をしています。初回しか警告しないようにしているので一貫性がなくなるからかな?