You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(60) |
Jul
(52) |
Aug
(67) |
Sep
(167) |
Oct
(186) |
Nov
(173) |
Dec
(220) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(37) |
Feb
(66) |
Mar
(89) |
Apr
(71) |
May
(32) |
Jun
(61) |
Jul
(64) |
Aug
(99) |
Sep
(33) |
Oct
(31) |
Nov
(50) |
Dec
(41) |
2004 |
Jan
(9) |
Feb
(9) |
Mar
(25) |
Apr
(23) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(9) |
Sep
(1) |
Oct
(31) |
Nov
(38) |
Dec
|
2005 |
Jan
(16) |
Feb
(49) |
Mar
(14) |
Apr
(1) |
May
|
Jun
(12) |
Jul
(25) |
Aug
(18) |
Sep
(48) |
Oct
(76) |
Nov
(20) |
Dec
|
2006 |
Jan
(16) |
Feb
(12) |
Mar
(4) |
Apr
(5) |
May
(77) |
Jun
(37) |
Jul
(15) |
Aug
|
Sep
(3) |
Oct
(15) |
Nov
(7) |
Dec
(27) |
2007 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
(7) |
Jun
(18) |
Jul
(44) |
Aug
(12) |
Sep
(1) |
Oct
(13) |
Nov
(15) |
Dec
(5) |
2008 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
(8) |
Jun
(1) |
Jul
|
Aug
|
Sep
(8) |
Oct
(6) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(2) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(3) |
2010 |
Jan
(8) |
Feb
(8) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(17) |
Oct
(7) |
Nov
(3) |
Dec
|
2011 |
Jan
(34) |
Feb
(47) |
Mar
(12) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
(20) |
Aug
(4) |
Sep
(31) |
Oct
(16) |
Nov
(26) |
Dec
(40) |
2012 |
Jan
(10) |
Feb
(8) |
Mar
|
Apr
(5) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(8) |
2013 |
Jan
(2) |
Feb
(33) |
Mar
(21) |
Apr
(10) |
May
(29) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(21) |
Nov
(21) |
Dec
(7) |
2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(4) |
May
(12) |
Jun
|
Jul
|
Aug
(5) |
Sep
(23) |
Oct
(29) |
Nov
(2) |
Dec
(1) |
2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(8) |
From: KATO K. <kz...@ro...> - 2005-01-30 23:30:10
|
お疲れさまです。加藤和良です。 # 最近は Mac OS X なんかに浮気してしまいまして… On 2005/01/30, at 08:49 PM, Masao Mutoh wrote: > それから、長らくメンテされていないgtk-demo > ですが、どなたか新機能を取り込んでいただけ > る方はいらっしゃいませんか。 かなりごぶさたしてしまいましたが、今日からまた手を付けはじめました。 gtk-demo 専属とかではないんですけど、とりあえずやりだしっぺですし、 clipboard.rb を追加しておきました。 これからぼちぼちやってきます。 -- KATO Kazuyoshi http://8-p.info/ |
From: Masao M. <mu...@hi...> - 2005-01-30 16:07:47
|
むとうです。 On Sun, 30 Jan 2005 04:12:52 +0900 Masao Mutoh <mu...@hi...> wrote: > 須藤さん > > むとうです。 > > GnomePrintのテストプログラムがこけるようです。 > もしかしたら私がextconf.rbを変更しちゃったのが > 原因かもしれません。その辺は明日にでも確認します > が、念のため、ご報告まで。 > 1) Error: > test_line_to(TestContext): > RuntimeError: GnomePrint-CRITICAL **:file gnome-print-stdapi.c: line 390 (gnome_print_lineto): assertion `pc->haspage' failed > ./test/test_context.rb:16:in `line_to' > ./test/test_context.rb:16:in `test_line_to' こちらですが、Ruby/GLibのログハンドラが例外をあげることが 問題ということで、Ruby/GLib側を修正しました。 元々、GLibのMessage Loggingの機能を使おうと考えた理由を 備忘録としてここにメモしておきます。 各GNOMEライブラリがエラーを出力する際に、エラーメッセージを 出力するのですが、その内容が GnomePrint-CRITICAL **:file gnome-print-stdapi.c: line 390 (gnome_print_lineto): assertion `pc->haspage' faile という感じで、Rubyスクリプトからはスクリプトのどこが 悪いのか、わかりづらいものでした。 上記の例では、gnome_print_linetoを見て、Gnome::Print#linetoに 問題があるんだろうな、と判断できる幸運な例の一つですがそれにしても 同じメソッドが何回も呼び出されている場合は実際どこの行で発生したか 問題を追うのに一苦労すると思います。 そこで、そのログ出力時に例外をあげてしまえば、Rubyスクリプトのどの 行でエラーがあがったのか分かるだろう、と考え、そのような実装に していました。実装はglib/src/rbglib_messages.cのrbglib_log_handler() という関数です。 経緯と実装したい機能としては以上です。 で、今回のような問題やRuby/GnomeCanvasでこれが原因でsegfault が発生することについては考えてませんでした。 そこで、今回の変更では、メッセージは$VERBOSEと、ruby自体が終了する 際の微妙なタイミングのエラー(ほぼメモリ解放がらみのエラーと思われます) のときのみ、標準エラー出力にRubyのソースコードのファイル名と行数を 出力するようなものにしました。 デバッグするときはRubyの起動オプションで-d, -wといったオプションをつける 必要があります。 -dをつけたときの出力メッセージは以下のようになります。 ./test/test_context.rb: line 7 GnomePrint-CRITICAL **:file gnome-print-stdapi.c: line 390 (gnome_print_lineto): assertion `pc->haspage' failed 最初にスクリプト名と行番号が出るのでデバッグもしやすかろうと言うことです。 #「ruby自体が終了する際の微妙なタイミングのエラー」では、 #スクリプト名も行番号も出ずに今まで通りのメッセージが出力されます。 もし、ほかによいアイデアやこの機能に関するご意見がありましたら 教えてください。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2005-01-30 15:03:37
|
須藤です. In <200...@hi...> "[ruby-gnome2-devel-ja] GnomePrint" on Sun, 30 Jan 2005 04:12:52 +0900, Masao Mutoh <mu...@hi...> wrote: > GnomePrintのテストプログラムがこけるようです。 > > $ ruby test/run-test.rb ... > 1) Error: > test_line_to(TestContext): > RuntimeError: GnomePrint-CRITICAL **:file gnome-print-stdapi.c: line 390 (gnome_print_lineto): assertion `pc->haspage' failed > ./test/test_context.rb:16:in `line_to' > ./test/test_context.rb:16:in `test_line_to' このテストはlibgnomeprintの関数がエラーコードを返したときに, Gnome::PrintError例外を発生するかどうかというテストです. このテストが失敗するようになったのは,2005-01-09の rbglib_log_handlerの変更のせいです. libgnomeprintはg_return_val_if_failを使って予期していない引 数がきたときはエラーコードを返します. Ruby/GnomePrintでは check_return_codeで戻り値をチェックして,エラーの場合は Gnome::PrintError例外を発生させます. しかし,2005-01-09の変更で,g_return_val_if_failの時点で RuntimeErrorが発生するようになってしまったので,従来の戻り値 をチェックしてRuby/GnomePrint用の例外を発生させるということ ができなくなっています. 解決案: * Ruby/GnomePrint側で戻り値をチェックする前に GLib::Log.cancel_handler = trueしてRuntimeErrorrをraise しないようにする. * GLib::Log.add_log_handler(domain) do |level, message| ... end みたいなAPIを用意して,ドメイン毎にログハンドラを登録で きるようにする. Ruby/GnomePrintでは,ログを無視するようなハンドラを設定 する($DEBUGとか$VERBOSEがtrueの時はSTDERRに出力してもよ いかも). 私はすこし手間がかかりますが,後者がいいです. # むとうさんが忙しいようなら,代わりにrbglib_messages.cをい # じってもいいです. |
From: Masao M. <mu...@hi...> - 2005-01-30 11:49:39
|
むとうです。 だいたい、GTK+-2.6の新しい機能のサポートが 終わりました。 今後はGDK/GdkPixbuf/Pangoの新機能を多少実装 して次のリリースへと進みたいと思います。 昨日のextconf.rbの件もありますが、是非今の うちに試してみてください。 それから、長らくメンテされていないgtk-demo ですが、どなたか新機能を取り込んでいただけ る方はいらっしゃいませんか。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2005-01-30 11:38:43
|
むとうです。 GTK+-2.6.x, Pango-1.8.xとRuby-GNOME2の 最新版(CVS)で、とうとう文字の回転を サポートすることができるようになりました。 これだけはGnomeCanvasもサポートできて いなかったんですよねー。 サンプルを書いてみたので是非試してみてください。 gtk/sample/misc/pangorenderer.rb -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2005-01-29 19:13:03
|
須藤さん むとうです。 GnomePrintのテストプログラムがこけるようです。 もしかしたら私がextconf.rbを変更しちゃったのが 原因かもしれません。その辺は明日にでも確認します が、念のため、ご報告まで。 $ ruby test/run-test.rb make[1]: Entering directory `/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/gnomeprint/src' make[1]: `all' に対して行うべき事はありません。 make[1]: Leaving directory `/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/gnomeprint/src' Loaded suite test Started .E. Finished in 0.729382 seconds. 1) Error: test_line_to(TestContext): RuntimeError: GnomePrint-CRITICAL **:file gnome-print-stdapi.c: line 390 (gnome_print_lineto): assertion `pc->haspage' failed ./test/test_context.rb:16:in `line_to' ./test/test_context.rb:16:in `test_line_to' 3 tests, 9 assertions, 0 failures, 1 errors -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2005-01-29 19:09:50
|
むとうです。 mkmf-gnome2.rb, extconf.rb周りを改良しました。 各ライブラリのextconf.rbの共通部分をより強力に mkmf-gnome2.rb側で共通化しました。 また、Win32対応部分もなるべく各extconf.rb側で 意識しなくても済むような形にしています。 それに伴い、全てのライブラリのextconf.rbを 改修しました。 たぶん、大丈夫だと思いますが、念のため、 動作確認をして頂けると助かります。 -- .:% Masao Mutoh<mu...@hi...> |
From: Chikara T. <c_t...@yb...> - 2005-01-28 14:16:24
|
始めまして。高松と申します。 Ruby-Gnome2を使わせて頂いているのですが、英語で不便なので 微力ですがAPIリファレンスの日本語訳で協力したいと思います。 お手数ですが、翻訳の手順など教えて頂けないでしょうか? -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.300 / Virus Database: 265.7.5 - Release Date: 2005/01/26 |
From: Masao M. <mu...@hi...> - 2004-11-22 13:58:44
|
むとうです。 On Mon, 22 Nov 2004 10:18:18 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > > Masao Mutoh <mu...@hi...> writes: > > >> Ruby/GLib2 に手をいれないといけないような予感が....。 > >> 今の Ruby/GLib2 だと、GObject に対応する ruby object を生成すると > >> GObject の refcount が 1 上がるのですが、refcount を上げずに weakref > >> のみで参照する ruby object が必要かも。 > > > > なるほど...。 > > あ、もしかして、RBGTK_INITIALIZEでg_object_refしてるのもマズイですかねぇ。 > > 一度、そのあたりを見直す時期なのかもしれませんね。 > > 少なくとも GnomeCanvasItem の場合は GObject の refcount は上げないほう > が良さそうですが、一律に同じ変更を加えると他の GtkObject で逆に問題を > 起こしそうな感じがします。 > # というか、quick hack でやってみたら落ちた....。 実は私もやってみました... がダメでした... orz。 > GtkObject と GnomeCanvasItem の使用方法の違いが影響しているのかも。 > 例えば、GtkObject は Object を生成してからどこかに所属させるという手順 > で使用しますが、GnomeCanvasItem は Object を生成する時点でどこに所属さ > せるかを指定させます。これが Object の管理方法の違いに影響しているので > はないかと推測しています。 > # 現時点では単なる推測です。確認していません。p(^^;) なるほど。まずはその辺を調べた方が良さそうですね。 もしかしたらGnomeCanvasのみで対応した方が良いかもしれない、という結論も あるかもしれませんね。 > >> > ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? > >> > というのは私の環境ではもうこの現象出ていないんですよね。 > >> > >> 再現しています。 > > > > うーん、なんでだろう。やっぱり何かのバージョンの違いなのかなぁ。 > > 依存するとしたら、finalizer が ruby object を free する順番かな。 この辺、ややこしいですねぇ。うーん、またしばらく悩みますです。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2004-11-21 18:00:27
|
久保です。 Masao Mutoh <mu...@hi...> writes: >> Ruby/GLib2 に手をいれないといけないような予感が....。 >> 今の Ruby/GLib2 だと、GObject に対応する ruby object を生成すると >> GObject の refcount が 1 上がるのですが、refcount を上げずに weakref >> のみで参照する ruby object が必要かも。 > > なるほど...。 > あ、もしかして、RBGTK_INITIALIZEでg_object_refしてるのもマズイですかねぇ。 > 一度、そのあたりを見直す時期なのかもしれませんね。 少なくとも GnomeCanvasItem の場合は GObject の refcount は上げないほう が良さそうですが、一律に同じ変更を加えると他の GtkObject で逆に問題を 起こしそうな感じがします。 # というか、quick hack でやってみたら落ちた....。 GtkObject と GnomeCanvasItem の使用方法の違いが影響しているのかも。 例えば、GtkObject は Object を生成してからどこかに所属させるという手順 で使用しますが、GnomeCanvasItem は Object を生成する時点でどこに所属さ せるかを指定させます。これが Object の管理方法の違いに影響しているので はないかと推測しています。 # 現時点では単なる推測です。確認していません。p(^^;) >> > ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? >> > というのは私の環境ではもうこの現象出ていないんですよね。 >> >> 再現しています。 > > うーん、なんでだろう。やっぱり何かのバージョンの違いなのかなぁ。 依存するとしたら、finalizer が ruby object を free する順番かな。 では、再見 -- 久保 健洋 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...> - 2004-11-21 14:39:10
|
むとうです。 On Sun, 21 Nov 2004 23:26:51 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Sun, 21 Nov 2004 19:22:21 +0900 (JST) > Kouhei Sutou <ko...@co...> wrote: > > > 須藤です. > > > > In <200...@hi...> > > "[ruby-gnome2-devel-ja] Ruby/RSVG, Ruby/GnomePrintUI" on Sat, 20 Nov 2004 22:41:51 +0900, > > Masao Mutoh <mu...@hi...> wrote: > > > > > 1. Ruby/RSVG > > > > > > Error domain(GQuark)が用意されているものの異常処理には > > > G_DEF_ERROR(2), RAISE_GERRORの組み合わせを使っていただ > > > いた方が他のライブラリとの整合性が取れますので、できれば > > > そうしていただければと思います。 > > > > そうしました. > > > > ただ,RSVG_TYPE_ERRORが定義されていなかったので, > > Ruby/GnomePrintUIと同じように,extconf.rbがglib-mkenumsを使っ > > てlibrsvg-enum-types.{c,h}を生成して,RSVG_TYPE_ERRORを用意 > > するようにしました. > > それはそれで全然問題ないのです。が、もう一つやり方があります。 > > 実はG_DEF_ERRORで使うenum値はGEnum/GTypeが定義されてないものも結構 > 多いので、値(code)としてはGLib::Enum/Typeではなく、int値を返す仕様 > になっています。 > したがってそのような場合はG_DEF_ERROR2を使って頂いて定数自体は > rb_define_constを使うような実装にしています。 あ、でも、別に直す必要は無いです。念のため。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-21 14:27:05
|
むとうです。 On Sun, 21 Nov 2004 19:22:21 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "[ruby-gnome2-devel-ja] Ruby/RSVG, Ruby/GnomePrintUI" on Sat, 20 Nov 2004 22:41:51 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > 1. Ruby/RSVG > > > > Error domain(GQuark)が用意されているものの異常処理には > > G_DEF_ERROR(2), RAISE_GERRORの組み合わせを使っていただ > > いた方が他のライブラリとの整合性が取れますので、できれば > > そうしていただければと思います。 > > そうしました. > > ただ,RSVG_TYPE_ERRORが定義されていなかったので, > Ruby/GnomePrintUIと同じように,extconf.rbがglib-mkenumsを使っ > てlibrsvg-enum-types.{c,h}を生成して,RSVG_TYPE_ERRORを用意 > するようにしました. それはそれで全然問題ないのです。が、もう一つやり方があります。 実はG_DEF_ERRORで使うenum値はGEnum/GTypeが定義されてないものも結構 多いので、値(code)としてはGLib::Enum/Typeではなく、int値を返す仕様 になっています。 したがってそのような場合はG_DEF_ERROR2を使って頂いて定数自体は rb_define_constを使うような実装にしています。 > # あ,そういえば,libgnomeprintui側で > # libgnomeprintui-enum-types.hを提供してくれそうです. それは朗報ですね。 > > 2. Ruby/GnomePrintUI > > > > サンプルでプレビューウインドウを開いた後に×で閉じると > > (dialog.rb:18161): GLib-GObject-CRITICAL **: file gobject.c: line 1579 (g_object_unref): assertion `G_IS_OBJECT (object)' failed > > > > というエラーが標準出力に出力されます。 > > プレビューウインドウをg_object_refするようにしました. > ただ,これをしてよいものなのかどうか... ひとまずエラーが出ないようにするというので悪くは無いと思います。 が、しかし、久保さんのお話にもあるように、一度全般的に見直さないと いけないなぁ、という、まさにそんな過渡期になっちゃってますね(^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-21 13:46:55
|
むとうです。 On Mon, 22 Nov 2004 02:55:43 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > > Masao Mutoh <mu...@hi...> writes: > > >> GnomeCanvas が削除された後に GnomeCanvasItem が削除されて、 > >> > >> - gnome_canvas_item_dispose() > >> - redraw_if_visible() > >> - gnome_canvas_request_redraw() > >> --> GnomeCanvas は削除されているのでwarning > >> > >> となっているところまではつきとめました。 > >> とりあえずは rbgnome-canvas-item.c の citem_intialize() で > >> g_object_ref(group); > >> の代りに > >> g_object_ref(_SELF(self)); > >> とするとwarningは消えるのですが、これは明らかに間違った対処方法(二重ref) > >> なのでCVSに入れるわけにはいかない。 > > > > 他のやつもこの辺が問題だったんですよね。 > > > > この現象ってrequest_redrawする前段階に二重にunrefされてるから > > GnomeCanvasが削除されてるんですよね。 > > いいえ。GnomeCanvas が削除されること自体は問題ないのですが、その時点で > GnomeCanvasItem が ruby 側から ref されているのが問題なのではないかと > 思います。おそらく GnomeCanvasItem は GnomeCanvas のみから参照されてい > るという前提ではないかと。 > 試しに ruby 側からの ref をなくすために gnomecanvas/sample/canvas.rb > に以下のパッチを当てて実行したところ、終了時のエラーが出なくなりました。 > # signal_connect を無効化させているのは、signal_connect は ruby オブジェ > # クトへの参照を保持している場合があるためです。 > > citem_intialize() の g_object_ref(group) を消した状態でも同じです。 > > だとすれば、二重refであっても、それが適正な回数であれば問題ないと思います。 > > 問題は適正かどうかなのですが、これはこれで難しそうですね。 > > この場合のメモリリークは許容範囲内かもしれないですし(^^;)。 > > glib のソースの g_object_last_unref() に手を加えて個々のオブジェクトが > 削除されるタイミングを見たところ、citem_intialize() に > g_object_ref(group) がついている状態だと GnomeCanvasGroup は最後まで削 > 除されませんでした。おそらくむとうさんのところでエラーが消えたのは > libgnomecanvas 側、ruby 側両方の終了処理が終わっても GnomeCanvasGroup > の ref が残っていて最後まで gnome_canvas_item_dispose() が呼ばれなかっ > たためではないかと思います。 > > > もしかしたら他のメソッドでg_object_refをしないといけない場所があるのかも > > しれませんね。 > Ruby/GLib2 に手をいれないといけないような予感が....。 > 今の Ruby/GLib2 だと、GObject に対応する ruby object を生成すると > GObject の refcount が 1 上がるのですが、refcount を上げずに weakref > のみで参照する ruby object が必要かも。 なるほど...。 あ、もしかして、RBGTK_INITIALIZEでg_object_refしてるのもマズイですかねぇ。 一度、そのあたりを見直す時期なのかもしれませんね。 > > ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? > > というのは私の環境ではもうこの現象出ていないんですよね。 > > 再現しています。 うーん、なんでだろう。やっぱり何かのバージョンの違いなのかなぁ。 > あと、むとうさんの今日の commit で、エラー時の core dump がまた起きる > ようになりました。finalizer が走っている最中に例外が上がると core を吐 > くようです。 げげっ、すみません。直します。うぬぬぬ。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2004-11-21 10:29:16
|
久保です。 Masao Mutoh <mu...@hi...> writes: >> GnomeCanvas が削除された後に GnomeCanvasItem が削除されて、 >> >> - gnome_canvas_item_dispose() >> - redraw_if_visible() >> - gnome_canvas_request_redraw() >> --> GnomeCanvas は削除されているのでwarning >> >> となっているところまではつきとめました。 >> とりあえずは rbgnome-canvas-item.c の citem_intialize() で >> g_object_ref(group); >> の代りに >> g_object_ref(_SELF(self)); >> とするとwarningは消えるのですが、これは明らかに間違った対処方法(二重ref) >> なのでCVSに入れるわけにはいかない。 > > 他のやつもこの辺が問題だったんですよね。 > > この現象ってrequest_redrawする前段階に二重にunrefされてるから > GnomeCanvasが削除されてるんですよね。 いいえ。GnomeCanvas が削除されること自体は問題ないのですが、その時点で GnomeCanvasItem が ruby 側から ref されているのが問題なのではないかと 思います。おそらく GnomeCanvasItem は GnomeCanvas のみから参照されてい るという前提ではないかと。 試しに ruby 側からの ref をなくすために gnomecanvas/sample/canvas.rb に以下のパッチを当てて実行したところ、終了時のエラーが出なくなりました。 # signal_connect を無効化させているのは、signal_connect は ruby オブジェ # クトへの参照を保持している場合があるためです。 citem_intialize() の g_object_ref(group) を消した状態でも同じです。 ---------------------- ここから ---------------------- --- canvas.rb.~1.5.~ 2002-11-05 20:26:21.000000000 +0900 +++ canvas.rb 2004-11-21 17:36:23.000000000 +0900 @@ -40,6 +40,14 @@ require 'canvas-rich-text' require 'canvas-curve' +module Gnome + class CanvasItem + def signal_connect(*dummy) + # do nothing + end + end +end + class CanvasSample < Gtk::Window def initialize super(Gtk::Window::TOPLEVEL) @@ -64,5 +72,6 @@ Gtk.init canvas = CanvasSample.new() +GC.start Gtk::main() ---------------------- ここまで ---------------------- > だとすれば、二重refであっても、それが適正な回数であれば問題ないと思います。 > 問題は適正かどうかなのですが、これはこれで難しそうですね。 > この場合のメモリリークは許容範囲内かもしれないですし(^^;)。 glib のソースの g_object_last_unref() に手を加えて個々のオブジェクトが 削除されるタイミングを見たところ、citem_intialize() に g_object_ref(group) がついている状態だと GnomeCanvasGroup は最後まで削 除されませんでした。おそらくむとうさんのところでエラーが消えたのは libgnomecanvas 側、ruby 側両方の終了処理が終わっても GnomeCanvasGroup の ref が残っていて最後まで gnome_canvas_item_dispose() が呼ばれなかっ たためではないかと思います。 > もしかしたら他のメソッドでg_object_refをしないといけない場所があるのかも > しれませんね。 Ruby/GLib2 に手をいれないといけないような予感が....。 今の Ruby/GLib2 だと、GObject に対応する ruby object を生成すると GObject の refcount が 1 上がるのですが、refcount を上げずに weakref のみで参照する ruby object が必要かも。 > ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? > というのは私の環境ではもうこの現象出ていないんですよね。 再現しています。 あと、むとうさんの今日の commit で、エラー時の core dump がまた起きる ようになりました。finalizer が走っている最中に例外が上がると core を吐 くようです。 では、再見 -- 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Kouhei S. <ko...@co...> - 2004-11-21 10:22:47
|
須藤です. In <200...@hi...> "[ruby-gnome2-devel-ja] Ruby/RSVG, Ruby/GnomePrintUI" on Sat, 20 Nov 2004 22:41:51 +0900, Masao Mutoh <mu...@hi...> wrote: > 1. Ruby/RSVG > > Error domain(GQuark)が用意されているものの異常処理には > G_DEF_ERROR(2), RAISE_GERRORの組み合わせを使っていただ > いた方が他のライブラリとの整合性が取れますので、できれば > そうしていただければと思います。 そうしました. ただ,RSVG_TYPE_ERRORが定義されていなかったので, Ruby/GnomePrintUIと同じように,extconf.rbがglib-mkenumsを使っ てlibrsvg-enum-types.{c,h}を生成して,RSVG_TYPE_ERRORを用意 するようにしました. # あ,そういえば,libgnomeprintui側で # libgnomeprintui-enum-types.hを提供してくれそうです. > 2. Ruby/GnomePrintUI > > サンプルでプレビューウインドウを開いた後に×で閉じると > (dialog.rb:18161): GLib-GObject-CRITICAL **: file gobject.c: line 1579 (g_object_unref): assertion `G_IS_OBJECT (object)' failed > > というエラーが標準出力に出力されます。 プレビューウインドウをg_object_refするようにしました. ただ,これをしてよいものなのかどうか... |
From: Masao M. <mu...@hi...> - 2004-11-20 13:42:01
|
須藤さん むとうです。 Ruby/RSVGとRuby/GnomePrintUIについて それぞれ1点ずつコメントします。 1. Ruby/RSVG Error domain(GQuark)が用意されているものの異常処理には G_DEF_ERROR(2), RAISE_GERRORの組み合わせを使っていただ いた方が他のライブラリとの整合性が取れますので、できれば そうしていただければと思います。 使い方はglib/gdkpixbuf等を参照していただければと思います。 2. Ruby/GnomePrintUI サンプルでプレビューウインドウを開いた後に×で閉じると (dialog.rb:18161): GLib-GObject-CRITICAL **: file gobject.c: line 1579 (g_object_unref): assertion `G_IS_OBJECT (object)' failed というエラーが標準出力に出力されます。ちと見てみましたが 原因はわかりませんでしたので、ご報告まで。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-17 14:48:08
|
むとうです。 ruby-gtk2-0.11.0-1-i386-msvcrt-1.8.zipをリリースしました。 http://sourceforge.net/project/showfiles.php?group_id=53614&package_id=48093&release_id=282534 最新のOne Click Ruby Installer for Windows(1.8.2-14 RC9)で動作します。 glib2, atk, pango, gdk-pixbuf2, gtk2, libglade2 and gtkglext gettext raccが含まれます。 最近、MinGWでコンパイルしたものがOCRI上で動作しなかったので 今回はVCでコンパイルしました。 それが功を奏したのかもしれません。 ただ、型チェックが甘かったりするところを直さないとコンパイルできなかった ので、この辺をしっかりやっていけばMinGWでも動作するのかもしれません。 いずれにせよ、このままだととっても大変なので、extconf.rb, mkmf-gnome2.rb を改善していかないといけないなぁ、と感じました。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-14 16:17:53
|
むとうです。 Ruby-GNOME2-0.11.0をリリースしました。 * Ruby/GnomePrint, Ruby/GnomePrintUI, Ruby/RSVGを追加しました。 Ruby/GnomePrintは印刷用ライブラリです。 libgnomeprint-2.8.0以降に対応しています。 Ruby/GnomePrintUIは印刷用ライブラリでGUIを提供します。 libgnomeprintui-2.6.0以降に対応しています。 Ruby/RSVGはSVGフォーマットファイルを扱うライブラリです。 librsvg-2.8.0以降に対応しています。 参照URL: http://www.gnome.org/ * Ruby/GdkPixbufがGTK+-2.4.xをサポートしました。 * Ruby/ATKがATK-1.7.xをサポートしました。 * 多くのクラス・メソッドを追加しました。 * 多くのバグフィクス・改善を行いました。 その他の変更点についてはパッケージに含まれるNEWSファイルを参照してください。 Downloads ========= http://sourceforge.net/project/showfiles.php?group_id=53614 * ruby-gtk2 Ruby/GTK2を動作させるための最小限のパッケージです。 Ruby/GLib2, Ruby/ATK, Ruby/GdkPixbuf, Ruby/Pango, Ruby/GTK2. * ruby-gnome2-all 全てのRuby-GNOME2ライブラリが含まれます。このパッケージは インストール時にその環境に存在するGNOMEライブラリにあるもの のみをコンパイル・インストールしますので、GTK+しか入って いない人でもこちらのパッケージを利用できます。 What's Ruby-GNOME2? =================== Ruby-GNOME2はGNOME2.xで使用される主要なライブラリの Ruby言語バインディングです。 現在、以下のライブラリをサポートしています: * Ruby/GLib2 * Ruby/ATK * Ruby/Pango * Ruby/GdkPixbuf2 * Ruby/GTK2 * Ruby/GNOME2 * Ruby/GnomeCanvas2 * Ruby/GConf2 * Ruby/GnomeVFS * Ruby/GStreamer * Ruby/GtkHtml2 * Ruby/GtkGLExt * Ruby/GtkSourceView * Ruby/Libart2 * Ruby/Libgda * Ruby/Libglade2 * Ruby/PanelApplet * Ruby/GnomePrint [NEW] * Ruby/GnomePrintUI [NEW: Alpha release] * Ruby/RSVG [NEW: Alpha release] Resources ========= - Mailing lists http://sourceforge.net/mail/?group_id=53614 - #ruby-gnome2 (IRC) http://ruby-gnome2.sourceforge.jp/hiki.cgi?irc - Project website (English) http://ruby-gnome2.sourceforge.jp/ (French) http://ruby-gnome2.sourceforge.jp/fr/ (German) http://ruby-gnome2.sourceforge.jp/de/ (Italian) http://ruby-gnome2.sourceforge.jp/it/ (Japanese) http://ruby-gnome2.sourceforge.jp/ja/ (Portuguese(BR)) http://ruby-gnome2.sourceforge.jp/pt_BR/ - Ruby-GNOME2 API Reference http://ruby-gnome2.sourceforge.jp/hiki.cgi?Ruby-GNOME2+API+Reference - Tutorials (English) http://ruby-gnome2.sourceforge.jp/hiki.cgi?tutorials (French) http://ruby-gnome2.sourceforge.jp/fr/hiki.cgi?tutoriels (German) http://ruby-gnome2.sourceforge.jp/de/hiki.cgi?tutoriais (Italian) http://ruby-gnome2.sourceforge.jp/it/hiki.cgi?tutorials (Japanese) http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?tutorials (Portuguese(BR)) http://ruby-gnome2.sourceforge.jp/pt_BR/hiki.cgi?tutoriais - Samples http://ruby-gnome2.sourceforge.jp/hiki.cgi?Samples Gnome Canvas Clock http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gnome+Canvas+Clock Gnome Canvas Credits http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gnome+Canvas+Credits Tabbed Notebook MDI http://ruby-gnome2.sourceforge.jp/hiki.cgi?MDI - Other resources http://ruby-gnome2.sourceforge.jp/hiki.cgi?Links Changes since version 0.10.1 =========================== * Ruby/GLib [Kouhei Sutou, Vincent Isambart, Masao Mutoh] - Fix bugs, Improved, Added some methods. * Ruby/ATK [Vincent Isambart, Masao Mutoh] - Support ATK+-1.7.x. - Fixed bugs, Improved, Added some methods. * Ruby/Pango [Geoff Youngs, Vincent Isambart, Masao Mutoh] - Improved, Fix bugs. * Ruby/GdkPixbuf [Geoff Youngs, Masao Mutoh] - Support GTK+-2.4.x. - Fixed bugs, Improved, Added some methods. * Ruby/GTK [Geoff Youngs, Vincent Isambart, Masao Mutoh] - Fixed bugs, Improved, Added some methods. * Ruby/GNOME [Masao Mutoh] - Improved. * Ruby/GnomeCanvas [Masao Mutoh] - Fixed bugs, Improved, Added some methods. * Ruby/Libglade [Masao Mutoh] - Improved. * Ruby/Libart [Vincent Isambart, Masao Mutoh] - Improved to support ruby-1.7.x or later. - Changed: [Masao Mutoh] Art::Canvas::Color.new -> Art::Canvas.color. Art::Vpath::Dash -> Art::VpathDash. * Ruby/GConf [Masao Mutoh] - Improved. * Ruby/GStreamer [Masao Mutoh] - Improved. * Ruby/GnomeVFS [Masao Mutoh] - Improved. * Ruby/GtkHtml2 [Masao Mutoh] - Improved. * Ruby/GtkGLExt [Vincent Isambart] - Improved. * Ruby/Libgda - None. * Ruby/PanelApplet - None. * Ruby/GtkSourceView [Vincent Isambart, Masao Mutoh] - Fixed bugs. * Ruby/GnomePrint [NEW] - Added. [Kouhei Sutou] * Ruby/GnomePrintUI [NEW: Alpha release] - Added. [Kouhei Sutou] * Ruby/RSVG [NEW: Alpha release] - Added. [Kouhei Sutou] -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-14 09:53:47
|
むとうです。 On Sun, 14 Nov 2004 19:51:05 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > > うーむ、まだ出ますか...。 > > たぶん、libgnomecanvasとgtk+でのg_object_refの内部での使い方あたりの > > 違いに問題があるんじゃないかなぁ、と思ってはいるのですが...。 > > GnomeCanvas が削除された後に GnomeCanvasItem が削除されて、 > > - gnome_canvas_item_dispose() > - redraw_if_visible() > - gnome_canvas_request_redraw() > --> GnomeCanvas は削除されているのでwarning > > となっているところまではつきとめました。 > とりあえずは rbgnome-canvas-item.c の citem_intialize() で > g_object_ref(group); > の代りに > g_object_ref(_SELF(self)); > とするとwarningは消えるのですが、これは明らかに間違った対処方法(二重ref) > なのでCVSに入れるわけにはいかない。 他のやつもこの辺が問題だったんですよね。 この現象ってrequest_redrawする前段階に二重にunrefされてるから GnomeCanvasが削除されてるんですよね。 だとすれば、二重refであっても、それが適正な回数であれば問題ないと思います。 問題は適正かどうかなのですが、これはこれで難しそうですね。 この場合のメモリリークは許容範囲内かもしれないですし(^^;)。 もしかしたら他のメソッドでg_object_refをしないといけない場所があるのかも しれませんね。 ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? というのは私の環境ではもうこの現象出ていないんですよね。 > うーむ。今週リリースですよね。 はい。今作業中です。 > 問題ではあるけど coredump するとかいった critical な問題ではないので > known bug としてリリースしてしまっても良いかな。 そうしましょう。 > # 次に私が作業できるのは水曜以降(これから仕事)となるので。m(__)m そ、それはお疲れさまですm(__)m。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2004-11-14 03:24:59
|
久保です。 遅れました。m(__)m Masao Mutoh <mu...@hi...> writes: > うーむ、まだ出ますか...。 > たぶん、libgnomecanvasとgtk+でのg_object_refの内部での使い方あたりの > 違いに問題があるんじゃないかなぁ、と思ってはいるのですが...。 GnomeCanvas が削除された後に GnomeCanvasItem が削除されて、 - gnome_canvas_item_dispose() - redraw_if_visible() - gnome_canvas_request_redraw() --> GnomeCanvas は削除されているのでwarning となっているところまではつきとめました。 とりあえずは rbgnome-canvas-item.c の citem_intialize() で g_object_ref(group); の代りに g_object_ref(_SELF(self)); とするとwarningは消えるのですが、これは明らかに間違った対処方法(二重ref) なのでCVSに入れるわけにはいかない。 うーむ。今週リリースですよね。 問題ではあるけど coredump するとかいった critical な問題ではないので known bug としてリリースしてしまっても良いかな。 # 次に私が作業できるのは水曜以降(これから仕事)となるので。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...> - 2004-11-13 15:10:55
|
むとうです。 さらに補足です。 On Sat, 13 Nov 2004 23:15:46 +0900 Masao Mutoh <mu...@hi...> wrote: > 須藤さん > > むとうです。 > > 本件ですが、作業の時間の都合上、私の方でやってしまいました。 > 問題がある場合はまた直してやってください。 > バージョンは私の環境で動いたので前述のとおりにしました。 > > あと、定数周りの設定を変更しました。 > もしかしたらまだ説明してなかったかもしれませんが > GEnum/GFlags周りを定数値化する場合、以下のように > 2つの定義をします。 > > (1) Gnome::PrintDialog::ResponseFlags::ALL > (2) Gnome::PrintDialog::RANGE_ALL > > マニュアル等には(2)を記載しています。 > > 歴史的背景を説明しますと、 > 当初(2)のみを使っていました。というのはGEnum/GFlags > の仕組みをRuby-GNOME2側がサポートしていなかったからです。 > > その後、GEnum/GFlagsを導入する際に、(1)の形態が > 採用されましたが、(2)も互換性のため残されました。 > > 今は、互換性だけではなく、「長いのは入力するのが大変」 > ということからも(2)の形を主、(1)の形を従にした方が良いと > 考えています。 > > また、ここだけ特例で3つのモジュール階層を取っています。 この例はあくまでもGEnum/GFlagsに適用されるものです。 通常の定数値しかないものは(2)の形態をとります。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-13 14:54:31
|
むとうです。 On Sat, 13 Nov 2004 23:37:18 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Ruby/GnomePrintUIとRuby/RSVG" on Sat, 13 Nov 2004 19:49:23 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > Ruby/GnomePrintUIのコメントです。 > > > サンプルという意味では無意味に複雑かもしれません(^^;)。 > > Renderer#draw*が多すぎるということですよね? > > 実は,#draw*はRuby/GnomePrintのサンプルと同じもので, > Ruby/GnomePrintUIを使うと,出力ファイル名とか簡単に変えられ > るでしょ?とかいうのを見せたかったりします. > > もうひとつの理由として,Ruby/GnomePrintUIにはプレビュー機能 > もあるので,いろんな種類の図形や,画像や,文字があったほうが > 面白いかなぁと思ったというのもあります. あ、いや、違います。 単純に私のパッチ自体が「サンプルにしては無意味に複雑」という ことを意図していました。 - filename = Dir["sample/*.png"].first + filename = Dir["**/*.png"].first この部分。結構悩む人も多いかなと。 だったら、いっそのこと、 filename = "foo.png" とした方がサンプル的には自明でいいんじゃないかなー、と思っただけです。 誤解を招く表現ですみません。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2004-11-13 14:37:33
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Ruby/GnomePrintUIとRuby/RSVG" on Sat, 13 Nov 2004 19:49:23 +0900, Masao Mutoh <mu...@hi...> wrote: > Ruby/GnomePrintUIのコメントです。 > サンプルという意味では無意味に複雑かもしれません(^^;)。 Renderer#draw*が多すぎるということですよね? 実は,#draw*はRuby/GnomePrintのサンプルと同じもので, Ruby/GnomePrintUIを使うと,出力ファイル名とか簡単に変えられ るでしょ?とかいうのを見せたかったりします. もうひとつの理由として,Ruby/GnomePrintUIにはプレビュー機能 もあるので,いろんな種類の図形や,画像や,文字があったほうが 面白いかなぁと思ったというのもあります. |
From: Kouhei S. <ko...@co...> - 2004-11-13 14:30:20
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Ruby/GnomePrintUIとRuby/RSVG" on Sat, 13 Nov 2004 19:54:22 +0900, Masao Mutoh <mu...@hi...> wrote: > 私の環境は > > pkg-config --modversion librsvg-2.0 > 2.6.4 > > ですが、以下のようなWarningが出ました。 2.8.xな環境しかないため気付きませんでした. ありがとうございます. Requirementsを更新しました. |
From: Kouhei S. <ko...@co...> - 2004-11-13 14:28:02
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Ruby/GnomePrintUIとRuby/RSVG" on Sat, 13 Nov 2004 23:15:46 +0900, Masao Mutoh <mu...@hi...> wrote: > 本件ですが、作業の時間の都合上、私の方でやってしまいました。 > 問題がある場合はまた直してやってください。 > バージョンは私の環境で動いたので前述のとおりにしました。 よく考えてみたら,必要なのはlibgnomeprintではなくて, Ruby/GnomePrintだったのでそうしました. > あと、定数周りの設定を変更しました。 > もしかしたらまだ説明してなかったかもしれませんが > GEnum/GFlags周りを定数値化する場合、以下のように > 2つの定義をします。 > > (1) Gnome::PrintDialog::ResponseFlags::ALL > (2) Gnome::PrintDialog::RANGE_ALL > > マニュアル等には(2)を記載しています。 わかりました. これからはそうします. |