ruby-trunk-changes 2024-04-16

今日は主に GC の実装を環境変数で指定した共有ライブラリで上書きできるという新機能の追加などがありました。

[9b1e97b211] HASUMI Hitoshi 2024-03-28 01:26:42 UTC

struct parser_params の debug_lines や ISeq から VALUE の値を削るための変更のようです。

[07ff4aa19b] Jean Boussier 2024-04-15 11:44:48 UTC

bb1c3418d0fd3235c678ad68f7b45d32f8183a3f で修正していた String#@- のテストで assert のメッセージにデバッグ用に ObjectSpace.dump によるダンブを追加しています。

[43f4da3ebf] tomoya ishida 2024-04-15 13:15:52 UTC

標準添付ライブラリ reline の vi mode でのカーソル移動の不具合修正のようです。 https://github.com/ruby/reline/pull/679

[0a4e3f23e6] Mari Imaizumi 2024-04-15 13:31:33 UTC

標準添付ライブラリ reline の emacs モードでの未実装の key binding の削除。 https://github.com/ruby/reline/pull/680

[2eafed0f3b] Alan Wu 2024-04-15 15:59:45 UTC

YJIT の arm64 アーキテクチャ向けの命令生成で VM の最適化命令 opt_and, opt_or などで不要なレジスタ利用を抑制する最適化。 https://github.com/ruby/ruby/pull/10509

[d019b3baec] Jean Boussier 2024-04-15 11:03:26 UTC

YJIT による最適化が行なわれているようないくつかの組み込みメソッドは再定義が行なわれているのを検出したら performance カテゴリの警告を出力するようにしています。

[66bfcba587] Nobuyoshi Nakada 2024-04-15 15:46:25 UTC

configure で nm コマンドが --no-llvm-bc オプションを受付けるかチェックするためにコマンド実行する時に標準エラー出力もチェック対象にするようにしています。

[733d50f0a5] Peter Zhu 2024-04-10 19:56:43 UTC

darray.h から internal/gc.h の #include を削除していくつかメモリ管理用の関数を xcalloc()/xfree()/xrealloc() で代用するようにしています。

[1984f9aedc] Gannon McGibbon 2024-04-15 17:55:14 UTC

Kernel#autoload? の rdoc 用コメントに呼び元の cref の継承関係に影響されることを明記しています。

[f86fb1eda2] Aaron Patterson 2024-04-15 18:01:01 UTC

benchmark/ のオブジェクト生成のベンチマークにいろんな引数の initialize を定義したクラスのインスタンス生成のベンチマークを追加しています。

[a2ea4ec30c] Matt Valentine-House 2024-04-02 10:28:52 UTC

configure に --with-shared-gc というオプションを追加しています。CRuby 本体の GC の実装を共有ライブラリによって再定義できるようにする機構のためのフラグみたいです。このあとその実装が入るみたいです。 [ruby-core:117263] [Feature #20351]

[065710c0f5] Matt Valentine-House 2024-04-02 12:52:50 UTC

a2ea4ec30c409ebe8ae7952f092e0bd8c1912a17 で configure によるマクロ定義だけ追加していた GC の実装を共有ライブラリで上書きする実装の追加をしているようです。 rb_objspace_alloc() で ruby_external_gc_init() という関数を呼び出して直接環境変数 RUBY_GC_LIBRARY_PATH で指定された共有ライブラリを dlopen(3) で開いて Init_GC() という関数を差し替えるだけで、これだけでいいのかな。まああとはその先の実装が頑張るということなんでしょうけど内容に対してちょっと肩すかしという感じですね。あとこれほどの変更なら NEWS への追記は必要そう。あとチケットへの参照も欲しいところ。 [ruby-core:117263] [Feature #20351]

[f5d89267c4] Matt Valentine-House 2024-04-04 18:48:41 UTC

GitHub Actions の Ubuntu 環境の workflow に --with-shared-gc つきでビルドしてテストするジョブを追加しています。 [ruby-core:117263] [Feature #20351]

[ebaa87f626] yui-knk 2024-04-15 12:26:38 UTC

Universal Parser 用の構造体 rb_parser_config_t の未使用になった関数ポインタのメンバー ary_modify、default_rs、enc_associate_index、obj_write、gc_mark_and_move などを削除しています。

[0118f5425e] "dependabot[bot]" 2024-04-15 15:24:03 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルドのためのプロジェクトで rb-sys パッケージのバージョンを更新しています。

[fc8099aea9] "dependabot[bot]" 2024-04-15 15:39:29 UTC

rubygems の Rust 製拡張ライブラリを含む gem のビルドのためのプロジェクトで rb-sys パッケージのバージョンを更新しています。

[4fcf007e85] Kouhei Yanagita 2024-04-12 06:18:10 UTC

NEWS に Range#size が #each が TypeError を返すような開始/終了の要素の時に TypeError を返すようにした変更について追記しています。 [Misc #18984]

[c49742739e] "dependabot[bot]" 2024-04-16 02:21:39 UTC

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

[f8f542bd9b] Peter Zhu 2024-02-22 20:35:59 UTC

拡張ライブラリ pathname の extconf.rb で rb_file_s_birthtime() という C API の存在チェックをしていたのがもうサポート対象のバージョンでは全て存在するのでチェックをやめています。

[53a8ad151b] Nobuyoshi Nakada 2024-04-16 06:09:56 UTC

defs/gmake.mk で make commit 時の事前処理の依存関係の名前の ":" をエスケープするようにしています。

[29110fe18d] Nobuyoshi Nakada 2024-04-16 07:13:19 UTC

Enumerator.product が返す Enumerator が引数の一部の Enumerator が size=0 であるため 0 であることが自明な場合はすぐに 0 を返すようにしています。 [ruby-core:117056] [Bug #20325]

[54d472d91f] Nobuyoshi Nakada 2021-01-24 09:17:28 UTC

rubygems のテストの setup メソッドで一時ディレクトリを設定する際に終端のディレクトリの名前を環境変数 GEM_TEST_TMPDIR の指定があったらその名前を利用するようにしています。よくわかりませんが symbolic link がらみでテスト失敗するケースがあったとのこと。

[639449fe8d] Mari Imaizumi 2024-04-16 11:58:46 UTC

標準添付ライブラリ reline の Reline::LineEditor にキーバインディングのモードを変更するためのメソッド #emacs_editing_mode と #vi_editing_mode を追加しています。 https://github.com/ruby/reline/pull/681