[#46908] [ruby-trunk - Bug #7774][Assigned] IFUNC上のbinding呼び出しでSEGV — "ktsj (Kazuki Tsujimoto)" <kazuki@...>

16 messages 2013/02/03

[#47075] [ruby-trunk - Bug #7924][Open] r39232 以降 net/http で正しく reponse を取得出来ないケースがある — "hsbt (Hiroshi SHIBATA)" <shibata.hiroshi@...>

15 messages 2013/02/23

[ruby-dev:47053] Re: [ruby-trunk - Bug #7878] E::Lazy#grep ignores ^C

From: SASADA Koichi <ko1@...>
Date: 2013-02-19 19:12:12 UTC
List: ruby-dev #47053
(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


In This Thread

Prev Next