ruby-trunk-changes r60020 - r60031

今日は rb_stat() で stat(2)/fstat(3) の実行中に GVL を解放する変更や Net::HTTPHeader#add_field の不具合修正などがありました。

mame: r60020 2017-09-25 23:04:59 +0900

tool/run-lcov.rb で coverage 測定結果からテスト用の拡張ライブラリのファイル群などを除外するコマンド実行を追加しています。

naruse: r60021 2017-09-25 23:28:53 +0900

標準添付ライブラリ net/http の Net::HTTPHeader#add_field でヘッダの値に改行が含まれてないかチェックする時に ASCII-8BIT の文字列としてチェックするようにしています。 r59693 あたりの修正でヘッダに UTF として不正な文字列を含めた時にエラーになるようになってしまってたようです。 [ruby-core:82922] [Bug #13926]

naruse: r60022 2017-09-26 02:38:42 +0900

appveyor.yml でビルド時の BASERUBY として(?) 2.4 系の ruby を使うように設定を書き換えています。 https://github.com/ruby/ruby/pull/1702

svn: r60023 2017-09-26 02:38:43 +0900

version.h の日付更新。

nobu: r60024 2017-09-26 06:51:56 +0900

rb_vm_make_jump_tag_but_local_jump() のリファクタリング。 make_localjump_error() の呼び出しの共通化と th->ec.tag.retval の参照を必要な時だけ実行するように分岐の後に移動するなど。

nobu: r60025 2017-09-26 06:52:00 +0900

rb_vm_jump_tag_but_local_jump() という関数が r51292 以降未使用になってたようなのでコメントアウトしています。

nobu: r60026 2017-09-26 09:07:41 +0900

test/drb/test_drb.rb のメソッドと引数の開きかっこの間の余分な空白除去。

nobu: r60027 2017-09-26 13:13:37 +0900

rb_stat() で fstat(3) や stat(2) を呼び出す時に GVL を解放してその間に他の Thread が動くことができるようにしています。 stat(2) そんなに長時間 block しなさそうで、ベンチマークみるとやはり GVL 操作のオーバーヘッドでシングルスレッドでの速度は僅かに落ちるみたいですが、filesystem によって遅い場合なんかに block してしまうのを防ぐためという動機のようです。 [ruby-core:83012] [Bug #13941]

mame: r60028 2017-09-26 13:51:09 +0900

tool/run-lcov.rb で coverage 表示対象からビルドディレクトリの tmp/ の下のファイル群も除外するようにしています。

mame: r60029 2017-09-26 13:59:39 +0900

tool/run-lcov.rb の再修正で /tmp の下も除外するためにハードコードしていましたが、Dir.tmpdir を使ってシステムの一時ディレクトリのパスを得るようにしています。 r60028 の(ビルドディレクトリの) tmp/ の除外の指定が消されているけどこれはいいのかな。

k0kubun: r60030 2017-09-26 19:45:14 +0900

標準添付ライブラリ csv のテストで未使用の変数の警告除去。

k0kubun: r60031 2017-09-26 20:30:45 +0900

標準添付ライブラリ erb のテストに ERB#version や ERB#def_module などのテストケースを追加しています。