[ruby-list:545] Re: meta-level features(Re: bug? and question)

From:
Date: 1996-09-20 08:03:47 UTC
List: ruby-list #545
けいじゅ@SHLジャパンです. 

In [ruby-list :00532 ] the message: "[ruby-list:532] Re: meta-level features(Re: bug? and question) ", on Sep/18 15:26(JST) 
matz@caelum.co.jp (Yukihiro Matsumoto)  writes: 

>あちこちで宣伝したのでこのMLの参加者が急増しています.
>話が分からない人はどんどん質問してくださいませ.
>
>難しすぎます.普通の人はほとんどついていけないレベルになって
>ますよ.

うぅ. すいません(^^;;;

でも. 話しは続きます. 御了承下さい.

>ぜんぜん終わっていません.lib/safe.rbを見てもらうと分かるの
>ですが,とりあえず危なそうなクラスと関数を潰してるだけです.
>また,現在のsafe.rbは一度safe modeに入ると戻れませんから(そ
>れはそれで望ましい性質なのですが),うかつに使えないという欠
>点があります.

どれどれ... うーん. ファイルとか一切使えなくなってしまうんですね. でも, 
既に割り当てられている $stdout は使えると... で, 以前話していた 
obj.typeの話しにつながっていくわけですね.

$stdout.typeでクラスのオブジェクトが取り出すことができると困ってしまい
ますものね.

>Pythonのrexecのような形にした方が良いのかも知れませんが,そ
>うなるとrubyではまだ検討されていないname spaceの操作のあたり
>をはっきりさせないといけないようですね.
>
>Pythonのrexecはrshを実行する…わけではなくて,ある範囲のオブ
>ジェクトにアクセスできない状態で evalするものです.

ああ. だから, rexecなんですね. プロセス空間が別々になっているイメージ
ですね.

ObjectSpace(ObList)がそういう役割を持つことになるんですかね.  そうする
と, ObjectSpaceはモジュールでなくてクラスになりますが...

>全オブジェクトにアクセスしてそのクラス/モジュールの kind_of?
>で比較してフィルタリングしています.なんて乱暴な.

それでいいんじゃないですか? 逆に, モジュールからそれをインクルードして
いるオブジェクトへのポインタがある方が恐いです(^^;;;

>  eval "defined? obj."+method
>などという手を使います.え? 卑怯?

うーん. 長い間考え込んでしまった. defined?はnlambdaだからですね. 

# 実際は文法ですが.

>Kernel#respond_to?(mid[, priv])を復活させましょうか.

確かに, defined?はちょっと使いづらいですね... 

>アンロード…あまりやりたくないなあ….

rubyでは追加は楽ですが, 削除は面倒ですね. でも, インスタンス変数のスロッ
トが残っているのを無視すれば, 中間クラスを削除するだけですみますね. イ
ンスタンス変数のスロットの削除を行うのは, かなりの改造が必要そうですね
(^^;;

この機能は, デバッガとかで動的にクラス定義を変えることができるためには
必要なんですよね. デバック中であるということでインスタンス変数が残って
しまうのはあきらめてもらうというのでも良いかも...

>まあ,理屈はそうですけどね.でも中にはsetterしか持たないもの
>もあるし,getterしかないものもあるし,あまりアクセスメソッド
>と言う言葉にこだわるひつようはないとおもいますけどね.

まあ, それもそうですね. 必要ならば, 簡単に作れますしね.

>|>|1. デバッガ. 

>あー,たんなる表現の問題です.emacsを思い出してください.難
>しいこと(遅いこと,重いこと)をCで書いて残りはelispで書いてあ
>るでしょう?

ええ. いいたいことは分かりますって(^^;;; 

>これは STkからもらってきました.結構便利ですよ.

いや. 使ってみて感動したことは確かですけどね. 

トレース機能, つまり, 1ステップ実行するとprocを実行する機能なんかもあ
ると嬉しいですね. まあ, デバッガができればあまり必要ない機能になります
が...

>認めます.なにか考えましょう.

お願いします.

>|>|2. 動的クラス生成. 

>|DoesNotRecognizeって何ですか? もしかして, subclassResponsibilty(?)のこ
>|と? それとも doesNotUnderstand(?)のことかしら?
>doesNotUnderstandでしたか?

ああ. いわんとしたことが分かりました. でも, それってインチキだと思うん
ですけど...

>ううう.作る方は確かにその方が楽でしょうけど,そういうAPIを
>作る身にもなってくださいよぉ.evalで済むことはevalでやって欲
>しいなあ.

rubyはオブジェクトの構造に関しては, 非常に動的だけども関数(の中身に)関
しては, 比較的静的なので, 構文の構造のアクセスまで要求するのはとりあえ
ずやめましょう. でも, オブジェクト構造の方はお願いしますね.

># ただでさえ,設計,プログラム,デバッグ,議論,ドキュメント
># 書き(日・英)とひとりでなんでもやらなくちゃいけないのに….
># 愚痴モードになってしまった.

まあまあ. それがいいんじゃないですか? 一人でやり遂げるということね
(^^;;;

>まあ,この点に関しては賛成します.問題はどういうAPIとどうい
>う実装にするかですよね.できれば現状に大きな変更を加えないも
>のが良いなあ.

それはそうですね. 

>むむむ,rubyの場合プログラミング環境と実行環境は分離していた
>方が良いのではないかという気がしています.

でも, Smalltalkやemacsと逆になっているんだからいいじゃないですか? 実行
環境の中にプログラミング環境がある. 面白いと思うんだけどなあ.

__
.....................................石塚 圭樹@事開事.三井造船(株)...
------------->アドレス変わりました!! e-mail: keiju@csg.mes.co.jp <----



__
..........................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----

In This Thread

Prev Next