From: SASADA Koichi <ko1@...> Date: 2013-02-20T04:12:12+09:00 Subject: [ruby-dev:47053] Re: [ruby-trunk - Bug #7878] E::Lazy#grep ignores ^C (2013/02/19 21:20), mame (Yusuke Endoh) wrote: >> なぜ私が、と思ったんですが、遠藤さんいい読みですね。 > > RUBY_VM_CHECK_INTS なんだから笹田さんでしょう。 てっきり、Lazy cycle 内でなんか凄いことをやっているのかと思っておりま した。enum.c のほうに変更入れるなら私じゃないだろう、と。 > ko1 (Koichi Sasada) wrote: >> r39308 で取り急ぎ対応しました。 >> >> mameさん >> backport してもいいでしょうか。 > > RUBY_VM_CHECK_INTS したらまずいところで RUBY_VM_CHECK_INTS してしまう副作用がないかが大変気になる(具体的に心当たりがあるわけではない)のですが、大丈夫ですかね? 自信があるなら OK です。 これに関して、実は 1.9.3 に戻したというのが実情です RUBY_VM_CHECK_INTS を外して綺麗になって速くなるかな、と思ったんですが、ちょっとこの挙動(C method の繰り返しの中で rb_funcall している)を思いつかなかったので、デ グレ対応と言えるかと思います。というわけで、自信があります。 本当は、もうちょっと綺麗になりそうだな、という手段を思いついたのです が、怖いので 1.9.3 相当に戻す、という対応になっております。具体的には、 vm_call0_body() の冒頭、 th->passed_block をクリアした後に CHECK_INTS す ればよい、はず。ただし、影響が読めないので、2.1 送り。 よろしくお願いします。 -- // SASADA Koichi at atdot dot net