ruby-trunk-changes 2020-02-29

今日は 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 のサポート有無を利用していたのを、専用の拡張ライブラリを用いたテストのほうに移植しています。 Linuxglibc で 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 以降に更新しています。

[f5b7896921] Kazuhiro NISHIYAMA 2020-02-29 06:14:01 UTC

irb のテストのテストメソッド名の typo 修正。

[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