ruby-trunk-changes r47275 - r47290

今日は IO のブロックつきメソッド(最後に IO を閉じるもの)が例外を握り潰してしまうことがある不具合の修正や、標準添付ライブラリ mathn の deprecated 化と整理などがありました。

nobu: r47275 2014-08-25 23:55:31 +0900

r45508 の __builtin_longjmp() の変更について ChangeLog エントリに書いていた clang のバージョン情報を修正しています。 5.1 というのは Apple 版のバージョンで llvmsvn 上は 3.4 に相当するバージョンだったとのこと。

hsbt: r47280 2014-08-26 09:25:27 +0900

標準添付ライブラリ mathn.rb のコメントアウトされていたコードを削除しています。

svn: r47281 2014-08-26 09:25:38 +0900

version.h の日付更新。

hsbt: r47282 2014-08-26 09:31:00 +0900

2.2 からは標準添付ライブラリ mathn は deprecated として require すると(-w や -v オプションつきだと)警告が出るようにしています。悪名高い mathn (require すると数値演算の仕様が変化するためわかりにくい問題を引き起こすことがよくあった)がついに消えるのかー(まだ消えない)。 [ruby-core:64553] [Feature #10169]

hsbt: r47283 2014-08-26 11:39:43 +0900

標準添付ライブラリ thwait の RCS_ID という定数(古えの VCS のマクロ置換結果を格納してた)を削除しています。

hsbt: r47284 2014-08-26 11:44:26 +0900

標準添付ライブラリ shell のコメントアウトされていたデバッグ用らしきコードを削除しています。

hsbt: r47285 2014-08-26 12:39:21 +0900

mathn のテストに r47282 の警告追加で結果が変化するところを対応しています。

hsbt: r47286 2014-08-26 13:44:20 +0900

Range のテストでも $VERBOSE 対策として assert_separately の stderr のメッセージを無視するオプションを利用するようにしています。

kazu: r47287 2014-08-26 13:51:19 +0900

template/fake.rb.in のソースディレクトリ取得方法を File.join によるものから File.expand_path による方法に微妙に変更しています。ソースディレクトリ以外でビルドしている場合のエラー対策とのことですが symbolic link がからむ時の対応とかかな…?
[追記]どうやら @srcdir@ のソースディレクトリが絶対パスで取れてしまった時にエラーになったということだそうで、configure を呼ぶ時のパスの指定方法によるのかもしれない、ということでした。そういえば configure は ../ruby/configure みたいにビルドディレクトリからの相対パスで呼ぶようにしてますね。[/追記]

nobu: r47288 2014-08-26 17:12:48 +0900

IO#write で書き込むファイルの存在するディスクがディスクフルでも、Errno::ENOSPC が発生せずになにごともなくかえってきてしまうという不具合を修正しています。 io_close() で rb_rescue() を使って IO#close の呼び出しする時にその時に発生中の例外などを握り潰してしまっていたので、"closed stream" というメッセージをもつ IOError 例外のみ吸収するようにチェックを厳密にしています。 [ruby-core:64463] [Bug #10153]

akr: r47289 2014-08-26 20:48:21 +0900

Time.at に Float を渡して、その結果作成された Time オブジェクトの to_f メソッドを呼ぶと元の Float と一致しない、というのに対処。Time の内部表現が Rational の時の変換を Rational のまま除算してから Float に変換するようにして精度を保つようにしています。 参照されているチケットの元々の報告については Reject されていますが、コメントにあった内容に対応しています。 [ruby-core:64369] [Bug #10135]

nobu: r47290 2014-08-26 21:07:57 +0900

標準添付ライブラリ mathn から累乗(** 演算子)の alias power! の定義や独自の "**" 演算子の再定義などを削除しています。これは昔 Complex や Rational が組み込みでなかった時に追加するためにあったものが、既に不要になったのに残ってたみたいですね。 [ruby-core:63973] [Bug #10086]