まつもと ゆきひろです

In message "[ruby-list:17426] Re: command line option -e WITHOUT temporary file"
    on 99/10/05, nobu.nakada / nifty.ne.jp <nobu.nakada / nifty.ne.jp> writes:

|> ぐはぁ. unlink をもうちょっと遅らせないとまずいですね.
|> 使えなくても文句は出なかったわけで rb_compile_string でいいわけか.

ですねえ。

|  じゃあ、いっそのこと(謎)↓。なんだかいきなり $0.SOURCE とか怪し
|げなものを作ってますが。あとは、(cmdline) というスクリプトファイ
|ルがあるとややこしいかも。

うむむ、ちょっと悩んだ挙げ句、あちこち直してしまいました。

  * call_trace_funcを変更してruby_sourcefileが0でもSEGVしな
    いように。

  * 定数 LINE__ が定義されていて、Hashであればそのファイルに
    ロードしたソースファイルを保存するように。

  * debug.rb, tracer.rbをLINE__を使うように変更。

  * -r で require したライブラリはスクリプトをコンパイルする
    前に実行する。

  * -sの処理を-rのプログラムを実行する前と、スクリプトを実行
    する前の2回行う(#!行に -s が指定された場合のため)。

などなどを修正しました。かなり修正の規模が大きいので、金曜に
職場に顔出してから、check inします。

これらの修正の結果、以下の点が変わります。

  * 一時ファイルを使わなくなった。

  * -eでもデバッガがプログラムを表示するようになった。

  * ロードするだけでファイルがメモリに読み込まれる。

  * スクリプトの #!行に -s が指定されても、-rでロードされる
    プログラムの実行中にはまだ処理されない。

しばらく使ってみて様子を見ようと思います。

                                まつもと ゆきひろ /:|)