On Thu, 29 Jan 2004 00:33:55 +0900 In article <20040129002945.3BCD.MATUNAMI / matunami.net> [[ruby-ext:02265] 組み込みRubyの再初期化] まつなみ <matunami / matunami.net> wrote: > Rubyを自分のWindowsアプリケーションに組み込もうと考えています。 > > 実行したいRubyのプログラムを各行を > > rb_protect(...) > > で実行しております。一度実行した跡に、再度別のRubyのプログラムを > 各行実行すると当然以前の評価したものが残ってしまいます。一度実行した後に > 終了するために、ruby_finalizeではスレッドが残ってしまいますし、 > 終了されても困るので、rb_exitを呼ぶわけにも参りません。 > > そこで、rb_load_protect で行えば問題ないのですが、Rubyの > プログラムを一行一行ステップ実行を行うことができません。 > そこで再初期化する方法はあるのでしょうか? また別の方法があるのでしょうか? 現在の Ruby の実装は組み込みに関してあまり良くないので,いろいろ と汚い手を使う必要があります。時には ruby-dev に仕様変更の提案も します。私が ruby-dev に出した提案の殆どはこれのため (^^; Rite (Ruby2.0) では組み込み環境の改善が目標の一つになっているの で,どんどん組み込み時の問題点を見つけると良いと思います。 > Rubyを組み込んだアプリケーションでRubyのプログラムを各行デバッガのように > 評価したい場合はどのようにするのがいいのでしょうか? SCRIPT_LINES__ と set_trace_func を使うのではないでしょうか。 see debug.rb ―[ Tietew ]―――――――――――――――――――――――――― メ : tietew / tietew.net / tietew / raug.net / tietew / masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA