ruby-trunk-changes r29327 - r29334

ちょっと早めにまとめておきます。今日の trunk へのコミットは以下のとおりです。

ryan:r29327 2010-09-24 06:27:19 +0900

minitest 1.7.2 を取り込んでいます。これはおそらく [Bug #3858] の修正を本家に入れたものを取り込んでいるものでしょう。

svn:r29328 2010-09-24 06:27:23 +0900

version.h の日付変更。

naruse:r29329 2010-09-24 09:43:44 +0900

r29302 の Zlib::GZipReader のテストで文字コードを指定する位置が File.new だったので Zlib::GZipReader.new で指定するように変更。
先日の changes であれっとか言ってますがちゃんとひっかかったら報告しないといけせんね。

shyouhei:r29330 2010-09-24 14:25:55 +0900

r229281 と同様に PTY の操作が環境によって失敗するのでテストの skip にするようにしています。

naruse:r29331 2010-09-24 15:28:35 +0900

[ruby-core:32498] で報告されていた String#rindex が毎回頭から指定位置の文字を取り出しててマルチバイト文字列の時にとても遅かったので、カーソル位置からひとつずつ前の文字に移動する方式にしている(多分)。

naruse:r29332 2010-09-24 15:52:25 +0900

String#to_i のドキュメントが "never raises a exception" となっていたけど、引数の base(基数)が不正だったら例外が発生するのでその旨を追記。
あー、"*an* exception" ですね。ものすごく trivial ですが一応チケットにコメントしておきましょう……。 あれ、既に "an" になってますね。端末の端で n が消えていたのかな。 [ruby-core:31685]

shyouhei:r29334 2010-09-24 16:37:26 +0900

もうひとつ、PTY.getpty が使用できない環境で例外が発生した時にテストを skip させています。
Errno::ENOENT が発生することを確認しているテストなのに?と一瞬思いましたが

>> Errno::ENOENT.ancestors
=> [Errno::ENOENT, SystemCallError, StandardError, Exception, Object, Kernel, BasicObject]
>> RuntimeError.ancestors
=> [RuntimeError, StandardError, Exception, Object, Kernel, BasicObject]

と Errno::ENOENT は RuntimeError の直接の子孫ではないので大丈夫なのでした。