[#28337] constant look up order in CVS HEAD — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

15 messages 2006/02/18
[#28338] Re: constant look up order in CVS HEAD — Tanaka Akira <akr@...17n.org> 2006/02/19

In article <1140229116.805371.31930.nullmailer@x31.priv.netlab.jp>,

[#28341] Re: constant look up order in CVS HEAD — GOTOU Yuuzou <gotoyuzo@...> 2006/02/19

In message <87lkw8xfay.fsf@m17n.org>,

[#28342] Re: constant look up order in CVS HEAD — Yukihiro Matsumoto <matz@...> 2006/02/19

まつもと ゆきひろです

[ruby-dev:28341] Re: constant look up order in CVS HEAD

From: GOTOU Yuuzou <gotoyuzo@...>
Date: 2006-02-19 19:18:58 UTC
List: ruby-dev #28341
In message <87lkw8xfay.fsf@m17n.org>,
 `Tanaka Akira <akr@m17n.org>' wrote:
> In article <1140229116.805371.31930.nullmailer@x31.priv.netlab.jp>,
>   Yukihiro Matsumoto <matz@ruby-lang.org> 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 <ko1 atdot.net> writes:
| これは、「一個上」がObjectだったとき、見ないという仕様によりますが、こ
|れは Object まで見ちゃってもいいように思うんですが、どうでしょうか。YARV
|ではObjectまで見るので、前の例では::Cを出力します。

という案はよくないのでしょうか。

-- 
ごとうゆうぞう

In This Thread