ruby-trunk-changes r41367 - r41390

今日は attr_writer/attr_accessor で定義された foo= のようなメソッドを無引数で呼んだ時の不具合修正や GC の write barrier 漏れの修正などがありました。

ko1:r41367 2013-06-18 04:21:36 +0900

r41345 の変更で T_ZOMBIE 型になったオブジェクトは mark 関数を呼び出さなくなったので gc_mark_children() で T_ZOMBIE を考慮していたのを削っています。

svn:r41368 2013-06-18 04:21:41 +0900

version.h の日付更新。

naruse:r41370 2013-06-18 09:53:20 +0900

test/ruby/test_lazy_enumerator.rb の assert_ruby_status の第2引数にエラー時のメッセージを渡してしまっていた(本来は stdin に渡す文字列を指定する引数)のを修正しています。

ko1:r41371 2013-06-18 10:18:32 +0900

variable.c の rb_autoload() で Module/Class の Write Barrier 挿入漏れがあったのを修正しています。

ko1:r41372 2013-06-18 11:17:59 +0900

r41345 で追加した gc_mark_maybe() で T_ZOMBIE 型だけでなく T_NONE 型のオブジェクトも無視するようにしています。また markable_object_p() でチェックする型にも T_NONE を追加しています。また flags == 0 のチェックは不要とのことで消しています。

ko1:r41373 2013-06-18 11:27:37 +0900

マクロ RGENGC_PROFILE が 2以上に定義されていた時に GC::Profiler で収集できるプロファイル情報に generated_normal_object_count_types という項目で内部的なオブジェクトの型ごとの確保数を取得できるようにしています。

akr:r41374 2013-06-18 12:37:53 +0900

bignum.c の rb_big_xor() で無意味な符号のセット(x の符号を取り出して x にセットする、などとしていた)を削除しています。

akr:r41375 2013-06-18 12:56:49 +0900

bignum.c の nlz() で戻り値に明示的なキャストを追加したり、big2dbl() で BDIGIT 値を int 型の変数に代入していた(0 か非0かの判定のみに使っていた模様)のを避けるようにするなどコンパイラの警告の除去らしき変更です。

naruse:r41376 2013-06-18 13:43:21 +0900

test/ruby/test_notimp.rb の TestNotImplement#test_call_fork で fork した子プロセスで Kernel#sleep による無期限のスリープとタイムアウトの検出のコードを仕込んでわざえとエラーを起こすようにしているようです。 CI でのハングアップの調査のためと思われます。

naruse:r41377 2013-06-18 16:10:56 +0900

r41376 で仕込んだテストでの子プロセスの sleep を削除しています。

nobu:r41378 2013-06-18 16:43:47 +0900

parse.y のヒアドキュメントのパース時の lexer の状態変更のタイミングを修正しています。 r41372 での GC mark 時のチェックの変更で表出した不具合の修正とのこと。

akr:r41379 2013-06-18 18:46:01 +0900

configure で 128bit 整数型 int128_t が利用可能かチェックして、利用可能な時には bignum.c で BDIGIT を uint64_t に、BDIGIT_DBL を uint128_t に定義するようにしています。 Bignum の演算のパフォーマンスの向上が見込めるようです。しかしこれで環境によっては BigDecimal のテストが失敗するらしいです(手元では発生せず)。 [ruby-dev:47413] [Feature #8509]

zzak:r41380 2013-06-18 20:21:38 +0900

r41355 で拡張ライブラリ objspace で追加される ObjectSpace のメソッドの個別の rdoc 用コメントに reuire "objspace" が必要なことを追記していたのをやめて overview のところにだけ追記するようにしています。

zzak:r41381 2013-06-18 20:38:10 +0900

ext/.document に objspace/object_tracing.c を追記しています。

zzak:r41382 2013-06-18 20:41:28 +0900

拡張ライブラリ objspace に最近追加された ext/objspace/object_tracing.c で RDoc に ObjectSpace モジュールを認識させるためにコメントアウトされた状態で rb_define_module() の呼び出しを書いています。 [ruby-core:55525] [Bug #8537]

zzak:r41383 2013-06-18 20:56:03 +0900

拡張ライブラリ objspace の InternalObjectWrapper クラスについての rdoc 用コメントを追記しています。

zzak:r41384 2013-06-18 21:59:02 +0900

gc.c で ObjectSpace の Module を格納する変数名が rb_mObSpace だったのを rb_ObjSpace に改名しています。

zzak:r41385 2013-06-18 22:05:32 +0900

拡張ライブラリ objpace の ext/objspace/object_tracing.c で追加している各メソッドの rdoc 用コメントを追記しています。

nobu:r41386 2013-06-18 22:08:00 +0900

r41343 で追加していたテストでテストコードの引数のミスで失敗していたのを修正して、skip を削っています。 [ruby-dev:47438] [Bug #8531]

zzak:r41387 2013-06-18 22:10:25 +0900

r41385 で追記した ext/objspace/object_tracing.c の rdoc 用コメントのメソッド名の typo を修正。

tarui:r41388 2013-06-18 22:37:09 +0900

gc.c のプロファイル情報取得用に GC が走る原因を表す定数 gc_profile_record_flag の GPR_FLAG_STRESS の値を変更しています。ビットフラグとして使えるように2の累乗にするようにしています。 one-hot encoding という呼び方はじめて知りました。

charliesome:r41389 2013-06-18 23:01:32 +0900

attr_writer などで定義された foo= のようなメソッドを Object#send で引数なしで呼び出した時に arity チェックが間違っていて SEGV していた不具合を修正しています。 [ruby-core:55543] [Bug #8540]

tarui:r41390 2013-06-18 23:02:58 +0900

r41388 の ChangeLog エントリの内容を変更しています。 GC 理由は複合がありえるので、ビットフラグとして使えないとダメだったので typo だった、ということなのですが、元のほうが情報が多かったので良いような。"seems like" を "should be" にするだけでも良かったと思います。