今日は主に finalizer の処理の最適化や String#grapheme_clusters の不具合修正、Refinements で 2つ以上の using が効かない不具合の修正などがありました。
[40c9a3dad5] Benoit Daloze 2024-02-26 13:45:28 UTC
spec/mspec に upstream の最新版をマージしています。
[815db5c028] Benoit Daloze 2024-02-26 13:45:30 UTC
spec/ruby に upstream の最新版をマージしています。
[83e676e5f9] Peter Zhu 2024-02-23 18:50:46 UTC
ObjectSpace.define_finalizer で finalizer が設定されているオブジェクトは struct RBasic::flags にビットフラグの FL_FINALIZE が立てられるので、オブジェクトの回収時の finalizer 実行の処理時にこのビットフラグをチェックして不要な時に st_table の検索をスキップするように多少最適化しています。
[27e3e44390] Peter Zhu 2024-02-26 16:38:44 UTC
83e676e5f9049168047c36d1bbd75ac342e6fed6 の関連で struct RBasic::flags のビットフラグ FL_SEEN_OBJ_ID と FL_FINALIZE を混ぜたものを ZOMBIE_OBJ_KEPT_FLAGS という定数マクロに切り出すリファクタリング……かと思いましたが verify_internal_consistency_i() でチェック時にもこのマクロを利用するようにして GC_ASSERT() でひっかかるのを修正しているようです。
[9c5a91e320] "dependabot[bot]" 2024-02-26 15:52:19 UTC
rubygems の Rust 製拡張ライブラリを含む gem のテストのためのプロジェクトで rb-sys パッケージのバージョンを更新しています。
[f54122368c] "dependabot[bot]" 2024-02-26 15:11:05 UTC
rubygems の Rust 製拡張ライブラリを含む gem のテストのためのプロジェクトで rb-sys パッケージのバージョンを更新しています。
[c9b6cd4223] Peter Zhu 2024-02-26 16:13:23 UTC
gc.c から未使用になった関数 rb_objspace_each_objects_without_setup() を削除しています。
[b8572c3f16] John Hawthorn 2024-02-26 20:09:34 UTC
doc/contributing/building_ruby.md の BASERUBY の要求バージョンの記述を 3.0 以降に更新しています。
[d2da774f87] Hiroshi SHIBATA 2024-01-31 04:49:31 UTC
rubygems に vendoring している標準添付ライブラリの default gems のファイル名を vendored_ という prefix をつけるようにしています。ファイル名のみでクラス名などはそのままです。
[d220d273aa] Hiroshi SHIBATA 2024-01-31 05:08:33 UTC
d2da774f870ecf51f465dd4081a7349812efaac4 での require のファイル名変更追随漏れを修正。
[8b22198ee9] Hiroshi SHIBATA 2024-02-07 08:56:37 UTC
d2da774f870ecf51f465dd4081a7349812efaac4 の追随で rubygems に vendoring されている molinillo から利用する tsort を vendoring されているバージョンの vendored_ の prefix つきのファイルを require するように変更しています。
[c342726568] Hiroshi SHIBATA 2024-02-07 09:46:17 UTC
bundler から rubygems の vendoring されている net/http や timeout を利用する時に古い rubygems と一緒に使った時のために vendoring_ の prefix つきで require できなかった時の fallback 処理を追加しています。
[81dded1044] Hiroshi SHIBATA 2024-02-26 10:43:50 UTC
rubygems に vendoring されている net-http と timeout で同じファイルの重複 load を避けるための条件分岐を追加しています。
[7538703d1b] Peter Zhu 2024-02-26 16:20:59 UTC
gc.c の rb_objspace_data_type_memsize() という関数を static 関数に変更しています。
[78ae6dbb11] Peter Zhu 2024-02-26 16:21:09 UTC
gc.c の rb_objspace_marked_object_p() という関数を削除して gc_move() から呼んでたところは RVALUE_MARKED() で代替するようにしています。
[89f0c0ceb5] ydah 2024-02-22 10:48:41 UTC
parse.y で省略可能な改行に opt_nl というルールを利用していたのを '\n'? という記法を利用するようにしています。 Lrama の拡張機能かな?
[54a5b82944] Kenta Murata 2024-02-27 00:37:03 UTC
Complex#to_r で虚数部が浮動小数点数(Float)の時は 0.0 であっても例外発生させていたのを 0.0 ならば無視して実数部のみを処理して Rational に変換するように対応しています。 https://github.com/ruby/ruby/pull/9581 [ruby-core:38886] [Bug #5179]
[cbbb98ba5e] Nobuyoshi Nakada 2024-02-27 01:18:06 UTC
標準添付ライブラリ tempfile の gemspec ファイルで spec.files を取得するために git ls-files を実行する IO.popen に exception: false を渡して git コマンドが実行できない環境でもエラーにはならないようにしています。
[316d1e1014] Nobuyoshi Nakada 2024-02-27 01:17:25 UTC
cbbb98ba5e856c4413dcb27460b32be8865683ab と同様に標準添付ライブラリ tmpdir の gemspec ファイルで spec.files を取得するために git ls-files を実行する IO.popen に exception: false を渡して git コマンドが実行できない環境でもエラーにはならないようにしています。
[1745dd2691] Nobuyoshi Nakada 2024-02-27 02:47:50 UTC
.git-blame-ignore-revs に git blame で無視する commit として a0f7de814ae5c299d6ce99bed5fb308a05d50ba0 と d4e24021d39e1f80f0055b55d91f8d5f22e15084 を追加しています。 Happy Eyeballs の追加を誤って revert してしまったやつですね。
[bfb2dc8acf] Josef Šimánek 2021-10-25 00:47:04 UTC
rubygems で spec.required_ruby_version が未設定だと警告を出すようにしているようです。
[7b56353d97] Fable Phippen 2024-02-26 19:24:22 UTC
String#grapheme_clusters が不正なバイト列の文字列に対して呼ばれた時の不具合のテストを追加しています。次で修正されるもののテストを先に入れているみたいです。 [ruby-core:116960] [Bug #20305]
[3a04ea2d03] Nobuyoshi Nakada 2024-02-27 03:20:35 UTC
String#grapheme_clusters で Encoding に対して不正なバイト列を持つ文字列の不具合修正ですが、修正箇所としては regexec.c の正規表現の処理のところで必要に応じて onigenc_mbclen_approximate() に fallback するようにしています。 [ruby-core:116960] [Bug #20305]
[d50f9ca2dd] Shugo Maeda 2024-02-27 05:19:15 UTC
Refinements で同じ Module に対して複数の Module#using でメソッドの上書きを適用することができなくなっていた不具合を修正しています。 [ruby-core:116946] [Bug #20302]
[d7730d3a0b] Nobuyoshi Nakada 2024-02-27 10:40:39 UTC
parse.y の rb_parser_warn_duplicate_keys() 内の変数 literal_type に Universal Parser 用でない時だけ static const 修飾子を追加するようにしています。