ruby-trunk-changes r29651 - r29658

今日はちょっと省エネで行きます。

nobu:r29651 2010-10-31 22:11:02 +0900

昨日の r29649 のリファクタリングenum に変更した型の対応が不完全だったので追加で型の修正をしています。

nobu:r29652 2010-10-31 22:24:19 +0900

SystemExit で、ということはつまり Kernel#exit でということですが、プロセスを終了する時に ruby_vm_destruct を呼んで VM と objspace の解放処理をするようにしています。おそらく次のコミットのための準備だと思います。

nobu:r29653 2010-10-31 22:32:13 +0900

プロセスの終了時にファイナライザを呼ぶために rb_objspace_call_finalizer を呼ぶパスが2つあって2回呼ばれているので、objspace の開放時に呼ぶのをやめています。[ruby-dev:42479]

ko1:r29654 2010-11-01 00:41:14 +0900

[ruby-dev:42479] の元々の動機であった、finalizer_table の初期化を遅延して、空になったら廃棄して、というのを繰り返していたので、最初に作成して終了時に廃棄するようにしています。パフォーマンスに多少影響があるかもしれませんが動作には影響ない修正だと思います。

svn:r29655 2010-11-01 00:41:16 +0900

version.h の日付変更。

shyouhei:r29658 2010-11-01 21:43:59 +0900

RUBY_DEBUG_ENV が定義されている時は main で getenv を使うので stdlib.h を include しています。省略されると自動的に getenv の型が int とされてしまいますが、int とポインタ(char *) の型のサイズが違う環境では一旦 int を経由して情報が落ちるのでおかしなことになってしまいます。