ruby-trunk-changes 2023-11-24

今日は主に Object Shapes 関連の不具合修正、YJIT の不具合修正、標準添付ライブラリ resolv の機能追加などがありました。

[7f7613c2c7] Peter Zhu 2023-11-22 15:04:57 UTC

Object Shapes で T_OBJECT/T_CLASS/T_MODULE 以外のオブジェクトを too complex でインスタンス変数を st_table 管理に移行させる処理の途中で GC が発生して compaction が起きると異常終了する可能性があったのでその修正。

[a31cdc6ee9] Peter Zhu 2023-11-22 15:06:00 UTC

Object Shapes のテストに 7f7613c2c7550d3b008fc132821ccf305f119cac に対応するテストを追加。 GC.stress=true と GC.auto_compact=true をセットして常に GCGC.compact が走るようにしています。

[95369ac0a3] Takashi Kokubun 2023-11-23 15:50:42 UTC

YJIT の x86_64 版での CodeBlock.jmp_ptr_bytes() で返すサイズを修正しています。 https://github.com/ruby/ruby/pull/9016

[440b59db10] Takashi Kokubun 2023-11-23 15:53:12 UTC

YJIT の Rust 実装の修正ですがよくわからず。 pull request をみると異常終了することがあったのを修正しているみたいです。 https://github.com/ruby/ruby/pull/9015

[ecdb112881] Alan Wu 2023-11-23 16:45:02 UTC

デバッガでのオブジェクトの情報のダンプのための関数 rb_raw_obj_info_buitin_type() で T_OBJECT 型のオブジェクトで Object Shapes による管理をあきらめて st_table でインスタンス変数を管理している状態の時の表示対応を追加しています。

[11d7c75fb3] tomoya ishida 2023-11-23 17:33:08 UTC

irb の例外処理で例外処理自体も Exception を rescue して例外処理中の例外によるエラー終了を避けるようにしています。 https://github.com/ruby/irb/pull/780

[a54c98a29f] Eric Mueller 2023-11-16 03:45:39 UTC

bundler の outdated サブコマンドの実装でメソッドを切り出すリファクタリング

[c424d15cb9] Eric Mueller 2023-11-16 04:11:12 UTC

bundler の outdated サブコマンドに --json というオプションを追加しています。出力を JSON 形式で出すというものみたいです。

[055a4f09ca] Eric Mueller 2023-11-19 13:06:40 UTC

c424d15cb95f0f5a0db711974f7c76928c9633b1 の続きで bundle outdated の出力時に require "json" を追加しています。

[315240e73b] Peter Zhu 2023-11-22 15:00:01 UTC

Enumerator の実装に RGenGC 用の Write Barrier を追加して WB-protected なクラスとしてマークしています。

[f05d586cc9] Maxime Chevalier-Boisvert 2023-11-23 20:33:43 UTC

YJIT の --yjit-stats で出力する統計情報のカウンタに num_send_cfunc と num_send_cfunc_inline というのを追加して num_send_known_cfunc から分離しています。 https://github.com/ruby/ruby/pull/9022

[22de08811e] Alan Wu 2023-11-23 23:26:58 UTC

gc.c の gc_update_tbl_refs() という関数を gc_ref_update_table_values_only() と改名しています。コミットログをみると Object Shapes の too complex の時の mark 処理の修正をしているってあるような気がするけどそのような変更は含まれていないような。

[1ffaff884e] Alan Wu 2023-11-23 23:37:07 UTC

Object Shapes で too complex になっているオブジェクトのインスタンス変数の管理をしている Hash を GC.compact で移動可能にするようにしています。

[608a518b42] Kasumi Hanazuki 2023-11-24 01:35:26 UTC

標準添付ライブラリ resolv に SVCB と HTTPS という RFC 9460 で追加されるレコードの仕様のサポートを追加しています。 https://github.com/ruby/resolv/pull/32

[e3b485213d] Kasumi Hanazuki 2023-11-24 01:42:02 UTC

標準添付ライブラリ resolv に RFC 9461 で追加されている dohpath SvcParam という仕様のサポートを追加しています。 https://github.com/ruby/resolv/pull/33

[02cc9d48f1] KJ Tsanaktsidis 2023-11-24 04:06:20 UTC

標準添付ライブラリ resolv で候補のアドレスへの UDPSocket を開く時に捕捉する例外に Errno::EPROTONOSUPPORT を追加しています。 [ruby-core:115060] [Bug #19928]

[12f4e9655e] Burdette Lamar 2023-11-24 04:39:24 UTC

doc/contributing/documentation_guide.md に rdoc でのリンクのマークアップの書きかたについてのドキュメントを追加しています。

[f792b55b21] Mau Magnaguagno 2023-11-21 03:52:54 UTC

rubygems の実装で String#split + #each を使ってたのを String#each_line を使って不要な配列の生成を抑制するようにしています。

[87ddfb33a0] Mau Magnaguagno 2023-11-21 03:59:30 UTC

rubygemsf792b55b2138c75bfc4efe1d15af5e924f4349bc の変更でブロックの do が抜け落ちてたので修正しています。

[24e0b185ab] Jun Aruga 2023-11-23 23:06:14 UTC

Travis-CI の設定で s390x-linux でのビルドを復活させています。まだ復旧したかは確認中みたいです。

[9d7ac1ba1c] Nobuyoshi Nakada 2023-11-13 08:45:12 UTC

doc/timezones.rdoc に Time.new でタイムゾーンを指定するためのオブジェクトとして受付けるクラスの例について追記しています。

[045e74d8e4] Nobuyoshi Nakada 2023-11-24 08:28:52 UTC

Time.new の rdoc 用コメントに call-seq タグを追加しています。

[2ecc372a5d] Nobuyoshi Nakada 2023-11-24 10:16:18 UTC

Time.new の rdoc 用コメントにキーワード引数 in と文字列で渡された引数内のタイムゾーンの指定が両方あった時の優先順位について追記しています。

[0c0875fe60] Nobuyoshi Nakada 2023-11-24 10:37:54 UTC

doc/timezones.rdoc に Time.new などが find_timezone というクラスメソッドが定義されていたらそれを呼び出すという挙動について追記しています。

[1cba1b3992] Nobuyoshi Nakada 2023-11-24 11:00:13 UTC

784fdecc4c9f6ba9a8fc872518872ed6bdbc6670 の arm64 版 Windows サポートでの configure.ac の変更で windres というコマンドの実行を Windows 環境の時だけにするように修正しています。