ruby-trunk-changes r50525 - r50532

今日は標準添付ライブラリ monitor の不具合修正などがありました。

shugo: r50525 2015-05-18 13:56:22 +0900

標準添付ライブラリ monitor の MonitorMixin#mon_try_enter と MonitorMixin#mon_enter でロック取得時に mon_count を 0 にリセットするようにしています。 ロックを取っていた Thread が異常終了した時に mon_count が 0 に戻っていない場合を考慮するようにしているようです。 https://github.com/ruby/ruby/pull/874

svn: r50526 2015-05-18 13:56:34 +0900

version.h の日付更新。

nobu: r50527 2015-05-18 15:31:42 +0900

rb_f_notimplement() で定義されているメソッドは Object#respond_to? で false を返すように(あれ、そうなんでしたっけ?)していたのが Windows では関数のアドレスが DLL 内のアドレスと import されたアドレスが異なるため判定に失敗していたそうなので、Windows では関数ポインタの変数にアドレスを入れておくようにして判定できるようにしています。

nobu: r50528 2015-05-18 18:03:48 +0900

gc.c の #ifdef HAVE_VA_ARGS_MACRO という preprocessor directive を削除。

nobu: r50529 2015-05-18 18:41:21 +0900

Module#autoload のテストで Object クラスに直接 autoload を設定していたところを Class.new による無名クラスを利用するようにしています。

nobu: r50530 2015-05-18 18:41:37 +0900

r50518 で追加した Socket#accept_nonblock のテストの assertion を assert_predicate を使ってエラー時によりわかりやすいメッセージが出るようにしています。

nobu: r50531 2015-05-18 19:30:36 +0900

拡張ライブラリ io/nonblock で io_nonblock_set() で fd のフラグを変更したかどうかを返すようにして、変更されなかった時は rb_ensure() での後始末も不要なので単に rb_yield() でブロック呼び出しするだけにしています。

kazu: r50532 2015-05-18 22:30:54 +0900

r50522 の ChangeLog エントリの typo 修正。