[#47383] [ruby-trunk - Feature #8469][Open] ABI checker とか導入しませんか — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>
21 messages
2013/06/01
[#47492] [ruby-trunk - Feature #8469][Closed] ABI checker とか導入しませんか
— "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>
2013/07/08
[#47493] Re: [ruby-trunk - Feature #8469][Closed] ABI checker とか導入しませんか
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/07/09
2013/7/8 kosaki (Motohiro KOSAKI) <kosaki.motohiro@gmail.com>:
[#47495] Re: [ruby-trunk - Feature #8469][Closed] ABI checker とか導入しませんか
— Tanaka Akira <akr@...>
2013/07/09
2013年7月9日 9:11 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#47394] [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— "usa (Usaku NAKAMURA)" <usa@...>
2013/06/04
[#47395] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/06/04
> CIに組み込んでもらえるとちょー助かる感じですぅ
[#47396] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— Tanaka Akira <akr@...>
2013/06/04
2013年6月4日 14:23 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#47397] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/06/04
>> CI って誰に相談すればいいんですかね。今のツールだと比較対象のバイナリまたは
[#47399] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— Tanaka Akira <akr@...>
2013/06/05
2013年6月4日 15:26 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#47402] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/06/05
>>> 比較対象を用意しないといけないのが面倒くさそうでほったらかしてたんですが。
[#47405] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— Tanaka Akira <akr@...>
2013/06/06
2013年6月6日 3:29 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#47406] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/06/06
2013/6/6 Tanaka Akira <akr@fsij.org>:
[#47413] [ruby-trunk - Feature #8509][Open] Use 128 bit integer type in Bignum — "akr (Akira Tanaka)" <akr@...>
5 messages
2013/06/10
[#47420] [ruby-trunk - Bug #8524][Open] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない — "ngoto (Naohisa Goto)" <ngotogenome@...>
4 messages
2013/06/13
[#47422] [ruby-trunk - Feature #8526][Open] Removing tk from Ruby repository — "naruse (Yui NARUSE)" <naruse@...>
26 messages
2013/06/14
[ruby-dev:47393] [ruby-trunk - Bug #8484][Assigned] Restoring conditions through the ruby method call during VM processing
From:
"naruse (Yui NARUSE)" <naruse@...>
Date:
2013-06-04 03:33:16 UTC
List:
ruby-dev #47393
Issue #8484 has been reported by naruse (Yui NARUSE).
----------------------------------------
Bug #8484: Restoring conditions through the ruby method call during VM processing
https://bugs.ruby-lang.org/issues/8484
Author: naruse (Yui NARUSE)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: YARV
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-06-03 trunk 41049) [x86_64-freebsd9.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
r41041 で、ブロック呼び出し前の VM 内の処理中に Ruby のメソッドが何らかの理由で呼ばれると argv が壊れるという問題を直しました。
具体的には、
y = Object.new
def y.s(a)
yield(a)
end
m = Object.new
def m.method_missing(*a)
super
end
assert_equal [m, nil], y.s(m){|a,b|[a,b]}
のようなコードの場合、
* y.s に m と block が渡される
* y.s で yield(a) が呼ばれる
* argvが設定される
* vm_invoke_block 内の VALUE * const rsp = GET_SP() - ci->argc; SET_SP(rsp); で argv の先頭に sp が設定される
* vm_yield_setup_args
* vm_yield_setup_block_args
* y.s のブロックパラメータは2つなのに、引数は一つなので、a.to_ary が呼ばれる (rb_check_array_type(arg0))
* method_missing が呼ばれる
* super が呼ばれる (このへんで vm _push_frame が呼ばれる)
* vm_push_frameのinitialize local variablesのところでargvにnilが代入されて破壊される
で、これ自体は argv を対比しておいて戻せばよいです。
また、SET_SP(rsp)のあたりは、ささださん曰く「 argv に書き込みがない、という前提でそこは作ってるんだよね」だそうな。
しかし、「そんな前提わかるかっ」ですし、
methodの方は SAVE_RESTORE_CI(tmp = rb_check_convert_type(ary, T_ARRAY, "Array", "to_a"), ci); ともうちょっとわかりやすく書いてあるので、
「頂いた問題点を元に、一度全部総点検が必要そうです」とのことですので、お願いします。
--
http://bugs.ruby-lang.org/