From: matz@... (Yukihiro Matsumoto) Date: 2003-04-10T13:15:23+09:00 Subject: [ruby-dev:19994] Re: I quote: "Maybe IRB bug!!" まつもと ゆきひろです In message "[ruby-dev:19990] Re: I quote: "Maybe IRB bug!!"" on 03/04/10, 石塚圭樹 writes: |というか, 設定されるとirbとしては何も実行できなくなっちゃいますもの |ね. ^Dを省いて. 私のところだと、$SAFE=1ならいろいろできるんですが、$SAFE=4に するとしたとたんSecurityErrorで落ちます。でも固まったりはし ないなあ。 |以下のは意図通りの動作? | |b = proc{bind} |eval "$SAFE = 1", b |p $SAFE |#=> 1 意図通りです。これは「Procの中」ではありませんから。一方、 e = proc{|x| eval x} e.call("$SAFE=1") p $SAFE #=> 0 になります。もっとも、これは毎回リセットされちゃいますね。 p e.call("$SAFE") #=> 0 これはリセットされないようにするべきなのかなあ。現状では $SAFEの状態を保存しても動くようにしようと思ったら、Threadを 別に作るしかないみたいですね。