ruby-trunk-changes 2021-12-08

今日は ObjectSpace::WeakMap の不具合修正や YJIT のメモリ不足時の対応の修正などがありました。

[d6c5a30cfd] Nobuyoshi Nakada 2021-12-07 10:33:03 UTC

ObjectSpace::WeakMap の inspect メソッドで既に解放されているオブジェクトを触ろうとしてしまって SEGV することがある不具合を修正しています。 [ruby-core:106528] [Bug #18392]

[a2d4e1cda6] Nobuyoshi Nakada 2021-12-07 10:44:02 UTC

d6c5a30cfdf658280338dbb8c8b17fab3190b928 の続きでさらに gc.c の wmap_live_p() の判定方法を修正して、まず VALUE の値が ObjectSpace のヒープ内のポインタになってるかをチェックするようにしています。 [ruby-core:106528] [Bug #18392]

[bb3f17bd98] Nobuyoshi Nakada 2021-12-07 13:00:23 UTC

NEWS.md のインデント修正のみ。

[26303c31f0] David Rodríguez 2021-11-13 10:18:54 UTC

bundler の git コマンド実行時のオプションと通常の引数のあいだを "--" で区切るようにしています。また一部オプションをうしろにつけてたのを前のほうに移動しています。

[1b12ebb94e] Simon Fish 2021-10-26 16:50:55 UTC

bundler の bundle add サブコマンドに -r/--require というオプションを追加して Gemfile に追加する時の require オプションに指定するパスが渡せるようにしています。

[e51d0d2853] git 2021-12-07 16:49:36 UTC

version.h の日付更新

[286c07f0dc] Alan Wu 2021-12-07 20:37:32 UTC

yjit_codegen.c の guard_self_is_heap() という関数の宣言と呼び出しを削除しています。なにかチェックして JIT をキャンセルするコードだけど不要になったっぽい?

[6beb05c2ad] Alan Wu 2021-12-07 19:27:49 UTC

d0772632bf2ff15f73c0d3601d958670a5c77855 で YJIT でメモリ領域の確保に失敗した時に rb_bug() で死なないようにした時に副作用を完全に復旧できていなかったので追加で解放処理を追加しています。

[f0ef9ffed1] David Rodríguez 2021-12-07 18:10:46 UTC

bundler の Gemfile に git リポジトリを書く時のいくつかの deprecation 警告を削除しています。

[76cad13759] David Rodríguez 2021-12-07 18:23:22 UTC

bundler の bundle init で生成する Gemfile や gems.rb で git_source を出力しないようにしています。

[852ea1e893] David Rodríguez 2021-12-07 18:25:18 UTC

bundler の bundle init で生成する gems.rb の不要なコメントを削除。

[4a3e7984bf] John Hawthorn 2021-12-07 23:18:11 UTC

メソッド引数に配列を *ary のように splat して展開する時に不要な duparray 命令を省く peephole optimization を追加しています。 https://github.com/ruby/ruby/pull/5211

[af6e088357] Kazuhiro NISHIYAMA 2021-12-08 04:26:53 UTC

rubyspec の socket のテストで /proc/sys/net/ipv4/ip_unprivileged_port_start という procfs の内容を調べて 0 だったらテストが通らないのでスキップするようにしています。

[454b4da763] Nobuyoshi Nakada 2021-12-08 08:59:16 UTC

Integer.try_convert の rdoc 用コメントを追加しています。

[3021c3cedc] Nobuyoshi Nakada 2021-12-08 09:02:02 UTC

object.c の to_xxx という変換系メソッドのメソッド名と組み込みの ID との対応を保持する conv_method_names という変数に to_f の対応を追加しています。これはなんか仕様に影響するんだろうか。ただの最適化かな。既存のところは rb_check_convert_type_with_id() で to_f を明示しているから今後はそれを省略できるようになるということかな。