ruby-trunk-changes r46586 - r46604

今日は Pathname#birthtime の追加、SystemStackError の backtrace を短くする処理の復活などがありました。

nobu: r46586 2014-06-28 00:35:15 +0900

tool/mkconfig.rb で configure の --with-rubyarchprefix オプションを指定すると RbConfig::CONFIG["prefix"] が空文字列になる不具合を修正しています。 https://github.com/ruby/ruby/pull/643

svn: r46587 2014-06-28 00:35:28 +0900

version.h の日付更新。

nobu: r46588 2014-06-28 00:44:20 +0900

r46568 の assert_raise_with_message のデフォルトのメッセージを出力するようにしたのが r46573 で revert されていたのを復活させています。 ここで exception は例外オブジェクトではなくてクラスが入るので、バックトレースが表示されることはないとのこと。

nobu: r46589 2014-06-28 01:28:35 +0900

r46531 を revert して SystemStackError の backtrace を 1 frame だけにするようにしています。

naruse: r46590 2014-06-28 04:26:43 +0900

標準添付ライブラリ uri/mailto を RFC6068 対応をしているそうです。 RFC2368 から RFC6068 に更新。 r46528 のリトライですね。 check_to のところが修正されていて、複数の To: アドレスの指定に対応しているそうです。

nobu: r46591 2014-06-28 07:52:46 +0900

r46586 の tool/mkconfig.rb の修正の再修正。 vars["prefix"] や vars["rubyarchdir"] がセットされていないケースを考慮しています。 https://github.com/ruby/ruby/pull/643

nobu: r46593 2014-06-28 13:58:25 +0900

マシンスタックオーバフロー時の SystemStackError 例外発生の処理で、backtrace の設定にメソッド呼び出しが行われないようにしています。 しかしよく考えたらこれ、例外発生のために関数を呼び出すのは大丈夫なんですかね?
これはマシンスタックじゃなくて VM スタックのオーバフロー時を想定していたそうです。あー、そうなのか。

nobu: r46594 2014-06-28 13:58:53 +0900

SystemStackError を再 raise した時に backtrace が上書きされないように既にセット済みなら上書きしないようにしています。 [ruby-core:63377] [Feature #6216]

nobu: r46595 2014-06-28 14:34:50 +0900

ENV のメモリリークの不具合修正の確認用のテストでメモリリーク判定のしきい値を緩めています。また事前に実行しておく「暖気運転」の回数も増やしています。 メモリリークのテストのしきい値は環境やバージョン、実行するテストの大きさにも依存するので難しいんですよね。単体で実行すると失敗したりする。

akr: r46597 2014-06-28 15:08:24 +0900

test/lib/test/unit/assertions.rb で assertion の message に Proc オブジェクトが渡された時に "." が重複するのを防いでいます。

akr: r46598 2014-06-28 15:33:44 +0900

標準添付ライブラリ webrickWEBrick::Utils#create_listeners で socket の閉じ忘れがあったのを修正しています。

nobu: r46600 2014-06-28 20:29:11 +0900

拡張ライブラリ bigdecimal の BigMath#PI で精度が0以下の時の例外メッセージを修正しています。 https://github.com/ruby/ruby/pull/644

akr: r46601 2014-06-28 21:51:48 +0900

test-all でテストケースで閉じ忘れている IO オブジェクトの検出の処理で IO#fileno で閉じているかどうかチェックする前に inspect を呼んで取っておいて、メッセージにそれを使うようにしています。 はて、fileno を呼ぶと変化してしまうのかな…。

akr: r46602 2014-06-28 22:46:02 +0900

File::Stat#birthtime が追加されたのに追随して拡張ライブラリ pathname でも Pathname#birthname を追加しています。 [ruby-dev:48232] [Feature #9857]

akr: r46603 2014-06-28 22:47:14 +0900

NEWS ファイルに r46602 での Pathname#birthtime の追加について追記しています。

usa: r46604 2014-06-28 22:58:01 +0900

r46602 の Pathname#birthtime の追加を Windows 環境でも有効にしています。 [ruby-dev:48339] [Feature #9857]