From: Kenta MURATA Date: 2003-10-31T10:31:25+09:00 Subject: [ruby-dev:21794] ruby-1.8.1-preview2 での rb_iter_break むらけんです. ruby-1.8.0 では動作していた拡張ライブラリが ruby-1.8.1-preview2 では例 外を投げるようになってしまいました.簡略化したコードを以下に示します. #include static VALUE ahi_ahi(VALUE obj) { rb_yield(Qnil); } static VALUE ahi_abort(VALUE obj) { rb_iter_break(); } void Init_ahi(void) { VALUE cAhi = rb_define_class("Ahi", rb_cObject); rb_define_method(cAhi, "ahi", ahi_ahi, 0); rb_define_method(cAhi, "abort", ahi_abort, 0); } この拡張モジュール (ahi.so とする) を以下のように用いると $ ruby -rahi -e "a = Ahi.new; a.ahi { a.abort }" -e:1:in `abort': unexpected break (LocalJumpError) from -e:1 from -e:1:in `ahi' from -e:1 となってしまいます.ruby-1.8.0 では break されていました. どのように解決すれば良いでしょうか? -- 1024D/2A3FDBE6 2001-08-26 Kenta MURATA (muraken) Key fingerprint = 622A 61D3 280F 4991 4833 5724 8E2D C5E1 2A3F DBE6