ruby-trunk-changes 2023-01-20

今日は YJIT の JIT 対応の拡張や String#bytesplice に引数を追加して引数の部分文字列を利用できるようにする変更などがありました。

[dcc676a86e] Peter Zhu 2023-01-18 15:26:46 UTC

ISeq の参照を GC.compact による移動に追随させる関数 rb_iseq_update_references() で iseq->body->call_data の struct rb_call_data#ci メンバーの内容をチェックしているところで vm_ci_markable() を呼んだりしている箇所で NULL かそうでないかだけで充分だったみたいなのでチェックを緩和しています。

[f36178006b] Nobuyoshi Nakada 2023-01-19 15:20:27 UTC

Array#pack の実装で整数の pack 時にバイト幅が最大値より大きい場合(任意のサイズを指定はできないのでおそらく普通のプラットフォームでは起き得ない?)の rb_bug() のメッセージの typo 修正。

[569fbf229b] Nobuyoshi Nakada 2023-01-19 13:03:07 UTC

GNU Make の時に make up ターゲット実行後に make after-update も実行するようにしています。

[6f3aff3961] Nobuyoshi Nakada 2023-01-19 06:35:24 UTC

ruby_abi_version() という関数はリリースバージョンでは(というか RUBY_ABI_VERSION マクロが定義されていない時は)定義しないようになっていたのを常に定義するようにしています。一部の拡張ライブラリがこのシンボルの存在に依存していることがあったみたいです。 [ruby-core:111529] [Bug #19289]

[41bf2354e3] Peter Zhu 2023-01-17 16:21:21 UTC

gc.c に rb_gc_mark_and_move() という rb_gc_mark() と rb_gc_location() をあわせたような関数を追加して rb_gc_mark_movable() の代替に使うようにしています。ソースの読みやすさのためというのが主眼みたいです。

[9af84c95d7] Peter Zhu 2023-01-18 16:37:45 UTC

41bf2354e30fc585a61528560c291fd8ee77d107gc.c の改名して mark と compaction のための参照移動の処理をまとめた rb_iseq_mark_and_update() の読みやすたのためのリファクタリング

[8872ebec6a] Peter Zhu 2023-01-19 17:22:02 UTC

Thread::Queue#initialize の実装 rb_queue_initialize() で警告抑制のために明示的なキャストを追加しています。

[762a3d80f7] Jimmy Miller 2023-01-19 18:42:49 UTC

YJIT で C 実装メソッドの呼び出し時に配列を *args のように引数に展開して渡す呼びかたを JIT コンパイル対象としてサポートするようにしているようです。また ruby2_keywords フラグをつけた Hash を末尾にもつ配列を展開して引数として渡した時にキーワード引数として扱われるように対応しているようです。 https://github.com/ruby/ruby/pull/6929

[401aa9ddd1] Burdette Lamar 2023-01-19 18:58:34 UTC

標準添付ライブラリ net/http の Net::HTTP::Header の rdoc 用コメントの追記。

[5ce0c13f18] Takashi Kokubun 2023-01-19 20:02:25 UTC

詳細わかりませんが YJIT の Rust 実装の分岐の管理の構造を変更しているみたいです。 https://github.com/ruby/ruby/pull/7151

[f66804e6f7] lukeg 2023-01-14 21:52:29 UTC

クラス変数の代入時に Module/Class が freeze されてないかのチェックを追加しています。 [ruby-core:111813] [Bug #19341]

[0949cd7107] Peter Zhu 2023-01-19 21:26:32 UTC

f66804e6f78ed4cf81896d2256743a820b05939a で追加したテストの assertion にチケット番号への参照を追加しています。

[d80a574a04] git 2023-01-20 07:05:11 UTC

gems/bundled_gems と NEWS の rbs のバージョンを 2.8.4 に更新しています。

[a0626e11aa] Soutaro Matsumoto 2023-01-20 08:13:56 UTC

空のコミットです。 d80a574a04ab594e8a8f1fdf9e4506295306026b と同じ変更を pull request にしてマージした結果空になっちゃったみたいです。

[ea10dea6c7] Hiroshi SHIBATA 2023-01-20 08:38:29 UTC

doc/contributing/building_ruby.md に BASERUBY の必要バージョンとして 2.7以降と書かれてましたが 2.2 以降に修正しています。

[6aa9c84500] Hiroshi SHIBATA 2023-01-20 08:42:50 UTC

doc/contributing/building_ruby.md の必要なパッケージなどの情報と Qucik start をセクションを分離しています。

[1edef08dda] Hiroshi SHIBATA 2023-01-20 08:45:45 UTC

doc/contributing/building_ruby.md の BASERUBY のバージョンのところに Ubuntu の最新の LTS バージョンのパッケージで入る ruby のバージョンに追随して必要バージョンの想定を上げていくよという方針を追記しています。 [ruby-core:97355] [Misc #16671]

[231b09f195] Hiroshi SHIBATA 2023-01-20 08:51:02 UTC

doc/contributing/building_ruby.md の依存パッケージなどの OpenSSL と libyaml のバージョンの指定を追記しています。

[845f6275b2] Hiroshi SHIBATA 2023-01-20 08:53:04 UTC

doc/contributing/building_ruby.md で OpenSSL/LibreSSL、zlib、libyaml については optional ではなくて必須条件のところに移動しています。

[cce3960964] Shugo Maeda 2023-01-20 07:09:58 UTC

String#bytesplice に追加の引数を対応して引数に渡された文字列の部分文字列で置換できるようにしています。引数の文字列の一部を置換結果にしたい時に部分文字列オブジェクトを生成せずに使えるようにしています。 [NEWS] の追記が必要そうですね。 [ruby-core:111674] [Feature #19314]

[53cd5796c5] Nobuyoshi Nakada 2023-01-20 03:45:03 UTC

rubygems のテストに不要な Kernel#puts の呼び出しが残ってたのを削除しています。ついでに assert のかわりに assert_predicate を使ってエラー時のメッセージを改善しています。