From: GOTOU Yuuzou Date: 2006-02-20T04:18:58+09:00 Subject: [ruby-dev:28341] Re: constant look up order in CVS HEAD In message <87lkw8xfay.fsf@m17n.org>, `Tanaka Akira ' wrote: > In article <1140229116.805371.31930.nullmailer@x31.priv.netlab.jp>, > Yukihiro Matsumoto writes: > > 夕べのCVS HEADから定数の参照順序が変わりました。定数名が極端 > > に重複していない限り、あまり問題が起きることがないと思います。 > > 問題が起きるのはもともとどの定数が参照されるか曖昧だった「危 > > 険な」プログラムだと思います。 > > > > なにか不具合があったら教えて下さい。 > > とりあえず、test-all が > /home/akr/chkbuild/tmp/build/ruby-trunk/20060219T004503/lib/ruby/1.9/webrick/httpservlet/cgihandler.rb:23: uninitialized constant Config::LIBDIR (NameError) > として失敗しています。 例えば、 module M class Config end class C p Config end end という場合にrbconfigをロードするかどうかによって動作が変るよ うになったのですね。変更前と比べると、他のライブラリの影響を より受けやすく、また、この影響は一緒に使ってみるまで分からな いためテストでは発見しにくいような気がします。 yarv-devのログでは分からなかったのですが、笹田さんの、 In message "Re: [yarv-dev:797] Re: cref with include module" on Thu, 02 Feb 2006 04:27:00 +0900, SASADA Koichi writes: | これは、「一個上」がObjectだったとき、見ないという仕様によりますが、こ |れは Object まで見ちゃってもいいように思うんですが、どうでしょうか。YARV |ではObjectまで見るので、前の例では::Cを出力します。 という案はよくないのでしょうか。 -- ごとうゆうぞう