ruby-trunk-changes r49255 - r49262

今日は Refinements と Kernel#singleton_method の不具合修正、Array#select!, reject! の最適化/仕様変更、IO#close を重複して呼んでも IOError を発生しないようにする変更などがありました。

nobu: r49255 2015-01-15 10:44:57 +0900

Array#select! や Array#reject! の最適化でブロックの呼び出しで削除されることになる都度 receiver の配列から要素を削除していたのを、連続して削除される対象の要素があったらそれらをまとめて削除するようにしています。 これは渡されたブロック内から receiver の配列自体をみていると、すぐに削除されないように見えるケースがあるので、仕様変更という面もあるようです。 [ruby-core:67418] [Feature #10714]

svn: r49256 2015-01-15 10:45:08 +0900

version.h の日付更新。

kazu: r49257 2015-01-15 12:12:15 +0900

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

nobu: r49258 2015-01-15 18:09:14 +0900

tool/make-snapshot で make prereq 実行のための config.status に rubylibprefix と ruby_version を追記しています。 Gem.default_dir を利用するために必要とのこと。

nobu: r49259 2015-01-15 21:35:00 +0900

r49184 で Kernel#method で有効でないスコープで Refinement で追加したメソッドが取れてしまっていたのを修正したのと同様に、Kernel#singleton_method でも Module#refine のブロック外では追加したメソッドが取れないようにしています。 [ruby-core:67603] [Bug #10744]

akr: r49260 2015-01-16 00:26:03 +0900

IO#close で close 済みの IO オブジェクトについて呼ばれても IOError を発生させないようにしています。 おお! 仕様変更になるので 2.3 以降とドキュメントには追記されていますが、嬉しい挙動ですね。 [ruby-core:67444] [Feature #10718]

svn: r49261 2015-01-16 00:26:18 +0900

version.h の日付更新。

svn: r49262 2015-01-16 00:26:24 +0900

r49260 で追加したテストの行末の空白除去。