ruby-trunk-changes r67550 - r67563

今日は MJIT の不具合修正や標準添付ライブラリ csv のパフォーマンス改善やオプション追加などの更新がありました。

k0kubun: r67550 2019-04-14 21:25:23 +0900

r67530 の MJIT の再コンパイルするようにする変更で JIT 時に生成する C コードで cancel 時の理由によってコンパイル条件を調整する部分を compile_cancel_handler() から生成するコード内に移動してそこに goto で飛ぶようにしています。

k0kubun: r67551 2019-04-14 21:40:44 +0900

MJIT の worker に inline cache をコピーする mjit_copy_job_handler() で既に ISeq が GC されていたら処理をやめるようにしています。ここで SEGV することがあった模様。

k0kubun: r67552 2019-04-14 21:49:20 +0900

r67551 と同様 JIT しようとしたタイミングで ISeq が GC されていたというケースを print_jit_result() という関数でも考慮して GC 済みというのを表示するだけにしています。

k0kubun: r67553 2019-04-14 22:10:14 +0900

r67550 で debug counters の mjit_cancel_ivar をインクリメントするところをまちがって mjit_cancel_ivar_inline としてしまっていたので、そこじゃなくて debug counters の定義のほうを追随して修正しています。

k0kubun: r67554 2019-04-14 22:29:22 +0900

r67548 で tool/ruby_vm/views/mjit_compile.inc.erb の中で String#match? メソッドを使っていましたが、ここは BASERUBY で実行されるので古い Ruby で動かなくなってしまうので String#match を使うように修正しています。

k0kubun: r67555 2019-04-14 22:42:13 +0900

azure-pipelines.yml で r67428 で追加した TEST_BUNDLED_GEMS_ALLOW_FAILURES という環境変数で指定した bundled gem のテストのエラーは無視するようにしたのがうまくきいてないみたいなので azure-pipelines.yml の記法をちょっと修正しています。

marcandre: r67556 2019-04-14 22:47:24 +0900

標準添付ライブラリ ostruct の OpenStruct で、メソッドの引数の数が多すぎた時に NoMethodError が発生させられていましたが ArgumentError を発生させるように変更しています。 [ruby-core:90918] [Bug #15515]

k0kubun: r67557 2019-04-15 00:13:49 +0900

r67555 の追加修正。 azure-pipelines.yml で matrix のところに変数を書いてもきかないようなので make コマンド実行のところに直接書くようにしています。

svn: r67558 2019-04-15 00:13:50 +0900

version.h の日付更新。

k0kubun: r67559 2019-04-15 00:25:11 +0900

見落してましたけど r67555 で Azure Pipelines でのデバッグのために Makefile.in の test-bundled-gems-run のところに環境変数の出力が追加されてたのでそれを削除しています。

kou: r67560 2019-04-15 06:01:51 +0900

標準添付ライブラリ csv の upstream の 3.0.8 に更新しています。 3.0.5 で大きく変更があってパフォーマンス改善があったようですね。また CSV.new にオプション write_converters、write_nil_value、write_empty_value、strip などが追加されています。あれ、CSV.new のオプションっていつから keyword 引数になったんだっけ…。 https://github.com/ruby/csv/blob/master/NEWS.md#308---2019-04-11

kou: r67561 2019-04-15 11:05:03 +0900

r67560 の csv 3.0.8 のテストでファイルオープン時の binmode 指定方法が間違ってて Windows 環境で失敗してたのを修正しています。

knu: r67563 2019-04-15 19:52:34 +0900

標準添付ライブラリ net/imap で SNI 対応。なんかこれ見憶えが…と思ったら r67488 で一旦入ったのが r67499 でこれも巻き込み revert されてました。 openssl の修正の再適用と混同しててこれも入ったものと勘違いしてました。 https://github.com/ruby/ruby/pull/2077 [ruby-core:91466] [Feature #15594]