なかだです。 At Sun, 22 Sep 2002 21:08:59 +0900, Yukihiro Matsumoto wrote: > コミットしてください。で、call_trace_funcの中で > ruby_in_compileを見た方が良いですか? 入れました。 ところでruby_in_compileで思い出しましたが、1.7では組み込みクラ スの生成にもallocateが呼ばれるため、パーサの最中にもスレッドが スイッチする可能性があり、パーサの再入性が問題になる可能性があ ります。 class << String alias_method(:__allocate__, :allocate) def allocate(*args) s = __allocate__(*args) c = @allocate_hook @allocate_hook = nil c.call if c s end def allocate_hook(&block) @allocate_hook = block end end x = 0 s = "p x" String.allocate_hook do p __FILE__ # eval("x = 1") # コメントアウトを外すと end eval(s) # syntax errorが起きる ruby_in_compileをロックに使おうかと思ったんですが、その前に組み 込みMutexが必要になりそうなので後回しにしました。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦