ruby-trunk-changes 2021-10-02

今日は multi thread で正規表現マッチ利用時にグループ化した部分マッチの capture に失敗することがある不具合の修正や Marshal.load が compare_by_identity のフラグを復元していなかった不具合の修正などがありました。

[c7414f517f] Nobuyoshi Nakada 2021-10-01 02:32:39 UTC

tool/m4/ruby_define_if.m4 で confdefs.h を生成する時に cat コマンドを利用していたのを printf(1) コマンドを利用するようにしています。

[0ad3ed5e0e] Nobuyoshi Nakada 2021-10-01 11:25:30 UTC

tool/m4/ruby_universal_arch.m4 に RUBY_UNIVERSAL_CHECK_HEADER というマクロの定義を追加して configure.ac で CPU アーキテクチャx86_64 か i386 の時だけ x86intrin.h ヘッダの存在チェックをするようにしています。

[9b04909a85] Jeremy Evans 2021-09-30 19:35:27 UTC

vm_insnhelper.c の check_match() と vm_opt_newarray_max()、vm_opt_newarray_min() などの最適化命令用の関数から Refinements を意識しながらメソッド呼び出しする処理を vm_eval.c の rb_vm_call_with_refinements() という関数に括り出して共有するようにリファクタリングしています。

[e8d6076fbd] Jeremy Evans 2021-09-30 19:36:00 UTC

vm_method.c の callable_method_entry_refeinements() という関数名の typo を修正して callable_method_entry_refinements() に変更しています。

[eaeb0a008b] git 2021-10-01 17:13:05 UTC

version.h の日付更新

[27d9935d51] Burdette Lamar 2021-10-01 18:44:28 UTC

Enumerable のいくつかのメソッドの rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/4918

[8c10fd2583] Burdette Lamar 2021-10-01 22:51:39 UTC

Enumerable のいくつかのメソッドの rdoc 用コメントの手直し。 https://github.com/ruby/ruby/pull/4922

[601c67e42c] Nobuyoshi Nakada 2021-10-01 13:03:48 UTC

cygwin/GNUmakefile.in に MinGW での警告抑制のため miniruby のリンク時に -Wno-maybe-uninitialized オプションを追加するようにしています。

[806e7947fe] Nobuyoshi Nakada 2021-10-01 23:40:37 UTC

id をそのままハッシュ値として使う ident_hash をキャパシティを指定して作る rb_ident_hash_new_with_size() という関数を追加しています。

[d087214658] Nobuyoshi Nakada 2021-09-22 16:36:27 UTC

Hash#compare_by_identity が呼ばれた Hash を Marshal.dump したものを Marshal.load するとこのフラグが復元されないという不具合を修正しています。 806e7947fec775ce27aa783ee00dbd8f52685db8 で追加した rb_ident_hash_new_with_size() を利用しています。 [ruby-core:105282] [Bug #18171]

[abc0304cb2] Jeremy Evans 2021-08-11 20:50:59 UTC

正規表現Regexp#match を複数の Thread で使うと正規表現内のグループ化に対応するマッチ部分の capture が MatchedData に含まれなくなる場合があるという不具合を修正しています。これは結構重要な不具合ですがテストをみるに再現条件が限定的でなかなか発覚してなかったみたいですね。 [ruby-core:101901] [Bug #17507]

[b8327fb8b1] manga_osyo 2021-10-01 23:44:22 UTC

標準添付ライブラリ reline の Reline::Key.match? メソッドを if 文のかわりに case 文を使うようにリファクタリングして、テストも追加しています。