ruby-trunk-changes r46769 - r46775

今日は Solaris でのビルドエラー修正、restキーワード引数をもつブロックの呼び出しで to_hash が呼ばれると引数が変化してしまう不具合の修正などがありました。

nobu: r46769 2014-07-09 23:51:26 +0900

random.c で seed の設定をするところでキャストを変数の型にあわせるように修正しています。icc での警告除去のためとのこと。

ngoto: r46770 2014-07-10 00:28:53 +0900

r46768 で symbol.h と symbol.c を parse.y から分離したために Solaris でのビルドが失敗したということで common.mk で dtrace の probe を含むファイルのリストを格納する変数に symbol.c を追加しています。

svn: r46771 2014-07-10 00:29:14 +0900

version.h の日付更新。

ko1: r46772 2014-07-10 01:19:13 +0900

rb_gc_mark_symbols() を削除しています。Symbol 名を表す fstring のマーク処理は static symbol と pindown された dynamic symbol (決して解放されないもの)は r46749 で rb_gc_register_mark_object() で登録してマークするようにされていて、それ以外の dynamic symbol のものは global_symbols.dsymbol_fstr_hash に登録して、これを Hash オブジェクトで包んだものを rb_gc_register_mark_object() で登録してマークされるようにして、global_symbols.id_str からのマーク処理はなくしています。

nobu: r46773 2014-07-10 12:24:17 +0900

gc.c のマクロ global_List を global_list と "L" が大文字になっていたのを修正しています。

kazu: r46774 2014-07-10 13:17:52 +0900

r46772 の ChangeLog エントリの typo 修正。

nobu: r46775 2014-07-10 15:02:54 +0900

ブロックパラメータ "**h" のように restキーワード引数を受け付けるブロックに yield で渡す引数の最後に to_hash で変換できるオブジェクトを渡すと、最初の引数が上書きされてしまうという不具合を修正しています。内部的に to_hash を呼び出す時に VM のスタックポインタをずらさずに処理していたので処理中の引数が上書きされてしまっていたため、キーワード引数の処理中に一時的に VM スタックポインタを引数のぶんずらしておくようにしています。これは盲点な感じの不具合ですねー。 [ruby-core:63593] [Bug #10016]