From: nobu.nakada@... Date: 2003-10-01T13:44:11+09:00 Subject: [ruby-dev:21450] Re: 定数のスコープ なかだです。 At Fri, 26 Sep 2003 23:43:20 +0900, akira yamada wrote: > Ruby 1.8で以下のような動作をします。 > > $ cat /tmp/z.rb > class B > class C > end > end > class X < B > def initialize > p C > end > end > $ ruby -ve ' > require "/tmp/z.rb" > C=0 > X.new' > ruby 1.8.0 (2003-09-26) [i386-linux] > 0 > > 同じ内容だと思うのですが、 > すべてのコードをコマンドラインから与えたり > 一つのファイルに書いおくと以下のようになります。 rb_load()のPUSH_CREF()が一つ余分なような気が。 Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.541 diff -u -2 -p -r1.541 eval.c --- eval.c 30 Sep 2003 00:21:13 -0000 1.541 +++ eval.c 1 Oct 2003 04:08:41 -0000 @@ -5759,5 +5759,4 @@ rb_load(fname, wrap) ruby_frame->last_class = 0; ruby_frame->self = self; - PUSH_CREF(ruby_class); PUSH_SCOPE(); /* default visibility is private at loading toplevel */ -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦