[#28290] [Oniguruma] Version 4.0.0 — "K.Kosako" <sndgk393@...>
まつもとさん、
7 messages
2006/02/02
[#28296] packing small Struct — Tanaka Akira <akr@...17n.org>
しばらく前に思い付いたのですが、メモリ消費を押さえるために、
5 messages
2006/02/04
[#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
まつもと ゆきひろです
[#28347] Re: constant look up order in CVS HEAD
— Tanaka Akira <akr@...17n.org>
2006/02/20
In article <1140392909.403432.7587.nullmailer@x31.priv.netlab.jp>,
[#28348] Re: constant look up order in CVS HEAD
— Yukihiro Matsumoto <matz@...>
2006/02/20
まつもと ゆきひろです
[#28352] Re: constant look up order in CVS HEAD
— WATANABE Hirofumi <eban@...>
2006/02/20
わたなべです。
[#28360] ruby_1_8 broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
7 messages
2006/02/21
[#28371] bcc32 make error on 1.9.0 — "Nebata" <tnebata@...>
ねばたです。
8 messages
2006/02/22
[#28372] Re: bcc32 make error on 1.9.0
— KIMURA Koichi <kimura.koichi@...>
2006/02/22
木村です。
[#28386] test/drb/drbtest.rb cause file missing error — arton <artonx@...>
artonです。
6 messages
2006/02/23
[#28389] Re: test/drb/drbtest.rb cause file missing error
— Yukihiro Matsumoto <matz@...>
2006/02/24
まつもと ゆきひろです
[#28396] ruby-1.8 cvs head and 64bit time_t — arton <artonx@...>
artonです。
7 messages
2006/02/26
[#28404] irb cannot parse /\^/ — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
8 messages
2006/02/27
[#28405] Re: irb cannot parse /\^/
— keiju@... (石塚圭樹)
2006/02/27
けいじゅ@いしつかです.
[ruby-dev:28337] constant look up order in CVS HEAD
From:
Yukihiro Matsumoto <matz@...>
Date:
2006-02-18 02:18:40 UTC
List:
ruby-dev #28337
まつもと ゆきひろです
[yarv-dev:912]からの転送です。
夕べのCVS HEADから定数の参照順序が変わりました。定数名が極端
に重複していない限り、あまり問題が起きることがないと思います。
問題が起きるのはもともとどの定数が参照されるか曖昧だった「危
険な」プログラムだと思います。
なにか不具合があったら教えて下さい。
---
From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Fri, 17 Feb 2006 17:49:32 +0900
Subject: [yarv-dev:912] Re: cref with include module
まつもと ゆきひろです
遅れた対応ですが。
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:
|module M
| class C
| end
|end
|
|class C
| include M
| p C
|end
|
|は M::C を出力しますが、
|
|module M
| class C
| end
|end
|
|module Foo
| class C
| include M
| p C
| end
|end
|
|は Foo::C を出力します。
|
| これは、「一個上」がObjectだったとき、見ないという仕様によりますが、こ
|れは Object まで見ちゃってもいいように思うんですが、どうでしょうか。YARV
|ではObjectまで見るので、前の例では::Cを出力します。
これは以前からの懸念であった定数の参照順序によるものです。で、
現在の順序は
自クラス→外側のクラス(トップレベルを除く)→スーパークラス
の順です。ですから、上の二番目の例では外側にいるFooの方が
includeされてスーパークラス扱いのMよりも先に参照されちゃうの
で、Foo::Cが見えます。で、今日のパッチで1.9では
自クラス→スーパークラス(Objectを除く)
→外側のクラス(トップを除く)→Object
になりますので、両方ともM::Cを返すようになります。単純化しよ
うと思ったけど、結局前より複雑になってしまいました。でも、外
側にあるクラスやモジュールの定数の優先度が高すぎるという問題
は解決しました。本当は、ルールを単純にするため
* スーパークラスをObjectまで参照してから外側を見る
* 外側のクラスは一階層しか見ない
とかを考えたのですが、実際にやってみるといろいろと不都合があっ
て上のようなルールになりました。とりあえず、今までのプログラ
ムのほとんどは動作するようです。まあ、定数の名称重複なんて滅
多にないでしょうし、あまり大きな影響はないのかも。
まつもと ゆきひろ /:|)