From: Masaki Suketa Date: 2000-07-08T11:16:53+09:00 Subject: [ruby-dev:10265] Re: errorsource, errorline 助田です。みんな悩みは同じ。:-) In message "[ruby-dev:10260] errorsource, errorline" on 00/07/07, Kazuhiro Yoshida writes: > * 定数が残る > * require の効果が持続 > * include の効果が持続 > といったことも,戻しようがないですよね。アプリケーションを終了 > させる以外に方法がない。 RubyUnitでは、require は、 int state = 0; rb_eval_string_protect( "$\".delete_if{|x| /\\.rb$/=~ x && /^irb/!~ x}", &state); としてrequireの効果を消してます。(rbファイルの方だけ) # 要は $\ を初期化しているだけです。 ですが、この方法はライブラリによってはまずいみたいです。 例えば、irbは再度requireすると動きがおかしくなりました。 このため、とりあえず、irbのライブラリだけは$/のリストか ら消さないようにして逃げてます。 > これが,例えば,もういちど ruby_init を呼べば最初に ruby_init > を呼んだときとまったく同じ状態になれば,うれしいです。 私も。 助田 雅紀