ruby-trunk-changes r55392 - r55398

今日は Integer#digits メソッドの追加、デッドロック検出時のデバッグメッセージの強化、拡張ライブラリで Integer の統合を判定できるマクロの導入などがありました。

duerst: r55392 2016-06-13 16:58:57 +0900

test/ruby/enc/test_case_comprehensive.rb で Unicodeエンコーディングの swapcase のテストを生成するようにしています。

svn: r55393 2016-06-13 16:58:58 +0900

version.h の日付更新。

nobu: r55394 2016-06-13 20:34:56 +0900

include/ruby/ruby.h に RUBY_INTEGER_UNIFICATION というマクロ定義を追加して、拡張ライブラリなどで Fixnum/Bignum のクラスの Integer への統合がされているかどうかが判定できるようにしています。またこれを参照して rb_cInteger と rb_cBignum を rb_cInteger へ展開されるマクロ定義にするようにしています(これまでは別のグローバル変数で内容が同じ値(rb_cInteger)を代入している状態でした。また拡張ライブラリ json のソースでこのマクロを参照して余計なメソッド定義を抑制するようにしています。 [ruby-core:75718] [Bug #12427]

mrkn: r55395 2016-06-13 20:43:54 +0900

Integer#digits というメソッドを追加しています。 これは指定した基数で表記した場合の各桁の値を小さい桁から順に並べた配列を返すメソッドです。つまり 12345.digits => [5, 4, 3, 2, 1] (デフォルトは10を基数にする)となります。 [ruby-core:75799] [Feature #12447]

nobu: r55396 2016-06-13 20:50:09 +0900

正規表現の named capture で存在するローカル変数と名前がかぶっていた時の警告をやめるようにしています。 なるほど、ローカル変数の使いまわしで警告出ませんしね。 [ruby-core:75416] [Bug #12359]

naruse: r55397 2016-06-13 21:34:06 +0900

デッドロック検出時のデバッグメッセージで出力の意味がわかりやすいようにラベルを追加して、さらに Thread 間の依存関係(rb_thread_t::join_list) の表示と、各 Thread のバックトレースの表示も追加しています。 [ruby-dev:47217] [Feature #8214]
また Thread#inspect で Thread の状態として "sleep" のうち THREAD_STOPPED_FOREVER を "sleep_forever" と表記するようにして "sleep" と区別できるようにしています。

naruse: r55398 2016-06-13 21:46:44 +0900

r55397 で追加したテストで標準出力のチェックを正規表現を使うように修正しています。