From: matz@... (Yukihiro Matsumoto) Date: 1998-06-15T16:16:06+09:00 Subject: [ruby-list:8338] Re: require まつもと ゆきひろです In message "[ruby-list:8335] Re: require" on 98/06/15, WATANABE Hirofumi writes: |わたなべです. |:やっぱりそうなんですね.ちょっと状況が把握できてないんですが, |:rbwar032.izhを入手すればわかるものなんでしょうか? | |あれ? 実行してないの? そーです.私は怠けものです.^^;;; |直ってません. 1.1b1 では大丈夫で 1.1b2 から発生するように |なったみたい. そうですか,サンプルスクリプトのおかげで原因は掴めました.で, 原因はf_loadの実行前にeval_treeをクリアしてなかったので, require(load)の中で最後の構文木(unit.name)が違うコンテキスト でもう一度実行されていたというものです. パッチ付けておきます. --- eval.c 1998/06/12 09:35:00 1.1.1.2.2.62 +++ eval.c 1998/06/15 07:11:30 @@ -885,3 +885,2 @@ save = eval_tree; - eval_tree = 0; ruby_require_modules(); @@ -2253,4 +2252,4 @@ rb_in_eval++; - eval_tree = 0; list->nd_head = compile(list->nd_head->nd_lit,0); + eval_tree = 0; rb_in_eval--; @@ -3820,3 +3819,2 @@ if ((state = EXEC_TAG()) == 0) { - eval_tree = 0; sourcefile = file; --- parse.y 1998/06/12 09:35:10 1.1.1.2.2.40 +++ parse.y 1998/06/15 06:08:39 @@ -1598,2 +1599,3 @@ + eval_tree = 0; newline_seen = 0;