ruby-trunk-changes r49173 - r49185

今日は ostruct のメソッド名の変更の revert、Refinements に関する不具合修正などがありました。

akr: r49173 2015-01-08 00:29:28 +0900

標準添付ライブラリ open3 の Open3.open3 の最後にオプション引数を渡した時に正しくオプションとして扱われるように修正しています。 https://github.com/ruby/ruby/pull/808 [ruby-core:67347] [Bug #10699]
チケットのほうは Open3 固有の問題ではなくて rest キーワード引数の使用についてのものなのですが、参照されているので一応リンクしています。

svn: r49174 2015-01-08 00:29:40 +0900

version.h の日付更新。

normal: r49175 2015-01-08 07:19:19 +0900

標準添付ライブラリ resolv で Errno::ENETUNREACH という例外も捕捉してタイムアウト扱いにするようにしています。 gem install でローカルファイルの gem パッケージをインストールする時にネットワークに接続していなくても成功するようにしているそうです。 [ruby-core:67411] [Bug #10712]

hsbt: r49176 2015-01-08 11:39:23 +0900

.travis.yml で configure のオプションに --disable-install-doc と --disable-install-rdoc が両方指定されていましたが、前者が後者を含んでいるので削除しています。 https://github.com/ruby/ruby/pull/809

nobu: r49177 2015-01-08 12:52:01 +0900

r49173 の追加修正で最後の引数がオプションかどうか判定するのに is_a?(Hash) のかわりに Hash.try_convert を利用するようにしています。 to_hash で変換できたらそれもオプションとして扱われるようになります。

nobu: r49178 2015-01-08 12:53:45 +0900

OS X で Dir.glob でファイル名の大文字小文字の区別をするかどうかを、ディレクトリが存在するファイルシステムを getattrlist(2) で取得して調べてそれによって挙動を変えるようにしています。 これかなり遅くなりそうですねぇ…。 [ruby-core:67364] [Bug #10700]

usa: r49179 2015-01-08 15:26:11 +0900

r49173 で追加した Open3.open3 のテストが IO.open(3) を使っていて、Windows では fd が 2 までしかサポートされていなくて失敗していたので skip するようにしています。

usa: r49180 2015-01-08 15:31:30 +0900

r49090 で追加された dynamic symbol のメモリリークのテストのしきいちを 1.65 に引き上げています。 mswin の CI でのエラー誤検出を抑制するため。メモリリークのテストは難しいですね。

nobu: r49181 2015-01-08 16:07:59 +0900

r49145 での標準添付ライブラリ ostruct でのメソッド名の変更を revert しています。 protected メソッドでしたが依存しているライブラリなどがかなりあって影響が大きかったみたいです。 コミットログには GH-808 とありますが https://github.com/ruby/ruby/pull/806 のまちがいですね。

nobu: r49182 2015-01-08 16:31:45 +0900

Refinements で refine ブロック内で追加したメソッド名を private や protected などの引数に渡すと SEGV したりする不具合を修正しています。 メソッドエントリが見付からない時だけでなく、refinements 用のメソッドエントリがみつかったけど今有効じゃないという時も NameError にする必要がありました。 [ruby-core:67387] [Bug #10706]

nobu: r49183 2015-01-08 16:44:56 +0900

r49182 の ChangeLog エントリを追記しています。

nobu: r49184 2015-01-08 17:05:03 +0900

Object#method で Method オブジェクトを取得する時にも Refinements で BasicObject に追加したメソッドを取得しようとして SEGV することがあった不具合を修正しています。 こちらは rb_method_entry_t::klass に super クラスがない時に対処しています。なので BasicObject に追加した時限定だろうと思われます。

kazu: r49185 2015-01-08 18:50:03 +0900

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