細かい話で恐縮ですが、プログラムを読んでいて
どうも気になるので教えてください。

eval.cのruby_run()関数の中の変数exは、
初期化(= 0)が必要なのでは?
(実際には問題が起きてなくても)

exは何のために必要なのでしょうか。
ruby_run()を二回以上呼び出すことが
想定されているのでしょうか。

void
ruby_run()
{
    int state;
    static int ex;
    volatile NODE *tmp;

    if (ruby_nerrs > 0) exit(ruby_nerrs);

    Init_stack(&tmp);
    PUSH_TAG(PROT_NONE);
    PUSH_ITER(ITER_NOT);
    if ((state = EXEC_TAG()) == 0) {
	eval_node(ruby_top_self, ruby_eval_tree);
    }
    POP_ITER();
    POP_TAG();

    if (state && !ex) ex = state;
    ruby_stop(ex);
}
---
小迫@ソフネック        渋谷区恵比寿1-15-1