ruby-trunk-changes 2024-04-26

今日は主に YJIT の最適化、正規表現の timeout 時の不具合修正、parse.y の VALUE 依存を減らす変更などがありました。

[f248e1008a] Peter Zhu 2024-04-24 16:18:48 UTC

GC の実装の共有ライブラリですり替える機構のための構造体 rb_vm_t のメンバー gc_functions_map をポインタではなく構造体 rb_gc_function_map_t を直接構造体内に埋め込むようにレイアウト変更しています。

[7ab1a608e7] Takashi Kokubun 2024-04-25 14:04:53 UTC

一度 revert された 4cc58ea0b865f2fd20f1e881ddbd4c4fab0b072c での YJIT のローカル変数の最適化の再挑戦。 rb_yjit_iseq_free() の引数の変更の差分が増えていますね。 https://github.com/ruby/ruby/pull/10607

[d292a9b98c] Daniel Colson 2024-04-25 02:20:48 UTC

正規表現のマッチ処理で timeout の指定を超えたため Regexp::TimeoutError を発生させる時に不正な free(3) の呼び出しをして異常終了する可能性があった不具合を修正しています。 https://github.com/ruby/ruby/pull/10630 [ruby-core:117697] [Bug #20453]

[3a5d9553a7] Daniel Colson 2024-04-25 14:45:16 UTC

d292a9b98ce03c76dbe13138d20b9fbf613cc02d で追加したテストで Regexp.timeout= でグローバルにタイムアウト設定していたので assert_separately を使って子プロセスを起動していたのをやめて Regexp.new で個別に timeout 指定するようにしています。 [ruby-core:117697] [Bug #20453]

[4ff249363d] tomoya ishida 2024-04-25 16:12:46 UTC

標準添付ライブラリ reline の設定ファイル inputrc での $if directive? がネストした時の不具合修正のようです。そんな機能あったんだ。 https://github.com/ruby/reline/pull/689

[444553b528] Takashi Kokubun 2024-04-25 17:38:54 UTC

GitHub Actions の YJIT を有効にするビルドでテスト時のオプションの -q を -v にしています。テストが止まってしまっているみたいでそのデバッグのためのようです。

[6f4f360fc4] Josh Nichols 2023-03-28 19:45:41 UTC

bundler で require "bundler/setup" することで bundler を有効にした時に auto_install という設定による挙動が有効になるようにしているようです

[49753cd082] Peter Zhu 2024-04-24 19:32:32 UTC

Object Shapes の Init_default_shapes() での初期化処理でメモリ確保に ruby_mimcalloc() を利用していたのを既に GC が有効になっているタイミングなので xcalloc() を利用するようにしています。

[9b5bc8e6ea] Alan Wu 2024-04-25 21:01:54 UTC

YJIT で組み込みクラス String/Array/Hash の特異クラスのメソッドが呼ばれる時に --yjit-verify-ctx オプションのチェックにひっかかっていたのを緩和しているようです。

[2244c58b00] HASUMI Hitoshi 2024-04-16 09:42:42 UTC

構造体 rb_ast_t から VALUE 型のメンバー flags を削除しています。 rb_ast_t はもう T_IMEMO 型オブジェクトの一種ではなくなったので VALUE への依存をなくしているようです。逆に ast.c の構造体 struct ASTNodeData では rb_ast_t を直接参照せずに VALUE 型のメンバー vast でオブジェクトとして wrap された値を持つようにしています。

[0907127f5a] "dependabot[bot]" 2024-04-26 02:05:59 UTC

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

[762491db82] Nobuyoshi Nakada 2024-04-26 09:08:32 UTC

doc/extension.rdoc および doc/extension.ja.rdoc に TypedData_Wrap_Struct() マクロが例外を発生しうるので解放するべきリソースがあった場合 rb_ensure() を使う必要があることを追記しています。

[500586b401] Nobuyoshi Nakada 2024-04-26 10:22:16 UTC

tool/rdoc-srcdir ファイルの mode に実行ビットが立ってたのを落としています。

[140c59c633] yui-knk 2024-04-26 09:38:12 UTC

parse.y から rb_parser_aset_script_lines_for() の呼び出しを削って ruby_parser.c に移動しています。