ruby-trunk-changes r29984 - r29998

今年ももう師走ですね。今日はたくさんコミットがありました。
年末年始の changes はどうしようかとそろそろ考えているのですが、まあきっとコミッタのみなさんもお休みのことでしょうから iPad 持って帰ってちまちま更新でなんとかなるんじゃないかと思いつつ、むしろお休みでがっつり修正が入ったりして。

naruse:r29984 2010-12-01 01:47:24 +0900

String#inspect で UTF-16/UTF-32エンコーディングなのに BOM なしの文字列の時にダミーエンコーディングの文字列(UTF として表示せずに \x## で表示するらしい)にしています。[ruby-core:33461]
コメントによると Unicode の仕様や RFC によると BOM なしの時はビックエンディアンなのが正解らしいですが Windows ではリトルエンディアンの BOM なし UTF-16 文字列がよく作られるそうです。なので BOM なしの時に決めうちにできないんですね。

svn:r29985 2010-12-01 01:47:25 +0900

version.h の日付更新。

ryan:r29986 2010-12-01 07:45:53 +0900

minitest 2.0.0 (r5952) を取り込んでいます。しかしこれが後に災いをもたらすのであった。

naruse:r29987 2010-12-01 09:32:19 +0900

addr2line.c の修正。Linux ディストリビューションのパッケージによってはデバッグ情報ありの実行体を別のパッケージで提供していることがあるので、そういう時にもファイル名や行番号を表示できるように対応しています。ELF 実行体の .gnu_debuglink というセクションにデバッグ情報のある実行体の名前が埋め込まれてるみたいです。[ruby-dev:42655]

$ readelf -x .gnu_debuglink /usr/bin/ruby
Hex dump of section '.gnu_debuglink':
  0x00000000 72756279 2e646562 75670000 8252b116 ruby.debug...R..

自分でビルドした実行体にはこのセクションは含まれていないのでディストリビューションが用意したパッケージを利用している人向けですね。

naruse:r29988 2010-12-01 10:12:31 +0900

r29986 の minitest のとりこみを revert しています。仕様変更で test-all が失敗してしまっていたようです。commit する前に make test-all しろとおかんむりです。

naruse:r29989 2010-12-01 10:20:56 +0900

r29984 の String#inspect の修正で BOM のペアのリテラルが間違っていたので修正(0xFD -> 0xFE)

ryan:r29990 2010-12-01 14:33:32 +0900

minitest 2.0.0 を再度とりこんでいます。test/unit.rb を修正しているとのことですが余裕ないので内容は未確認。

nobu:r29991 2010-12-01 14:36:39 +0900

"\x00"*n のような文字列はどれも Object#hash で生成するハッシュ値が同じになってしまっていたので変化するように修正。 [ruby-core:33500]

naruse:r29992 2010-12-01 15:03:57 +0900

test/unit.rb リファクタリング。@interrupt というインスタンス変数を操作しているところはないのでそれを用いた判定は削られています。

usa:r29993 2010-12-01 15:09:22 +0900

openssl のテストにて OpenSSL::SSL::SSLSocket#cert のテストのために File オブジェクトを渡して OpenSSL::SSL::SSLSocket.new しているのですが、Windows ではソケット以外を渡して SSLSocket を生成するのが動かないらしくスキップされています。

kazu:r29995 2010-12-01 20:07:03 +0900

man page の typo 修正。

akr:r29996 2010-12-01 21:42:50 +0900

socket のテストで Errno::EADDRINUSE を無視するのに rescue に直に書くのではなくて、メソッドを定義してそれを使うようにしています。おそらく [ruby-dev:42661] に関係した修正の布石と思われます。

akr:r29997 2010-12-01 21:44:03 +0900

array.c で関数マクロの引数は括弧をつけて利用するように修正。

usa:r29998 2010-12-01 22:05:17 +0900

BORLAND Borland コンパイラでの浮動小数点数演算ユニットの設定に間違いがあったとかで Init_Numeric で修正されています。 [ruby-core:33503] 参考URL: http://qc.embarcadero.com/wc/qcmain.aspx?d=32483 うーんつまりコンパイラのバグがあったのでその workaround ということですかね。