[#1185] ruby on Macintosh — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...>
みなさまはじめまして。藤本と申します。1ヵ月くらい前にDBMのことで
6 messages
1998/01/02
[#1193] SHA module — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです
5 messages
1998/01/05
[#1194] html check — masaki.suketa@...
助田です。
5 messages
1998/01/05
[#1215] var arg method — Kikutani Makoto <kikutani@...>
きくたにです。
10 messages
1998/01/06
[#1216] Re: var arg method
— matz@... (Yukihiro Matsumoto)
1998/01/06
まつもと ゆきひろです
[#1218] Re: var arg method
— Kikutani Makoto <kikutani@...>
1998/01/06
きくたにです。説明不足ですみません。
[#1235] RE: ruby on Macintosh — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-dev:1185] ruby on Macintosh
8 messages
1998/01/07
[#1249] Ruby/Gtk — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
5 messages
1998/01/08
[#1273] install *.rb to lib/ — Kikutani Makoto <kikutani@...>
rubyのmake installのとき、tcltklibのように、*.so 以外に *.rb を
7 messages
1998/01/11
[#1283] slanglib — Kikutani Makoto <kikutani@...>
きくたにです。
13 messages
1998/01/13
[#1285] Re: slanglib
— WATANABE Hirofumi <watanabe@...>
1998/01/14
わたなべです.
[#1303] tk update — Kikutani Makoto <kikutani@...>
Tkでupdateコマンドを使う必要が生じたのですが、できないようですね。
6 messages
1998/01/21
[#1320] [MethodIndex] Bug and question — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
32 messages
1998/01/23
[#1321] Re: [MethodIndex] Bug and question
— matz@... (Yukihiro Matsumoto)
1998/01/23
まつもと ゆきひろです
[#1323] Re: [MethodIndex] Bug and question
— keiju@... (Keiju ISHITSUKA)
1998/01/23
けいじゅ@日本ラショナルソフトウェアです.
[#1332] Re: [MethodIndex] Bug and question
— keiju@... (Keiju ISHITSUKA)
1998/01/27
けいじゅ@日本ラショナルソフトウェアです.
[#1333] Re: [MethodIndex] Bug and question
— matz@... (Yukihiro Matsumoto)
1998/01/27
まつもと ゆきひろです
[#1334] Re: [MethodIndex] Bug and question
— keiju@... (石塚圭樹 )
1998/01/27
けいじゅ@日本ラショナルソフトウェアです.
[#1351] Re: [MethodIndex] Bug and question
— keiju@... (石塚圭樹 )
1998/01/29
けいじゅ@日本ラショナルソフトウェアです.
[#1353] Re: [MethodIndex] Bug and question
— matz@... (Yukihiro Matsumoto)
1998/01/29
まつもと ゆきひろです
[#1354] Re: [MethodIndex] Bug and question
— keiju@... (石塚圭樹 )
1998/01/29
けいじゅ@日本ラショナルソフトウェアです.
[#1355] Re: [MethodIndex] Bug and question
— matz@... (Yukihiro Matsumoto)
1998/01/30
まつもと ゆきひろです
[#1358] Re: [MethodIndex] Bug and question
— keiju@... (石塚圭樹 )
1998/01/30
けいじゅ@日本ラショナルソフトウェアです.
[#1359] Re: [MethodIndex] Bug and question
— matz@... (Yukihiro Matsumoto)
1998/01/30
まつもと ゆきひろです
[#1363] Re: [MethodIndex] Bug and question
— matz@... (Yukihiro Matsumoto)
1998/02/02
まつもと ゆきひろです
[#1364] Re: [MethodIndex] Bug and question
— keiju@... (Keiju ISHITSUKA)
1998/02/02
けいじゅ@日本ラショナルソフトウェアです.
[#1339] パースエラー等の嵐をDos窓で受けるには...? — Masao Kanemitsu <masao-k@...>
4 messages
1998/01/29
[#1344] ruby-1.1b6 and rbc — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
5 messages
1998/01/29
[ruby-dev:1358] Re: [MethodIndex] Bug and question
From:
keiju@... (石塚圭樹 )
Date:
1998-01-30 08:59:10 UTC
List:
ruby-dev #1358
けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :01355 ] the message: "[ruby-dev:1355] Re: [MethodIndex] Bug and question ", on Jan/30 13:46(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです 話の楽な順にソートします. >しかし,メソッドインデックスを実装する上で上記のモデルや現在 >の実装に不都合があるということでしたら,メタレベルの機能の提 >案者は石塚さんですから,相談に乗ります. というせんで話を進めさせてもらいます. > 次に,「class <<obj; .. end」という構文ですが,これの仕様 (中略) > りもともとのクラスのインスタンスであることには変わりないと > 考えているので. > > obj.instance_of?(class) > > の定義は > > obj.type == class > > であり,それ以上のものではありません. > >で, うーむ. それもそうですね. これは納得しました. >|>|4.3 つぎに, incetance_of?に関する質問ですが. > >これらはおかしいと思いますが,1.1b5でも前者はtrueが返ります >し,今回のパッチで後者もtrueを返すようになったと思います. そうでした. 昔のバージョンを実行していたみたいです. おさがわせしました (__;; ここからが問題ですが. >|``class << Bar; ancestors; end ''の結果が >|不満なんです. やはり: >| >| Barの特異クラス < Fooの特異クラス < Bazの特異クラス <Objectの特異クラス < >| Class < Module < Object < Kernel >| >|となって欲しいんですが... >| >|# MethodIndexはこうなっていることを前提として実装してしまいました(;_; > >むむう.まず特異クラスの意味について考えましょう.いわばモデ >ルですね. > > まず,現在のRubyの実装では各オブジェクト毎に名前のないクラ > スが付随していますが,これは言語仕様に含まれていません.で > すから,ancestersに特異クラスが含まれることはありえません. うーむ. 言語仕様にないのでそのオブジェクトが出てはおかしいというのは, 理解できます. しかしですね. 実際に, Barのクラスメソッド < Fooのクラスメソッド < Barのクラスメソッド <Objectの特異クラスのクラスメソッド < Class < Module < Object < Kernel の順番に継承していることは事実ですから, それが実際に明らかになるAPIが 欲しいんですよね. でも, 特異クラスを表に出さないとなるともっと別な方法が必要ですね. 気分的には特異メソッドの継承系列を出力するAPIがあれば良いんだと思いま す. Object#singleton_method_ancestors or Object#singleton_ancestors まあ, 一般のObjectではあまりいみがないことが多いので, Moduleに限定して Module#singleton_method_ancestors or Module#singleton_ancestors でも, いいですが で, 問題はこれで何を返すかですが... 通常はクラスそのものを返す仕様で良 いのではと思います: class Foo; end class Bar < Foo; end Foo.singleton_method_ancesotrs -- [Foo, Object, (Class, Module, Object, Kernelのインスタンスメソッド)] Bar.singleton_method_ancesotrs -- [Bar, Foo, Object, (Class, Module, Object, Kernelのインスタンスメソッド)] が... 実際にはClass/Module...のインスタンスメソッドも継承することがあ るので, そのへんをどうやって表すかですね... それに, extendしてある場合 もありますし... module Baz; end Bar.extend Baz インスタンスメソッドの場合は配列にするとして. Bar.singleton_method_ancesotrs -- [Bar, [Baz], Foo, Object, [Class], [Module], [Object], [Kernel]] って感じですか... あまりカッコ良くないな... あとは, 属性とのペアで渡すとか: Bar.singleton_method_ancesotrs -- [[Bar, :single], [Baz, :instance], ...] PS. ところで確認なんですが. rbc0> module Bar; end rbc0> class Foo rbc1> include Bar rbc1> end rbc0> class Baz < Foo rbc1> end rbc0> Baz.ancestors # 1 [Baz, Foo, Bar, Object, Kernel] rbc0> class Baz rbc1> include Bar rbc1> end Baz rbc0> Baz.ancestors # 2 [Baz, Foo, Bar, Object, Kernel] こういう結果が出るんですが, 実際にこれが仕様なんですよね? __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---