ruby-trunk-changes r51298 - r51304

今日はコードサイズ削減や構造体サイズの削減などの細かな最適化などがありました。

nobu: r51298 2015-07-20 00:21:00 +0900

thread.c の ppoll(2) がない時の代替実装で timeout_ms の型が int なのに TIMET_MAX を最大値として計算されていたので、INT_MAX に変更し、その他代入時に明示的なキャストを追加したりしています。

svn: r51299 2015-07-20 00:21:19 +0900

version.h の日付更新。

nobu: r51300 2015-07-20 09:08:23 +0900

compile.c の iseq_compile_each() で break や next などの TAG を使うところの flags にセットするビットフラグに関する定数を enum 型で定義して、数値を直に書いていたのを修正しています。

nobu: r51301 2015-07-20 09:11:40 +0900

rb_thread_terminate_all() で止める Thread 毎に TH_PUSH_TAG() と EXEC_TAG() を使って終了待ちをしていたのを、全体で1つの TH_PUSH_TAG()/EXEC_TAG() の中にループを入れるようにしています。

normal: r51302 2015-07-20 12:21:58 +0900

parse.y で定義されている struct parser_params 構造体のメンバの順番を入れ替えたり、ただの on/off だけのフラグは bit-field にしたりして構造体サイズを縮小しています。 [ruby-core:70034] [Feature #11371]

normal: r51303 2015-07-20 12:27:50 +0900

r51302 の変更で struct parser_params::eofp を VALUE から bit field に変更したのに Qfalse を代入していたところが残っていたので 0 代入に修正しています。

normal: r51304 2015-07-20 15:05:08 +0900

parse.y の parser_initialize() で struct parser_params のメンバを初期化していたところで、構造体はゼロクリアされた状態で渡されているので不要な代入を削っています。コードサイズを削減しています。