[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 <----