[#352] ruby 1.1a5 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

38 messages 1997/09/01
[#353] Re: ruby 1.1a5 released — keiju@... (石塚圭樹 ) 1997/09/01

[#354] Re: ruby 1.1a5 released — matz@... (Yukihiro Matsumoto) 1997/09/01

まつもと ゆきひろです

[#356] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/01

まつもと ゆきひろです

[#357] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/01

けいじゅ@日本ラショナルソフトウェアです.

[#359] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#363] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#374] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#376] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/02

けいじゅ@日本ラショナルソフトウェアです.

[#382] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#390] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/03

けいじゅ@日本ラショナルソフトウェアです.

[#391] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/03

まつもと ゆきひろです

[#441] How to report a bug — takagi@... (TAKAGI Hiromitsu)

Bus error が出ました。

15 messages 1997/09/09

[#461] [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...>

助田です

27 messages 1997/09/11
[#462] Re: [Q] ruby-socket(mswin32) — matz@... (Yukihiro Matsumoto) 1997/09/11

まつもと ゆきひろです

[#463] Re: [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...> 1997/09/11

助田です

[#464] Re: [Q] ruby-socket(mswin32) — matz@... (Yukihiro Matsumoto) 1997/09/11

まつもと ゆきひろです

[#467] Re: [Q] ruby-socket(mswin32) — WATANABE Hirofumi <watanabe@...> 1997/09/11

わたなべです.

[#594] BUG?(marshal) — Masaki Suketa <suke@...>

以下のプログラムを実行した時に(3)と(4)で出力結果が違います。

17 messages 1997/09/30

[ruby-dev:370] Re: methods [Re: ruby 1.1a5 released]

From: keiju@... (石塚圭樹 )
Date: 1997-09-02 04:17:11 UTC
List: ruby-dev #370
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :00363 ] the message: "[ruby-dev:363] Re: methods [Re:
ruby 1.1a5 released] ", on Sep/02 12:03(JST) matz@netlab.co.jp
(Yukihiro Matsumoto) writes:

>まつもと ゆきひろです

>議論の口火として,今までをまとめると
>
>  * どのようなメソッド定義されているかを知りたい
>
>という要求があったので,Module#instance_methodsと
>Object#methodsを用意しようという話になりました.

そうですね.

>さて,メソッド名を知りたい時には「どのクラスで」定義されてい
>るかどうかも知りたいというニーズは理解できます.そこで,現状
>では
>
>  Module#instance_methodsではそのクラスで定義されているメソッ
>  ド(引数を指定するとそのクラスのインスタンスが解釈するすべ
>  てのメソッド)の名称リストを返します.
>
>  Object#methodsではそのオブジェクトの特異メソッドと,そのオ
>  ブジェクトのクラス(Object#type)で定義されているメソッド名
>  を返します.
>
>という仕様になっています.どうも,これでは足りないようなので
>すが,どう足りないのか,ということについて議論したいです.あ
>るオブジェクトの特異メソッドを返すメソッド(あるいはオプショ
>ン)があればそれで済む問題なんですか?

少なくともそれは欲しいですね. あと, 

* オブジェクトのプライベートな特異メソッドを返す関数

も欲しいですね. 

あと, もしやって頂けるなら, 

* その(クラスのインスタンス|オブジェクト)が分かるメソッドとそれが実際
  にどのクラスで定義されているかの組みを返してくれるメソッド

があるとベストですが, methods関連メソッド群とancestorsがあれば作ること
ができますので, 無理はいいません.


あと, 良く考えたら定数の問題がありました. そのクラスから参照できる定数
やそこで定義されている定数は分かるのですが, その定数がどこで定義されて
いるかが分からないんですよね. 

* ancestorsに相当する, 定数の参照パスを返すメソッド
* か, 静的スコープのパス(これは分かるのかな? 文字列ベースだけど)

が必要ですね. 後者は優先順位の判断はこちらで行うことになるので若干面倒
ですが, ancestorsの機能と重複していないのでその方が良いかも...

ここまでの機能があれば, あるクラスを指定して, そこで利用できるメソッド
/クラスメソッド/定数がどこで定義されているか分かるようになると思います.


つぎに, 将来的なことも考えて, クラスのブラウジングツールを作るという視
点から見ると,

* あるクラスから直接includeしているモジュールを調べるメソッド(優先度順)
* あるクラスのサブクラス群を取り出すメソッド

は欲しいですね. 後者はスーパクラスが分かるのでそういう情報を作ることは
できなくもないですが, 前者は今のところ無理ですよね.

これらがあれば, MLFレベルで完全なクラスツリーの再現と, どこにメソッド, 
クラス(特異)メソッド, 定数があるかを再現できるようになりますね.


あと, さらに要望を述べるなら, メソッド内部の情報になっていくと思います.

* 定義されているクラス
* メソッド名
* 引数の数
* 使用しているインスタンス変数の一覧
* 使用している定数の一覧
* ローカル変数(およびプライベート呼びだしメソッド)の一覧
* 呼び出しているメソッド名の一覧

でも, ここまでは大変でしょ?

# 何だかんだいって要望が増えたなあ...

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---

In This Thread