今日は主にデバッグ用の検証ビルド時チェック強化や Struct.new で定数を追加して remove_const で削除した時のメモリリークの修正などがありました。
[1a6a7c699c] Soutaro Matsumoto 2024-02-29 12:32:16 UTC
gems/bundled_gems の rbs のテストに使う commit hash の指定を追加しています。 https://github.com/ruby/ruby/pull/10121
[d5bca0668c] Peter Zhu 2024-02-29 14:32:10 UTC
finalizer の設定されているオブジェクトの struct RBasic::flags の FL_FINALIZE ビットフラグをクリアするのを run_finalizer() 実行前に変更しています。 GC.verify_internal_consistency で FL_FINALIZE フラグのチェックもするようになったので finalizer 実行中に GC が発生して別スレッドに処理が切り替わった時に検出されないようにするためだと思われます。
[950c60623b] Peter Zhu 2024-02-29 14:36:01 UTC
d5bca0668c6006e0e155d6d293ec3d9b9b2c386b の続きで finalizer の実行後前に st_table からのエントリ削除をしておくようにしています。やはり一貫性チェックの誤検出対応のため。
[8a918b456c] Peter Zhu 2024-02-28 21:29:22 UTC
gc.c で object space の heap 内の slot をループする処理を gc_each_object() という関数に切り出すリファクタリング。処理がコールバック関数経由になるのはパフォーマンスには影響しないのかな。
[4c0f0b90a4] Peter Zhu 2024-02-29 16:07:53 UTC
gc.c の rb_gc_copy_finalizer() という関数でも finalizer の設定されているオブジェクトの struct RBasic::flags の FL_FINALIZE フラグが立っているのに finalizer_table という st_table にエントリがない時に rb_bug() で異常終了させるようにしています。
[5891c70b38] Takashi Kokubun 2024-02-29 16:08:57 UTC
YJIT で VM 命令の putself の最適化。 https://github.com/ruby/ruby/pull/10137
[f9d5c604c8] Kevin Newton 2024-02-29 16:01:07 UTC
prism 用のコマンドラインオプションの -e の対応を追加しているようです。
[57f014b2fa] Yuta Saito 2024-02-05 17:38:05 UTC
enc/Makefile.in および lib/mkmf.rb が生成する拡張ライブラリ用 Makefile で LD 変数を rbconfig.rb の設定を伝播させるようにしています。本体のリンク時と異なるリンカを enc や拡張ライブラリのリンク時に使ってしまい特にクロスコンパイル時におかしくなってしまうみたいです。
[6e2880b388] Yuta Saito 2023-12-18 17:59:52 UTC
WASI 環境で動的リンクがサポートされたようなので configure で LDSHARED 変数の設定を追加しています。
[6665ec26db] Peter Zhu 2024-02-29 16:27:48 UTC
gc.c の gc_mark_stack_values() で mark する前に is_markable_object() を呼んでいたのが冗長だったようで削除しています。
[3d61477900] Peter Zhu 2024-02-29 16:29:18 UTC
gc.c の gc_mark_stack_values() という static 関数を削除して唯一の呼び元に処理を展開しています。
[1a588922ae] Takashi Kokubun 2024-02-29 18:30:38 UTC
VM_CHECK_MODE に正の数を指定してデバッグ用にビルドされた時に VM のスタック操作時に execution context と stack pointer のチェックをする関数 rb_vm_check_canary() で命令の名前を得る処理を後に移動しています。異常が検知されたけど詳しい状況がわからないので iseq が NULL であることを確認するためにそれとわかる別の処理を先に実行させるというデバッグのためみたいです。
[d3ae5808bb] Peter Zhu 2024-02-29 18:37:21 UTC
gc.c から each_machine_stack_value() という static 関数を削除して唯一の呼び元に処理を展開しています。
[2508a79699] Kasumi Hanazuki 2024-02-28 06:48:40 UTC
標準添付ライブラリ resolv で DNS の CAA レコードへの対応を追加しています。 https://github.com/ruby/ruby/pull/1732 [ruby-core:83602] [Feature #14066]
[8ec9c2dd16] "dependabot[bot]" 2024-03-01 02:48:46 UTC
GitHub Actions の独自アクションの実装で使っている actions/cache アクションのバージョンを更新しています。
[b26602f828] "dependabot[bot]" 2024-03-01 02:59:12 UTC
GitHub Actions の workflows で利用している github/codeql-action のバージョンを更新しています。
[1952c799af] Hiroshi SHIBATA 2024-03-01 03:01:19 UTC
gems/bundled_gems の drb のバージョンを 2.2.1 に更新しています。
[874e9fc34d] Hiroshi SHIBATA 2024-03-01 03:02:29 UTC
rubygems の再定義する require での警告のための tool/lib/bundled_gem.rb で drb.gem の依存関係のために考慮していたテスト時の ruby2_keywords の対応を削除しています。
[04a1b8739b] "dependabot[bot]" 2024-03-01 02:59:18 UTC
GitHub Actions の workflows で利用している actions/cache アクションのバージョンを更新しています。
[a465393cb9] git 2024-03-01 03:33:42 UTC
NEWS の bundled gems のバージョンリストの drb のバージョンを更新しています。
[452d51ffe1] Nobuyoshi Nakada 2024-02-29 17:24:00 UTC
テストでファイル出力するのに open でファイルを開いて書き込んでたのを File.write を使うようにリファクタリングしています。
[1a9a20cebd] Nobuyoshi Nakada 2024-02-29 17:24:57 UTC
io.c の rb_sys_fail_on_write() をマクロで定義していたのを static 関数として定義しなおしています。
[5baee82c76] Nobuyoshi Nakada 2024-02-29 17:27:56 UTC
Process モジュールの rdoc 用コメントにコマンド名がファイルパスじゃなかった時のパス探索や shell 利用について追記しています。
[9b75e5f085] Nobuyoshi Nakada 2024-02-29 17:34:39 UTC
rubyspec に Kernel#system で shell 経由する時のテストを追加しています。
[5d76fe6b2a] Nobuyoshi Nakada 2024-02-29 16:24:05 UTC
標準添付ライブラリ optparse で --help オプションでヘルプメッセージを出力する時に環境変数 RUBY_PAGER か PAGER でページャーコマンド指定があって出力先が端末の場合そのコマンドを使って出力を閲覧するようにしています。
[e626da82ea] Jean Boussier 2024-02-29 12:17:22 UTC
Struct.new で大文字で始まる名前を渡して定数を定義した場合 GC mark 用の root に登録されてしまいメモリリークのような挙動をしていたのを修正しています。 [ruby-dev:52069] [Bug #20311]
[c09e5ad17d] Jean Boussier 2024-02-29 16:15:06 UTC
rb_define_module_under() や rb_define_class_under() などの C API の Doxygen 用コメントに GC で回収されない旨の記述を追加しています。
[54d26221b4] Jun Aruga 2024-03-01 11:42:00 UTC
Travis-CI の設定で ppc64le-linux と s390x-linux の環境を allow_failure に再度追加しています。Travis-CI の環境が不安定で動かないことがあるためとのこと。