ruby-trunk-changes r39438 - r39476

Ruby生誕*120周年の本日 Ruby 2.0.0 がリリースされました。
http://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/
初の Major Version (バージョン番号の1桁目)の更新*2であり新機能もたくさんあります。是非試してみましょう。
とはいえ、いつものように今日も trunk には修正が入り続けています。Ruby の進化と改善は続きますし 2.0.0 の安定化にもまだ修正は必要だと思われます。
さてそんなわけで、今日は Net::HTTP#get の不具合修正(これは 2.0.0 に取り込み済みです)、Array#sample に Random 以外の乱数生成器オブジェクトを渡した時の不具合修正、Refinements の修正、Solaris での DateTime.now のタイムゾーンの不具合修正などがありました。

marcandre:r39438 2013-02-24 02:38:12 +0900

Enumerator の rdoc コメントの typo 修正。

svn:r39439 2013-02-24 02:38:16 +0900

version.h の日付更新。

marcandre:r39442 2013-02-24 05:17:20 +0900

Array#flatten! と ENV.reject! の rdoc コメントのサンプルコードに記述されている戻り値を修正しています。

nobu:r39444 2013-02-24 07:51:45 +0900

キーワードrest引数 があると対応するキーワード引数のないキーが渡されてもエラーにならないのですが、無名のキーワードrest引数("**" があるだけ)だとこのチェックにひっかかってしまってメソッド定義側で明示的に宣言されていないキーワードを渡すとエラーになってしまっていたのを修正しています。 [ruby-core:52744] [Bug #7922]

kosaki:r39445 2013-02-24 09:17:29 +0900

Linuxglibc では write(2) は戻り値を使わないと警告するようにマークつきで宣言されていたので、r39354 で変更したシグナルハンドラ内での write(2) の戻り値を受け取るようにしています。

kosaki:r39446 2013-02-24 09:18:32 +0900

r39444 の ChangeLog のエントリが重複していたので1つ削除しています。

nobu:r39447 2013-02-24 10:16:46 +0900

r39445 で write(2) の戻り値を受け取る変数を int にしていたのを ssize_t に修正しています。

nobu:r39448 2013-02-24 11:59:17 +0900

.gdbinit で定義しているカスタム gdb コマンド rp で printf コマンドの引数の順番をまちがえていたのを修正しています。

zzak:r39449 2013-02-24 13:24:52 +0900

attr_reader, attr_writer, attr_accessor や instance_variable_set, instance_variable_get などなどメソッド名やインスタンス変数名を指定するために Symbol を受け取るメソッドで、String も受けつけるものの rdoc にその旨を追記しています。

nobu:r39451 2013-02-24 13:36:00 +0900

Refinements の修正です。 refine で上書きするメソッドの中でブロックつきのメソッドを呼んで、そのブロック内で super を呼んだ場合にエラーになってしまう不具合を修正しています。 ブロックの control frame には method entry がないのでチェックが無限再帰かなにかになっていたみたいで、メソッドのトップレベルの control frame まで辿ってからチェックするようにしています。 [ruby-core:52750] [Bug #7925]

zzak:r39460 2013-02-24 14:23:51 +0900

Thread#backtrace_locations と Thread.handle_interrupt の rdoc の英文法の修正。

zzak:r39461 2013-02-24 14:29:06 +0900

ThreadGroup::Defult についての rdoc コメントを追記しています。

drbrain:r39463 2013-02-24 15:15:05 +0900

r36473 あたりで Net::HTTP でデフォルトで Accept-Encoding をつけてレスポンスを圧縮したものを受け取ってライブラリ側で展開して返すようにしたところ、利用アプリケーション側が明示的に指定した場合にも解凍してしまっていたのを r39232 で直したのですが、今度は Net::HTTP#get で Accept-Encoding を付与してしまっていたので、これが外部で指定されたものを解釈されてしまって圧縮されたレスポンスが返されるようになってしまっていたのを修正しています。 これは 2.0.0 のリリースにも取り込まれています。 [ruby-dev:47075] [Bug #7924]

nobu:r39466 2013-02-24 15:33:49 +0900

Array#sample から乱数生成器用のオブジェクトを Random 以外のものを指定して呼ぶと rand に渡す引数を本来より1小さい数を渡してしまっていて、最後の1要素が決して選ばれなくなってしまう不具合を修正しています。 [ruby-core:52779] [Bug #7935]

nobu:r39470 2013-02-24 16:48:31 +0900

r39466 の修正の影響で、そのバグを前提にしてしまっていたテストがあったので修正しています。 [ruby-core:52779] [Bug #7935]

tadf:r39475 2013-02-24 21:16:07 +0900

altzone という変数が利用できる環境(報告されていたのは Solaris)で DateTime.now のタイムゾーンの符号が反転している不具合を修正しています。 [ruby-core:52303] [Bug #7868]

naruse:r39476 2013-02-24 22:10:46 +0900

REXML と RSS のテストで test ディレクトリのユーティリティスクリプトを require するのに require_relative を利用するようにしています。 またいくつかマルチバイト文字(?)を直に書いていたのを \x## のエスケープ形式で書くように修正しています。

*1:名前が決まった日

*2:一応 1.0 もそうだったと思いますが、その時代は知らない……