なかだです。

At Thu, 26 Sep 2002 00:51:59 +0900,
Yukihiro Matsumoto wrote:
> |このtcltklib.cに関するlogがないんですが、
> |1.6にはrb_proc_newはありません。
> |
> |tcltklib.o(.text+0x1a29):tcltklib.c: undefined reference to `rb_proc_new'
> 
> むう、修正しておきます。

Method#callでも$SAFEが独立してるのも仕様ってことでいいんでしょ
うか。

> |LinuxでもDLDFLAGSに-Wl,--no-undefinedを追加すべき?
> 
> -lrubyが必要になりますね。

LIBRUBYARGに-l$(RUBY_INSTALL_NAME)があるので大丈夫そうな。
DLDFLAGS=-Wl,-z,defs configureと指定してますが、問題はないです。


Index: tcltklib.c =================================================================== RCS file: /cvs/ruby/src/ruby/ext/tcltklib/tcltklib.c,v retrieving revision 1.6.2.3 diff -u -2 -p -r1.6.2.3 tcltklib.c --- tcltklib.c 25 Sep 2002 07:07:41 -0000 1.6.2.3 +++ tcltklib.c 25 Sep 2002 16:19:43 -0000 @@ -696,6 +696,5 @@ ip_invoke_real(argc, argv, obj) VALUE -ivq_safelevel_handler(arg, ivq) - VALUE arg; +ivq_safelevel_handler(ivq) VALUE ivq; { @@ -730,6 +729,7 @@ invoke_queue_handler(evPtr, flags) /* check safe-level */ if (rb_safe_level() != q->safe_level) { - *(q->result) = rb_funcall(rb_proc_new(ivq_safelevel_handler, - Data_Wrap_Struct(rb_cData,0,0,q)), + VALUE v = Data_Wrap_Struct(rb_cData,0,0,q); + rb_define_singleton_method(v, "handler", ivq_safelevel_handler, 0); + *(q->result) = rb_funcall(rb_funcall(v, rb_intern("method"), 1, rb_intern("handler")), rb_intern("call"), 0); } else {
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦