今日は MJIT 有効時の Fiber の利用で SEGV する可能性があった不具合修正やテストの実行順序依存の修正などがありました。
[07f27383b7] Nobuyoshi Nakada 2020-02-28 06:38:14 UTC
parse.y の new_args_tail() の引数名の改名。
[72c02aa4b7] Nobuyoshi Nakada 2020-02-28 12:15:37 UTC
NotImplementedError のテスト? にプラットフォーム毎の File.lchmod のサポート有無を利用していたのを、専用の拡張ライブラリを用いたテストのほうに移植しています。 Linux の glibc で lchmod がサポートされるようになったとかで。 [ruby-core:97302] [Bug #16662]
[f7be85a2b7] Koichi Sasada 2020-02-28 14:28:24 UTC
拡張ライブラリ readline のテスト test_readline の先頭で Readline::HISTORY.clear を追加したり Readline.completer_quote_characters= や Readline.completer_word_break_characters= に nil を渡せないので、設定前の値(復旧のための取っておいた値)が nil だったらテストを skip するようにしています。omit じゃなくていいのかな。
[cb681c20c0] Koichi Sasada 2020-02-28 15:43:41 UTC
標準添付ライブラリ webrick のテスト test_filehandler で :DocumentRootOptions オプションから :NondisclosureName の指定を削除しておくようにしています。テストの実行順に依存していたようです。
[a8687f3ef8] git 2020-02-28 15:49:01 UTC
version.h の日付更新
[5d21050182] Benoit Daloze 2020-02-28 18:07:14 UTC
spec/mspec を upstream からマージ。
[a0f5ff4c3c] Benoit Daloze 2020-02-28 18:07:17 UTC
ruby/spec の upstream からマージ。
[02a3e27608] "dependabot[bot]" 2020-02-28 18:13:28 UTC
ruby/mspec の依存している rake のバージョンを 12.3 以上に更新。 https://github.com/ruby/ruby/pull/2942
[b621c9abd1] aycabta 2020-02-28 18:24:12 UTC
f7be85a2b7b2f1e3485c6da8fb990ac47059ae12 の追加修正。 readline のテストで Readline.completion_append_character = nil での初期化を追加。これも実行順に依存しないようにするためかな。
[b3983c68dd] Koichi Sasada 2020-02-28 19:20:13 UTC
拡張ライブラリ objspace の ObjectSpace.internal_class_of や ObjectSpace.internal_super_of で struct RBasic::klass が 0 になっているいわゆる hidden object を直接返さないようにして ObjectSpace::InternalObjectWrapper で wrap するようにしています。
[99ff4d61ec] Jeremy Evans 2020-02-29 00:12:13 UTC
NEWS にキーワード引数完全分離や Kernel#clone, Kernel#eval, Module#include、$SAFE の C API 廃止などの変更を追記しています。
[0333f3c03c] Nobuyoshi Nakada 2020-02-29 03:20:49 UTC
99ff4d61ec5280010a4c285763d3639028f877ca で追記された NEWS のチケット参照に対応した footnote を追記しています。
[2b85591943] Nobuyoshi Nakada 2020-02-29 04:24:29 UTC
99ff4d61ec5280010a4c285763d3639028f877ca の NEWS の追記ぶんのマークアップ修正。
[7da11ed738] Takashi Kokubun 2020-02-29 05:04:53 UTC
bigdecimal, ipaddr, logger など default gem になってるライブラリの gemspec ファイルの rake への依存関係を 12.3.3 以降に更新しています。
[5e897227ff] Nobuyoshi Nakada 2020-02-29 06:41:36 UTC
String の casecmp や upcase/downcase のベンチマークの追加。
[a8dcab7233] Takashi Kokubun 2020-02-29 07:20:44 UTC
コマンドラインオプション --jit-wait つきで実行した時に MJIT のコンパイルしたコードのキャッシュサイズが不足すると無限ループに陥る可能性があったみたいで、足りなかった時に mjit_opts.max_cache_size を自動的に増やすようにしています。 --jit-wait はテストでのみ使うので良いだろってことみたいです。
[adcf0316d1] Takashi Kokubun 2020-02-29 07:58:33 UTC
MJIT で Fiber を使っている時に root_fiber から参照されているメソッドの JIT コンパイルしたコードがうまく保持されてなくて消されてしまい SEGV することがあったのを修正しています。 cont_init() でそのための処理をしていたんだけどこれは子 Fiber のぶんしか呼ばれないので rb_fiber_init_mjit_cont() という関数も追加して、これは mjit_init() から呼ばれていますね。てことはメインスレッドの root_fiber の時だけ問題で Thread を新規に作成した時は大丈夫だったんだろうか。 https://github.com/ruby/ruby/pull/2939