ruby-trunk-changes r50101 - r50107

今日は拡張ライブラリ date の Solaris でのビルド修正や rb_iterate() のリファクタリングなどがありました。

nobu: r50101 2015-03-28 08:51:09 +0900

rb_imemo_new_debug() の利用を呼び元で IMEMO_DEBUG の定義で preprocessor で分岐していたのを、internal.h の定義部分でマクロによって切り替えるようにしています。また rb_imemo_new_debug() で T_IMEMO 型オブジェクトの生成に rb_imemo_new() を呼ぶようにしています。

nobu: r50102 2015-03-28 08:51:18 +0900

IFUNC_NEW() に現在のメソッドの mid を引数に追加して rb_iterate() で生成後にセットしていたのを吸収しています。 また rb_iterate() でブロックが渡された時だけ IFunc を生成するようにしています。

svn: r50103 2015-03-28 08:51:23 +0900

version.h の日付更新。

naruse: r50104 2015-03-28 09:23:58 +0900

拡張ライブラリ date の extconf.rb でコンパイラオプションに -std=iso9899:1999 を追加するようにしています。Solaris 10 でのビルドエラーの修正です。 INFINITY マクロの定義の有無にこのオプションが影響するそうです。 [ruby-core:68318] [Bug #10906]

naruse: r50105 2015-03-28 11:30:17 +0900

r50104 の再修正。 try_cflags だけでは利用可能かどうかチェックするだけで実際にオプションを追加しないので $CFLAGS に "-std=iso9899:1999" を追加しています。 [ruby-core:68318] [Bug #10906]

nobu: r50106 2015-03-28 14:22:04 +0900

rb_iterate() で TAG_BREAK と TAB_RETRY で TAG_JUMP してきた時の処理はほとんど同じなので、分岐を共通化するリファクタリング

nobu: r50107 2015-03-28 14:22:12 +0900

rb_iterate() から IFunc の生成部分と GET_THREAD() の呼び出しだけ残してあとを rb_iterate0() として別の関数に切り出しています。 gcc 4.4 での警告除去とのこと。 TH_EXEC_TAG() 後の変数の参照の "clobbered by 'longjmp' or 'vfork'" 警告でしょうか。
[追記]ifuncとth の未初期化変数の警告が出ていたそうです。[/追記]