ruby-trunk-changes r40044 - r40073

今日は pack/unpack の Q!/q! 指示子のサポート追加と SecureRandom の seed の追加方法の変更、Regexp#to_s の警告抑制のほかテストの変更などがありました。

akr:r40044 2013-04-02 06:49:55 +0900

NUM2XXX, FIX2XXX のテスト用拡張ライブラリ ext/-test-/num2int/num2int.c のメソッド名を変更して、クラスの特異メソッドとしてではなく global_function として定義するようにしています。

akr:r40045 2013-04-02 07:41:13 +0900

test/-ext-/num2int/test_num2int.rb に Rational のケースなどテストケースを追加。

akr:r40046 2013-04-02 07:45:29 +0900

r40044 のテスト用メソッドの変更の追随漏れを修正。

akr:r40047 2013-04-02 07:59:05 +0900

r40044 の変更で不要になったモジュール定義を削除しています。

naruse:r40048 2013-04-02 11:02:33 +0900

OpenSSL::PKCS12 のテスト test/openssl/test_pkcs12.rb でインスタンス変数名の typo を修正。

naruse:r40049 2013-04-02 11:14:21 +0900

psych のテストの警告除去.

naruse:r40057 2013-04-02 15:28:10 +0900

test/objspace/test_objspace.rb での警告除去。はて、ここはどうして数値のリテラルだと警告が出てたんでしょう。

naruse:r40058 2013-04-02 15:28:13 +0900

WEBrick のテストの警告除去。 リクエストの Content-type を明示するようにしたりしています。警告が出るのか……。

naruse:r40059 2013-04-02 15:28:15 +0900

test-all 用のユーティリティ assert_separately の変更。:ignore_stderr オプションがないときは stderr へ出力があったらエラーにするようにしています。また Test::Unit::Runner の @@stop_auto_run を true にして、ARGV を参照しないようにしているそうです。それから子プロセスを起動する時に -I オプションで親プロセスの $LOAD_PATH を指定して同じロードパスを使うようにしています。

naruse:r40060 2013-04-02 15:28:17 +0900

test/ripper/test_files.rb で大量の *.rb ファイルを parse するテストを assert_separately で別のプロセスとして実行することで test-all の時間を短縮しようとしているようです。

naruse:r40061 2013-04-02 15:28:20 +0900

test/ruby/test_require.rb で使っている assert_separately に :ignore_stderr オプションを追加しています。

naruse:r40062 2013-04-02 16:02:54 +0900

vm_dump.c で rb_vm_bugreport() から C のバックトレースを出力する部分を rb_print_backtrace() として切り出すリファクタリング

naruse:r40063 2013-04-02 17:44:16 +0900

Regexp#to_s で正規表現を文字列化する時に文字クラスの重複の警告が出てしまうのを抑制するため一時的に ruby_verbose を false にして onig_new を呼ぶようにしています。 [ruby-core:53649] [Bug #8151]

akr:r40064 2013-04-02 18:48:34 +0900

ARGF.read_partial の rdoc コメントを変更しています。主に ARGF 特有の現象(各ファイルのEOFでは "" を返し、最後のファイルの EOF では EOFError を発生させる)を書き不要な記述を削除しています。

akr:r40065 2013-04-02 19:08:10 +0900

SecureRandom.random_bytes で seed に渡す配列を to_s で文字列化していたのを join("") で文字列化するようにしています。 1.8 で Array#to_s が inspect とは違って join("") のように振る舞っていた時の名残ですね。 [ruby-core:52058] [Bug #7811]

akr:r40066 2013-04-02 19:26:02 +0900

r40044 でテスト用の拡張ライブラリのメソッドを global function として定義しなおしたのを再度 Num2int モジュールの module function として定義するように変更しています。

akr:r40067 2013-04-02 20:28:57 +0900

Array#pack および String#unpack の指示子の Q! および q! を LONG_LONG 型を指定するために追加しています。 NEWS にも追記されています。 [ruby-dev:43970] [Feature #3946]

akr:r40068 2013-04-02 20:31:44 +0900

r40067 の ChangeLog に ML とチケットの参照を追記しています。

nobu:r40069 2013-04-02 23:58:06 +0900

win32/win32.c の constat_attr() で端末の色つけのためのフラグの作成? をしているところで switch 文の break 漏れで条件が fall through してしまっていたところがあったのを修正しています。

nobu:r40070 2013-04-02 23:58:32 +0900

r40067 の NEWS の追記部分の行末の空白除去。

akr:r40072 2013-04-03 00:09:36 +0900

SecureRandom.random_bytes で seed の設定のために OpenSSL::Random.seed を使っていましたが、これは seed として渡される文字列が充分な entropy を持っている(ざっくり言えば充分ランダムである)ことを想定しているので、OpenSSL::Random.random_add を使うように変更しています。 ここで entropy として 0.0 を指定すると OpenSSL (拡張ライブラリじゃなくて元のライブラリのほう)が初回に充分な entropy を集めてきてくれるからより安心ということみたいです。詳細はチケット参照。 [ruby-core:47308] [Bug #6928]

svn:r40073 2013-04-03 00:09:41 +0900

version.h の日付更新。