From: matz@... (Yukihiro Matsumoto) Date: 2002-10-03T17:36:00+09:00 Subject: [ruby-dev:18446] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. まつもと ゆきひろです In message "[ruby-dev:18445] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here." on 02/10/03, nobu.nakada@nifty.ne.jp writes: |> |たしかPUSH_ITER(ITER_CUR)してなくてできないので、rb_proc_new() |> |が必要だったような気がするのですが。 |> | |> | *(q->result) = rb_funcall(rb_iterate(rb_f_lambda, 0, ivq_safelevel_handler, |> | Data_Wrap_Struct(rb_cData,0,0,q)), |> | rb_intern("call"), 0); |> |> あれえ、できなかったっけか。 | |ように思うんですが。そもそもこのivq_safelevel_handlerがどういう |ときに呼ばれるかよく分かってなくてテストしてないんですが、こう |いうサンプルではエラーになります。 そうみたいですね。中田さんのパッチのほうにしましょうか。 |$ ruby-1.6 -v -rlambda -e0 |ruby-1.6: tried to create Proc object without a block (ArgumentError) |ruby 1.6.8 (2002-10-02) [i686-linux] | |うーん、拡張ライブラリで例外が起きたときのファイル名がおかしい…。 初期化の途中では__FILE__がargv[0]になっているせいでしょうね。 -rでの拡張モジュールのロード中ではこれがせいいぱいではないか と。 で、このパッチは具体的になにを修正するもんなんですかね。