ruby-trunk-changes r63063 - r63076

今日は Windows 環境での Fiber 関係の不具合修正や Module#prepend と singleton_method の組み合わせの不具合修正などがありました。

nobu: r63063 2018-04-02 21:39:01 +0900

拡張ライブラリ win32 の Win32API.rb で Kernel# warn に uplevel キーワード引数を追加しています。また $VERBOSE のチェックを削っています。

hsbt: r63064 2018-04-03 14:56:16 +0900

tool/sync_default_gems.rb で default gem の csv の upstream repository のファイル構成への対応。

svn: r63065 2018-04-03 14:56:17 +0900

version.h の日付更新。

nobu: r63066 2018-04-03 15:25:10 +0900

win32/file.c の rb_file_expand_path_internal() で未使用の変数があったので削除しています。

nobu: r63067 2018-04-03 15:57:43 +0900

Module#prepend で特異クラスに Module を prepend されると Kernel#singleton_method がメソッドをみつけられなくなることがある不具合を修正しています。 RCLASS_ORIGIN() を使うようにしていますが、こうすると今度は prepend で差し込まれたメソッドが取れなくならないでしょうか。 [ruby-core:86435] [Bug #14658]

nobu: r63068 2018-04-03 15:57:44 +0900

と、思ったら r63067 の追加修正で RCLASS_ORIGIN() を通す前に rb_singleton_class_get() が Qnil を返してないか(特異クラスがないかどうか)チェックするようにしています。 [ruby-core:86435] [Bug #14658]

naruse: r63069 2018-04-03 16:54:18 +0900

r62966 と r62969 の webrick の修正で mswin のテストが失敗しているそうなので revert しています。なんか Fiber を使っててちょっとエキセントリックだなと思ったのですが Fiber がらみで不具合を踏んでしまったみたいです。

nobu: r63070 2018-04-03 17:10:32 +0900

test/webrick/test_httpauth.rb のインデント修正のみ。

nobu: r63071 2018-04-03 17:29:50 +0900

tool/m4/_colorize_result_prepare.m4 のクオートと閉じかっこの順番が狂ってたのを修正しています。

nobu: r63072 2018-04-03 17:29:51 +0900

configure の --silent オプションが指定された時に余計なメッセージが出ないように tool/downloader.rb 実行時に出力をリダイレクトするようにしています。また r63071 の変更部分のクオートも消しています。

ko1: r63073 2018-04-03 19:21:47 +0900

r63069 で revert した Fiber を使った webrick の実装に関連した修正。 rb_threadptr_root_fiber_setup() を rb_threadptr_root_fiber_setup_by_parent() と rb_threadptr_root_fiber_setup_by_child() という関数に分けて rb_threadptr_root_fiber_setup_by_child() のほうは起動した Thread 内から呼ぶようにしています。 Windows 環境では root fiber の rb_fiber_t::fib_handle というメンバーがセットされますが、これに親の Thread のものがセットされてしまって問題になっていたようです。 [ruby-core:86376] [Bug #14642]

ko1: r63074 2018-04-03 19:22:45 +0900

r63069 で revert した r62966 と r62969 の Fiber を使った webrick の実装の問題は r63073 で修正された筈なので再度 r62966 と r62969 を適用しています。

nobu: r63075 2018-04-03 19:50:47 +0900

RubyVM::InstructionSequence.load_from_binary で SEGV することがある不具合の再現テストを追加しています。不正な binary の時だけかと思ったけど to_binary でダンプしたものを load_from_binary しても起きるんですね。 [ruby-core:84909] [Feature #14370] [ruby-core:86437] [Bug #14660]

nobu: r63076 2018-04-03 20:27:00 +0900

test/webrick/test_httpauth.rb のインデント修正のみ。