You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(47) |
Jul
(47) |
Aug
(75) |
Sep
(6) |
Oct
(5) |
Nov
|
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(2) |
Feb
(5) |
Mar
(5) |
Apr
|
May
|
Jun
(1) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: KUBO T. <ku...@ji...> - 2002-08-27 14:17:19
|
久保@茅ヶ崎市です。 KUBO Takehiro <ku...@ji...> writes: > あれから後、実装を見てみたのですが、parse.y の rb_intern() を見てみた > ところ、 > 32 - ID_SCOPE_SHIFT => 32 - 3 => 29 bit > NUM2INT なので 符号 bit の分を 1 bit 引いて 28 bit. > 28 bit で表現できる数 => 16777216 16進数の 0 がひとつ抜けてたので、 16777216 を 268435456 へ訂正。 > 16777216 - LAST_TOKEN => 16777216 - 356 => 16776860 > なので、これだけの数の ID が生成されないかぎり問題は起こらなそうです。 > > というか、問題が起こるような ID 使いまくりの ruby script があったら、 > ID がひとまわりして 32 ビットシステムではちゃんと動かないでしょう。 ID2SYM で 8 bit シフトしているので、ID で使える数は、 32 - ID_SCOPE_SHIFT(3) - 8 = 21 bit分 => 2097152個 ruby はこれほどの ID を使わないという前提のようなので、Tru64 でも問題 にはならないでしょう。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Minero A. <aa...@mx...> - 2002-08-27 14:02:43
|
サボってばかりの あおきです。 In mail "Re: [ruby-gnome-users-ja] NUM2INT vs SYM2ID" Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > オブジェクトで無いものをArrayに入れるのは、 > > GCとの絡みもあるし、気持悪いと思います。 > > ID2SYMしてSymbolを入れておくのがやっぱり無難なんじゃないかなぁ。 > > よくわかっていないのですが(っていつものことか(^^;)) > IDってただのunsigned long値ですよね。 > > ID2SYMしても、所詮、数値を書き換えてるだけですよね? > > これらってGCとの絡みが出て来るんでしょうか? ID は Ruby オブジェクトでないのでまずいです。4 の倍数の VALUE はポインタとして扱われるので rb_gc_mark で落ちます。 ちなみに VALUE は以下のようにマップされてます。 false 0 true 2 nil 4 Fixnum 奇数 Symbol 256 の倍数 + 14 ポインタ 4 の倍数 あとは秘密の値 Qundef (=6) を追加すれば VALUE のパターンは 尽くせているはず。 ------------------------------------------------------------------- 青木峰郎 |
From: KUBO T. <ku...@ji...> - 2002-08-27 13:40:43
|
久保@茅ヶ崎市です。 Masao Mutoh <mu...@hi...> writes: >> > data = rb_ary_new3(3, rb_f_lambda(), INT2NUM(id), args); >> > >> > というようにINT2NUM(id)としていて、それの逆だから >> > NUM2INT()を使っているだけのような気がします。 >> > #のでまぁ動いていると。 >> >> ID は unsigned long に typedef されているので、NUM2INT() ではなくて >> NUM2LONG() を使わないと Tru64 ではエラーになると思われます。 >> >> 問題となっているところはまだ全然見てないのですが、とりいそぎメールして >> おきます。 あれから後、実装を見てみたのですが、parse.y の rb_intern() を見てみた ところ、 32 - ID_SCOPE_SHIFT => 32 - 3 => 29 bit NUM2INT なので 符号 bit の分を 1 bit 引いて 28 bit. 28 bit で表現できる数 => 16777216 16777216 - LAST_TOKEN => 16777216 - 356 => 16776860 なので、これだけの数の ID が生成されないかぎり問題は起こらなそうです。 というか、問題が起こるような ID 使いまくりの ruby script があったら、 ID がひとまわりして 32 ビットシステムではちゃんと動かないでしょう。 > なるほど。 > となるとやはりSymbolにした方が素直そうですね。 というわけで、この件に関しては実用上は杞憂でしょう。 けどまあ、Symbol にしたほうが素直だとは思います。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masahiro S. <s01...@sf...> - 2002-08-27 13:37:15
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome-users-ja] NUM2INT vs SYM2ID Date: Thu, 29 Aug 2002 09:58:34 +0900 > > オブジェクトで無いものをArrayに入れるのは、 > > GCとの絡みもあるし、気持悪いと思います。 > > ID2SYMしてSymbolを入れておくのがやっぱり無難なんじゃないかなぁ。 > > よくわかっていないのですが(っていつものことか(^^;)) > IDってただのunsigned long値ですよね。 > > ID2SYMしても、所詮、数値を書き換えてるだけですよね? IDはオブジェクトではないですが、 ID2SYMの結果はSymbolクラスのインスタンスになります。 # INT2FIXの結果がFixnumクラスのインスタンスになるのと同じ。 -- さかい |
From: Masao M. <mu...@hi...> - 2002-08-27 13:12:23
|
むとうです。 On Tue, 27 Aug 2002 22:04:52 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > Masao Mutoh <mu...@hi...> writes: > > > data = rb_ary_new3(3, rb_f_lambda(), INT2NUM(id), args); > > > > というようにINT2NUM(id)としていて、それの逆だから > > NUM2INT()を使っているだけのような気がします。 > > #のでまぁ動いていると。 > > ID は unsigned long に typedef されているので、NUM2INT() ではなくて > NUM2LONG() を使わないと Tru64 ではエラーになると思われます。 > > 問題となっているところはまだ全然見てないのですが、とりいそぎメールして > おきます。 なるほど。 となるとやはりSymbolにした方が素直そうですね。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2002-08-27 13:06:15
|
むとうです。 On Tue, 27 Aug 2002 21:34:08 +0900 Masahiro Sakai <s01...@sf...> wrote: > さかいです。 > > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome-users-ja] NUM2INT vs SYM2ID > Date: Thu, 29 Aug 2002 09:04:53 +0900 > > > むとうです。 > > > これは、signal_callback()を呼び出している > > gobj_sig_connect(), gobj_sig_connect_after()で > > > > data = rb_ary_new3(3, rb_f_lambda(), INT2NUM(id), args); > > > > というようにINT2NUM(id)としていて、それの逆だから > > NUM2INT()を使っているだけのような気がします。 > > #のでまぁ動いていると。 > > あぁそうか。良く見てませんでした。 > でも、gobj_smethod_added()の方ではSymbolがそのまま入ってますよん。 おっとそうですね。 でも、gobj_smethod_added()って使うのかなぁ。 #あると便利な人がごく一部にはいらっしゃるかもしれませんが、 #無くても良いような気がしてます。いわゆるオーバースペックのような。 > > 個人的にはdata->ptr[1]にIDそのものを渡してしまえば済む話 > > のような気もしないでもないですが.....。 > > オブジェクトで無いものをArrayに入れるのは、 > GCとの絡みもあるし、気持悪いと思います。 > ID2SYMしてSymbolを入れておくのがやっぱり無難なんじゃないかなぁ。 よくわかっていないのですが(っていつものことか(^^;)) IDってただのunsigned long値ですよね。 ID2SYMしても、所詮、数値を書き換えてるだけですよね? これらってGCとの絡みが出て来るんでしょうか? typedef unsigned long ID; #define RSHIFT(x,y) ((x)>>(int)y) #define ID2SYM(x) ((VALUE)(((long)(x))<<8|SYMBOL_FLAG)) #define SYM2ID(x) RSHIFT((long)x,8) > PS. > この辺りって、きっとruby 1.6以前に書かれたまま、 > 1.6で追加されたSymbolクラスに対応していないんですよね…… なるほど。Symbolって1.6からなんですねぇ。 #考えてみると私ってホントRuby歴浅いですねぇ ... (^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2002-08-27 13:05:48
|
久保@茅ヶ崎市です。 Masao Mutoh <mu...@hi...> writes: > data = rb_ary_new3(3, rb_f_lambda(), INT2NUM(id), args); > > というようにINT2NUM(id)としていて、それの逆だから > NUM2INT()を使っているだけのような気がします。 > #のでまぁ動いていると。 ID は unsigned long に typedef されているので、NUM2INT() ではなくて NUM2LONG() を使わないと Tru64 ではエラーになると思われます。 問題となっているところはまだ全然見てないのですが、とりいそぎメールして おきます。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masahiro S. <s01...@sf...> - 2002-08-27 12:34:12
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome-users-ja] NUM2INT vs SYM2ID Date: Thu, 29 Aug 2002 09:04:53 +0900 > むとうです。 > これは、signal_callback()を呼び出している > gobj_sig_connect(), gobj_sig_connect_after()で > > data = rb_ary_new3(3, rb_f_lambda(), INT2NUM(id), args); > > というようにINT2NUM(id)としていて、それの逆だから > NUM2INT()を使っているだけのような気がします。 > #のでまぁ動いていると。 あぁそうか。良く見てませんでした。 でも、gobj_smethod_added()の方ではSymbolがそのまま入ってますよん。 > 個人的にはdata->ptr[1]にIDそのものを渡してしまえば済む話 > のような気もしないでもないですが.....。 オブジェクトで無いものをArrayに入れるのは、 GCとの絡みもあるし、気持悪いと思います。 ID2SYMしてSymbolを入れておくのがやっぱり無難なんじゃないかなぁ。 PS. この辺りって、きっとruby 1.6以前に書かれたまま、 1.6で追加されたSymbolクラスに対応していないんですよね…… -- さかい |
From: Masao M. <mu...@hi...> - 2002-08-27 12:12:34
|
むとうです。 On Tue, 27 Aug 2002 20:39:03 +0900 Masahiro Sakai <s01...@sf...> wrote: > さかいです。 > > rbgtkobject.cのsignal_callback()で > ID id = NUM2INT(RARRAY(data)->ptr[1]); > としていますが、 > これはSYM2IDを使わなくても良いんでしたっけ? これは、signal_callback()を呼び出している gobj_sig_connect(), gobj_sig_connect_after()で data = rb_ary_new3(3, rb_f_lambda(), INT2NUM(id), args); というようにINT2NUM(id)としていて、それの逆だから NUM2INT()を使っているだけのような気がします。 #のでまぁ動いていると。 個人的にはdata->ptr[1]にIDそのものを渡してしまえば済む話 のような気もしないでもないですが.....。 でも、なんでSYM2IDなんでしょうか。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2002-08-27 11:55:52
|
むとうです。 On Tue, 27 Aug 2002 14:51:37 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > Masao Mutoh <mu...@hi...> writes: > > > ところで、0820.difの方ですが、 > > gnome_canvas_item_scale > > gnome_canvas_item_rotate > > の2つを削除してますけど、これってなくしちゃって良いのですか? > > 私のマシンのgnome-canvas.hや、APIリファレンスを見ると存在するような > > 感じもするのですが。 > > ヘッダやドキュメントにはあるけど、実装されてないようです。 > gnome-libs-1.4.1.7 のソースツリーで > > find . -type f -print | xargs grep gnome_canvas_item_scale > > としても実装されている形跡はないし、インストール済みのファイルを > > nm /usr/lib/libgnomeui.a | grep gnome_canvas_item_scale > > としてみても、 > > strings /usr/lib/libgnomeui.so | grep gnome_canvas_item_scale > > としてみても見つかりません。 > > 将来実装するつもりでヘッダファイルに書いておいたのか、昔あって削除され > たのかは不明。 私も同様のことをして確認してました。 でもなんなんだろう。 まぁ、必要になったら実装すれば良いのでひとまず削除しましょう。 というわけでパッチを適用しときました。どうもありがとうございました。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. <s01...@sf...> - 2002-08-27 11:39:09
|
さかいです。 rbgtkobject.cのsignal_callback()で ID id = NUM2INT(RARRAY(data)->ptr[1]); としていますが、 これはSYM2IDを使わなくても良いんでしたっけ? -- さかい |
From: KUBO T. <ku...@ji...> - 2002-08-27 05:50:44
|
久保@茅ヶ崎市です。 Masao Mutoh <mu...@hi...> writes: > ところで、0820.difの方ですが、 > gnome_canvas_item_scale > gnome_canvas_item_rotate > の2つを削除してますけど、これってなくしちゃって良いのですか? > 私のマシンのgnome-canvas.hや、APIリファレンスを見ると存在するような > 感じもするのですが。 ヘッダやドキュメントにはあるけど、実装されてないようです。 gnome-libs-1.4.1.7 のソースツリーで find . -type f -print | xargs grep gnome_canvas_item_scale としても実装されている形跡はないし、インストール済みのファイルを nm /usr/lib/libgnomeui.a | grep gnome_canvas_item_scale としてみても、 strings /usr/lib/libgnomeui.so | grep gnome_canvas_item_scale としてみても見つかりません。 将来実装するつもりでヘッダファイルに書いておいたのか、昔あって削除され たのかは不明。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masao M. <mu...@hi...> - 2002-08-27 01:45:10
|
むとうです。 On Tue, 27 Aug 2002 01:38:30 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > Masao Mutoh <mu...@hi...> writes: > > >> 掟破りの ruby-gnome-users-ja 飛ばし。 > >> # 英語で書くの面倒だったので.....。m(__)m > > > > 私もそうしたくなるときが多々あります(^^;)。 > > 手抜きしました。m(__)m なんで久保さんのメールに対するAronのリプライが無い のかなぁと疑問に思ったのですが、実はAronはMLに入っていない みたいです。 Aronの最初のメールに P.S. Please cc me... I'm not subscribed. って書いてあります。 といいつつ私自身もリプライをMLにしかしてなかったり(汗。 > http://www.jiubao.org/tmp/0820.dif > http://www.jiubao.org/tmp/0821-2.dif > > の2つです。 > > 0820.dif が '(1) undefined symbol' のエラー修正、 > 0821-2.dif が '(2) integer too big' のエラー修正です。 > > (1) は Linux でも ruby にパッチを当てれば再現できるのでこれで解決でしょう。 > > (2) は 32 bit の Linux では再現できないのでおそらくこれで直るだろうと > いうパッチです。 > > (2) の問題は、VALUE 型のデータを INT2NUM で ruby の数字にして、NUM2INT > で元に戻そうとしていたことです。 なるほど。 ところで、0820.difの方ですが、 gnome_canvas_item_scale gnome_canvas_item_rotate の2つを削除してますけど、これってなくしちゃって良いのですか? 私のマシンのgnome-canvas.hや、APIリファレンスを見ると存在するような 感じもするのですが。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2002-08-26 16:37:36
|
久保@茅ヶ崎市です。 Masao Mutoh <mu...@hi...> writes: >> 掟破りの ruby-gnome-users-ja 飛ばし。 >> # 英語で書くの面倒だったので.....。m(__)m > > 私もそうしたくなるときが多々あります(^^;)。 手抜きしました。m(__)m (snip) > それから、久保さんの最終的なパッチって > > http://www.jiubao.org/tmp/0821-2.dif > > ですよね。 あっ、 http://www.jiubao.org/tmp/0820.dif http://www.jiubao.org/tmp/0821-2.dif の2つです。 0820.dif が '(1) undefined symbol' のエラー修正、 0821-2.dif が '(2) integer too big' のエラー修正です。 (1) は Linux でも ruby にパッチを当てれば再現できるのでこれで解決でしょう。 (2) は 32 bit の Linux では再現できないのでおそらくこれで直るだろうと いうパッチです。 (2) の問題は、VALUE 型のデータを INT2NUM で ruby の数字にして、NUM2INT で元に戻そうとしていたことです。 おそらく Tru64 では、 long の幅 == void * の幅 == VALUE の幅 == 8バイト int の幅 == 4バイト となっているのだと思います。 INT2NUM は名前に反して引数として long を取るので、 INT2NUM(VALUEの値) は問題なく Ruby のオブジェクトに変換されますが、逆変換をしようとして NUM2INT() を使うと、int の幅を越えるデータが出てきて、エラーが起こる可能性があり ます。 あと、8021-2.dif のパッチを出してから気付いたのですが、VALUE は unsinged long に typedef されているので、本当は、UINT2NUM, NUM2ULONG の組を用いたのが良いかもしれません。 まあ、UINT2NUM/NUM2ULONG の組でも、INT2NUM/NUM2LONG の組でも、ちゃんと 対応がとれていれば実用上は問題ないとは思うけど。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masao M. <mu...@hi...> - 2002-08-26 15:34:23
|
むとうです。 On Sun, 25 Aug 2002 23:01:24 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > 掟破りの ruby-gnome-users-ja 飛ばし。 > # 英語で書くの面倒だったので.....。m(__)m 私もそうしたくなるときが多々あります(^^;)。 > Linux で未定義の変数・関数を含む共有ライブラリを dlopen したときの動作 > をチェックしてみたところ、 (略) > というわけで、ruby 本体へパッチをあてて、未定義の関数がないかどうかチェッ > クしまくったわけです。 なるほど。私はこの辺の知識が0に等しいので大変勉強になりました。 どうもありがとうございます。 それから、久保さんの最終的なパッチって http://www.jiubao.org/tmp/0821-2.dif ですよね。 #ちょっと確認まで。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2002-08-26 15:20:43
|
むとうです。 旅から戻りました。今日はメールチェックして寝ますが。 On Mon, 26 Aug 2002 17:12:06 +0900 Masahiro Sakai <s01...@sf...> wrote: > さかいです。 > > 以前に > http://web.sfc.keio.ac.jp/~s01397ms/d/?date=20020220#p03 > に書いた件で、gtk_idle_add()を使っている場合に、 > Rubyインタープリタの終了時にgtk_idle_remove()するパッチです。 > > それから、Win32 native版のglib/gtkでは、 > GPollFDのfdはfile descriptorではなくHANDLEが入っていて、 > rb_thread_select()は使えないので、そのコメントも削除してあります。 > > 問題無いようでしたらcommitしておきます。 お願いします。 Ruby-GNOME2の方も(必要であれば)お願いできますか? -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. <s01...@sf...> - 2002-08-26 08:12:12
|
さかいです。 以前に http://web.sfc.keio.ac.jp/~s01397ms/d/?date=20020220#p03 に書いた件で、gtk_idle_add()を使っている場合に、 Rubyインタープリタの終了時にgtk_idle_remove()するパッチです。 それから、Win32 native版のglib/gtkでは、 GPollFDのfdはfile descriptorではなくHANDLEが入っていて、 rb_thread_select()は使えないので、そのコメントも削除してあります。 問題無いようでしたらcommitしておきます。 -- さかい --- src/rbgtk.c~ Sat Jul 20 22:29:15 2002 +++ src/rbgtk.c Mon Aug 26 16:36:41 2002 @@ -738,7 +738,7 @@ #endif #ifdef NATIVE_WIN32 -# undef USE_POLL_FUNC /* I don't know whether this works for win32. */ +# undef USE_POLL_FUNC #endif #ifdef USE_POLL_FUNC @@ -812,6 +812,12 @@ return Qtrue; } +static void +idle_remove(VALUE data) +{ + gtk_idle_remove(NUM2UINT(data)); +} + #endif /* !USE_POLL_FUNC */ /* @@ -858,6 +864,6 @@ #ifdef USE_POLL_FUNC g_main_set_poll_func(rbgtk_poll); #else - gtk_idle_add((GtkFunction)idle, 0); + rb_set_end_proc(idle_remove, UINT2NUM(gtk_idle_add((GtkFunction)idle, 0))); #endif } |
From: KUBO T. <ku...@ji...> - 2002-08-25 14:00:29
|
久保@茅ヶ崎市です。 掟破りの ruby-gnome-users-ja 飛ばし。 # 英語で書くの面倒だったので.....。m(__)m Linux で未定義の変数・関数を含む共有ライブラリを dlopen したときの動作 をチェックしてみたところ、 第二引数のフラグ| 未定義の変数 | 未定義の関数 -----------------+---------------------+----------------------- RTLD_LAZY |dlopen 時にエラー(*1)|参照時にエラー(*2) RTLD_NOW |dlopen 時にエラー(*1)|dlopen 時にエラー(*1) *1: dlopen が NULL で戻り、dlerror() の戻り値は 共有ライブラリ名: undefined symbol: 未定義のシンボル名 となる。 *2: dlopen は成功するが、未定義の関数を含む関数を実行すると relocation error: 共有ライブラリ名: undefined symbol: 未定義のシンボル名 と標準エラーに出力され、そこでプロセス終了。 という結果になりました。 つまり、Linux では、RTLD_LAZY が効くのは関数に関してだけで、変数に関し ては効果なしということですね。 ちなみに、ruby で共有ライブラリをロードするときは、デフォルトで、 RTLD_LAZY でもって dlopen しています。 # dlopen のあるプラットフォームのみですけど。 KUBO Takehiro <ku...@ji...> writes: >>> (1) gnome_canvas_item_scale unresolved >>> >>> /usr/local/lib/ruby/site_ruby/1.6/gnome.rb:3:in `require': dlopen: /usr/local/lib/ruby/site_ruby/1.6/alpha-osf5.1/gnome.so: symbol "gnome_canvas_item_scale" unresolved - /usr/local/lib/ruby/site_ruby/1.6/alpha-osf5.1/gnome.so (LoadError) >>> from /usr/local/lib/ruby/site_ruby/1.6/gnome.rb:3 >>> from ./test.rb:1:in `require' >>> from ./test.rb:1 Tru64 の場合、変数に対しても関数に対しても RTLD_LAZY が効かずに、ロー ド時にすべてのシンボルを解決しようとしているのでしょう。 >> Hmm, At least, in my environment(Linux/gnome-libs-1.4.1.2) it works fine. Linux の場合は、未定義の関数は実行時までわからないので、この時点ではま だ問題はわからない。 Linux で状況を再現させるにはロード時にすべてのシンボルを解決させるよう にすれば良い。 > How about recompile ruby with the following patch and test Ruby-GNOME > if your platform's ruby uses dlopen. > > ============================================== > --- dln.c.orig Fri Aug 24 15:35:24 2001 > +++ dln.c Wed Aug 21 00:12:30 2002 > @@ -1273,7 +1273,7 @@ > #endif > > /* Load file */ > - if ((handle = (void*)dlopen(file, RTLD_LAZY|RTLD_GLOBAL)) == NULL) { > + if ((handle = (void*)dlopen(file, RTLD_NOW|RTLD_GLOBAL)) == NULL) { > goto failed; > } > ============================================== というわけで、ruby 本体へパッチをあてて、未定義の関数がないかどうかチェッ クしまくったわけです。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: KUBO T. <ku...@ji...> - 2002-08-20 15:37:54
|
久保@茅ヶ崎市です。 Masao Mutoh <mu...@hi...> writes: >> GtkArg 周りの変更と Gnome::CanvasItem#get に対応を行いました。URL は >> http://www.jiubao.org/tmp/stage-3.dif >> です。 >> stage-2.dif は適用せずにこのパッチを使用してください。 >> >> 思ったより大きな変更になりました。m(__)m > > ありがとうございます。適用しました。 > 念のため、再度確認してください。 はい。チェックアウトして動かしてみました。 適用、ありがとうございます。 あとはバグがないことを祈りつつ....。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masao M. <mu...@hi...> - 2002-08-20 15:13:50
|
むとうです。 実は明日から夏休みで来週の月曜日まではIP unreachableになります。 #メール全く読みませんので(^^;) また来週お会いしましょう。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2002-08-19 11:21:10
|
むとうです。 On Mon, 19 Aug 2002 09:38:52 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > GtkArg 周りの変更と Gnome::CanvasItem#get に対応を行いました。URL は > http://www.jiubao.org/tmp/stage-3.dif > です。 > stage-2.dif は適用せずにこのパッチを使用してください。 > > 思ったより大きな変更になりました。m(__)m ありがとうございます。適用しました。 念のため、再度確認してください。 > 問題(?): > GdkImlib::Image の GtkArg への登録は、普通に考えると gdk_imlib.so > 内で行なったほうが自然だが、GtkType の GTK_TYPE_GDK_IMLIB_IMAGE を > 定義しているのは、Gnome 側。したがって、登録する場所は gnome.so 内 > でないといけない。 > 現在のところ GtkArg システムへ登録する関数 get_gdkimlib_image() を > 定義しているのは gnome/src/rbgnome-canvas-item.c 内。というのも、 > Gnome で GTK_TYPE_GDK_IMLIB_IMAGE を使用しているのは、 > Gnome::CanvasImage のみだから。 > とはいっても、gnome/src/rbgnome-util.c とかに移したのが良いかもし > れない。 この辺はRuby-GNOME2で対応しましょう。 #Ruby-GNOME2ではgdk_imlibがなくなっちゃうんでアレなんですが。 > あと、CVS の libart/Makefile は消してください。このファイルは > libart/extconf.rb が作成するものなので、CVS に入れる必要はないです。 > まあ、間違って登録したのだと思いますけど。 間違えました。 消しときましたので(^^;)。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2002-08-19 00:39:33
|
久保@茅ヶ崎市です。 GtkArg 周りの変更と Gnome::CanvasItem#get に対応を行いました。URL は http://www.jiubao.org/tmp/stage-3.dif です。 stage-2.dif は適用せずにこのパッチを使用してください。 思ったより大きな変更になりました。m(__)m (1)Ruby/Gtk の変更 修正・追加したファイル 修正: gtk/src/global.c gtk/src/global.h gtk/src/rbgtk.c gtk/src/rbgtk.h gtk/src/rbgtkobject.c 追加: gtk/src/rbgtkarg.c 修正・追加した関数 gtk/src/global.c 削除(b): VALUE arg_to_value(arg) gtk/src/rbgtkobject.c 削除(b): static void arg_set_value(arg, value) 変更(b): static void signal_setup_args(obj, sig, argc, params, args) 変更(b): void signal_callback(widget, data, nparams, params) gtk/src/rbgtkarg.c 追加(a): void rbgtk_register_r2b_func(type, func) 追加(a): void rbgtk_register_b2r_func(type, func) 追加(c): void rbgtk_arg_init(arg, type, name) 追加(a,c): void rbgtk_arg_set(arg, obj) 追加(a,b): void rbgtk_arg_set_retval(arg, obj) 追加(a,b): VALUE rbgtk_arg_get(arg) 追加(a): void Init_gtk_arg() gtk/src/rbgtk.c 修正: Init_gtk_gtk() 内容: (a) ruby のオブジェクトの GtkArg への set/get の方式が埋め込みだった のを動的に登録するようにした。 (b) GtkArg 関係の関数を rbgtkarg.c にまとめて、関数名を変更。 global.c の arg_to_value() -> rbgtk_arg_get() rbgtkobject.c の arg_set_value() -> rbgtk_arg_set_retval() (c) Gnome::CanvasItem から GtkArg を用いるのに必要な関数 (2)Ruby/GNOME の変更 修正したファイル 修正: gnome/src/rbgnome-canvas-item.c gnome/src/rbgnome-canvas-util.c gnome/src/rbgnome.c gnome/src/rbgnome.h 修正・追加・削除した関数 gnome/src/rbgnome-canvas-item.c 削除(a): static void set_gtkarg(type, name, value, arg) 追加(c): GdkImlibImage *get_gdkimlib_image(obj) 修正(a): static VALUE citem_set(argc, argv, self) 追加(b): static VALUE citem_get(self, name) 追加(b): void Init_gnome_canvas_item() gnome/src/rbgnome-canvas-util.c 追加(c): GnomeCanvasPoints* get_gnome_canvas_points(obj) 追加(c): VALUE make_gnome_canvas_points(gcp) gnome/src/rbgnome.c 修正(c): static VALUE gnome_s_init(in_argc, in_argv, self) 内容: (a) set_gtkarg() を削除して、rbgtk_arg_set() を使用 (b) Gnome::CanvasItem#get 対応 (c) Ruby/Gtk の GtkArg システムへの set/get 関数の登録。 GTK_TYPE_GNOME_XXXXX が初期化されるのは gnome_init() 内で、それ 以降でないと型システムを使用できないので、GtkArg への登録は、 gnome_s_init() 内で行うようにした。 問題(?): GdkImlib::Image の GtkArg への登録は、普通に考えると gdk_imlib.so 内で行なったほうが自然だが、GtkType の GTK_TYPE_GDK_IMLIB_IMAGE を 定義しているのは、Gnome 側。したがって、登録する場所は gnome.so 内 でないといけない。 現在のところ GtkArg システムへ登録する関数 get_gdkimlib_image() を 定義しているのは gnome/src/rbgnome-canvas-item.c 内。というのも、 Gnome で GTK_TYPE_GDK_IMLIB_IMAGE を使用しているのは、 Gnome::CanvasImage のみだから。 とはいっても、gnome/src/rbgnome-util.c とかに移したのが良いかもし れない。 あと、CVS の libart/Makefile は消してください。このファイルは libart/extconf.rb が作成するものなので、CVS に入れる必要はないです。 まあ、間違って登録したのだと思いますけど。 以上です。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masao M. <mu...@hi...> - 2002-08-18 14:23:09
|
むとうです。 On Sun, 18 Aug 2002 20:52:20 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保@茅ヶ崎市です。 > > KUBO Takehiro <ku...@ji...> writes: > > > では、GtkArg 周りの変更のパッチを出します。URL は > > http://www.jiubao.org/tmp/stage-2.dif > > です。 > > このパッチの適用はしばらく待ってください。m(__)m 了解です。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2002-08-18 11:51:04
|
久保@茅ヶ崎市です。 KUBO Takehiro <ku...@ji...> writes: >> ううむ。GtkArg 周りの変更の動作チェックしてたら、バグを埋め込んでしまっ >> たようです。 >> ちょっと時間がかかりそう.....。 > > わかってみると、単純でした。 > *GTK_RELOC_XXX(*arg) = ???; > とすべきところを > GTK_VALUE_XXX(*arg) = ???; > としていました。 上は間違いでした。 あっちと立てればこっちが立たず。うーむ、はまってます。 > では、GtkArg 周りの変更のパッチを出します。URL は > http://www.jiubao.org/tmp/stage-2.dif > です。 このパッチの適用はしばらく待ってください。m(__)m では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: KUBO T. <ku...@ji...> - 2002-08-18 09:55:28
|
久保@茅ヶ崎市です。 KUBO Takehiro <ku...@ji...> writes: > では、GtkArg 周りの変更のパッチを出します。URL は > http://www.jiubao.org/tmp/stage-2.dif > です。 すみません。間違いがあったので、置き直しました。 では、再見 -- 神奈川県茅ヶ崎市在住 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |