ruby-trunk-changes 2020-12-15

今日は rubygems, bundler, bigdecimal, json などの標準添付ライブラリのバージョン更新やメソッド探索まわりの Ractor 間競合の不具合修正などがありました。

[b3e99b3676] Yusuke Endoh 2020-12-14 14:53:50 UTC

NEWS.md のインデントの修正のみ。といっても rdoc でのリストのネストのために決まったスペースの数が必要なので整形のためのインデント修正だそうです。

[6b3a808b84] Nobuyoshi Nakada 2020-12-14 14:57:13 UTC

さらに NEWS.md のマークアップの修正のためのインデントの追加。

[7ca82ff888] git 2020-12-14 15:05:38 UTC

version.h の日付更新

[f7850bbea8] Nobuyoshi Nakada 2020-12-14 14:55:44 UTC

NEWS の pattern match についての記述に Find が標準添付ライブラリ find のモジュールへのリンクにならないようにハイフンで繋げるようにしています。

[c183288754] Benoit Daloze 2020-12-14 19:11:15 UTC

Random::DEFAULT はひとつのインスタンスを Ractor 間で共有できないため 2db2fb9f6c742d5bd0019ccd11c7a375e1b12c0b で Ractor 毎に処理するように Random クラスそのものの別名になっていて非推奨なので rdoc 用コメントから記述を消すようにしています。 [ruby-core:101124] [Feature #17351]

[f5c89c1660] Benoit Daloze 2020-12-14 19:24:18 UTC

さらに Random::DEFAULT を参照した時に deprecation warning が出るようにしています。 [ruby-core:101124] [Feature #17351]

[25a48b703e] Alan Wu 2020-12-14 22:56:42 UTC

common.mk の依存関係を更新しています。

[a5fd651575] Alan Wu 2020-12-14 23:26:32 UTC

拡張ライブラリ fiddle の Fiddle::Function#call の rdoc 用コメントの thread safety についての記述の記法をちょっと変更して、マークアップも修正しています。

[78fad67ce6] Nobuyoshi Nakada 2020-12-14 12:30:16 UTC

NEWS.md から他のファイルから生成されたドキュメントへのリンクが正しく生成されるように修正しています。

[928cb6eeb6] Nobuyoshi Nakada 2020-12-14 23:38:36 UTC

さらに NEWS.d を rdoc で整形した時にリンクのラベルを指定するようにしています。

[befa24488c] Alan Wu 2020-12-15 01:01:01 UTC

Exception クラスの rdoc 用コメントに Document-class タグを追加して正しくドキュメント生成するようにしています。

[c59b9a8c0c] Alan Wu 2020-12-15 01:01:55 UTC

Integer#bit_length の rdoc 用コメントを C のソースコードから integer.rb の ruby 実装のほうのメソッドの前に移動しています。

[7898f4243f] Nobuyoshi Nakada 2020-12-15 00:37:11 UTC

拡張ライブラリ ripper で Ripper::Lexer._push_token の戻り値が間違ってた? のを修正しています。

[2fa9f3c032] Hiroshi SHIBATA 2020-12-14 23:32:54 UTC

rubygems と bundler を upstream からマージしています。 それぞれ 3.2.1 と 2.2.1 がリリースされるのでそれに同期しているみたいです。

[40b7358e93] John Hawthorn 2020-12-15 01:34:31 UTC

演算子つき代入の ||= 演算子の左辺がインスタンス変数の場合に、未初期化のインスタンス変数の参照の警告をやめたので必要なら defined 命令を作るようにしてたのが不要になるということで削るようにしています。命令列にも影響あるのか(変えなくても挙動は変わらないとは思うので主にパフォーマンスが目的だと思いますが)。

[aa6287cd26] Koichi Sasada 2020-12-14 20:40:38 UTC

メソッド探索の rb_vm_search_method_slowpath() の引数に struct rb_call_data を渡していたのが Ractor 間の競合の問題があったそうでかわりに struct rb_callinfo を直接渡すようにしています。うろおぼえだけど call data はメソッドの呼び元ごとに固有の情報だったかな。また rb_vm_search_method_slowpath() の戻り値で struct rb_callcache を返すようにして処理を一段呼び元に引き上げるようにしているようです。

[72a73691bd] Koichi Sasada 2020-12-15 03:10:35 UTC

メソッド探索まわりの debug counters の項目追加や vm_search_invokeblock() で VM_CC_ON_STACK() マクロを使うのをやめてたり(なんでだろう)、関数を分割したりといったリファクタリング(?)。

[9d85ed6cbb] Takashi Kokubun 2020-12-15 05:06:53 UTC

tool/ruby_vm/views/mjit_compile.inc.erb の生成する case 文で分岐ごとに {} のかっこを生成するのを分岐の外側に移動してテンプレートをシンプルにしています。

[a86c147579] Kenta Murata 2020-12-15 06:17:15 UTC

拡張ライブラリ bigdecimal の 2.0.0 を upstream からマージしています。BigDecimal#round の不具合修正などが含まれているようです。 https://github.com/ruby/ruby/pull/3905 [ruby-core:77333] [Bug #12780]

[ce6fafb8cc] Nobuyoshi Nakada 2020-12-15 06:15:23 UTC

カテゴリつきの警告を出力する rb_warn_deprecated() rb_warning_category_from_name() などの C API で利用するカテゴリを指定する Symbol に対応する ID を static 変数に保持するようにして都度 rb_intern() を呼び出すのをやめるようにしています。

[5463eff5f6] Takashi Kokubun 2020-12-15 07:33:49 UTC

mjit_worker.c の compile_compact_jit_code() で JIT unit のリストをループする時に for のリストを辿る部分のみ排他処理するようにしてたのをあきらめてループ全体を排他処理するようにしてましたが、ここでも ccan/list の list_for_each_safe() マクロを利用するようにして critical section を for のリストを辿る部分のみにするように戻しています。

[ad3e3bd65a] Hiroshi SHIBATA 2020-12-15 10:54:58 UTC

拡張ライブラリ json の gemspec ファイルのバージョンを 2.4.0 に更新しています。

[151ff609e5] Hiroshi SHIBATA 2020-12-15 11:05:32 UTC

NEWS の標準添付ライブラリ(bigdecimal, json, psych, rubygems, bundler) のバージョンの更新についての記述を最新版に追随させています。