るびべん です:

On Thu, 14 Mar 2002 02:11:23 +0900
Nakamura Akifumi <BXQ04723 / nifty.ne.jp> さん wrote:
> うーん。詫びる必要は無いと思いますよ。
> 「議論が」混乱することは悪いことじゃないと思うので。
> 混乱したなら更に議論すればいいのだから(^^;

賛成です。

===

ちょっと出番が遅かったので議論が終わってしまったようですが、元ネタを書か
れた方と同様の悩みが結構あったりします。

私なんかのアマグラマレベルでも、最近は、
デバッグしやすいように、XPっぽく(さすがにRubyUnitまでは使いませんが)
書くようにしてまして、ベタで済むよなやつでも、Class Main/def main とか
立てて、主スレッドでは、

   main=Main.new
   main.main(ループするようなスクリプト)

とか書くよにして、別のスレッドで、

 DRb.start_service('druby://localhost:5963', MyDebug.new)
 DRb.thread.join

とかして、mydebugと通信しながらデバッグしていくと、割と手間がかからずに
暴走したときに殺したりとか楽できます。

でもって、一体どこでループしちゃってるのか?というか、今現在の時点でのい
くつかのカウンタの値を外部から知りたい、、というのが悩みの種で元ネタの方
と同じです。

要はスコープの問題なんだから、
Class Main のほうで、グローバル変数使いまくりにして、外から読めるように
すりゃいんですが、そうすると、(プログラムが完成して)カプセル化したとき
に別の動作したりして(アマグラマの場合、無計画に count だの、iだのjだの
ありきたりの識別名、結構カブって作ったりする)、何やってんだか・・・

なので、インタープリタのほうで、デバッグモードとして、スコープ違反で
peepingできるようにしてもらえれば・・・・

===
と思ったけど、そうすると、デバッグモードを外したとき別の動作になっちゃい
ますね。ははは。何書いてるんだかわからなくなっちゃいました。

#自爆プログラムというよりはデバッガの話と考えたほうが良いですね。


るびべん。