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: Masahiro S. ()
<sa...@to...> - 2006-05-27 12:58:20
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 21:31:06 +0900 > むとうです。 > > On Sat, 27 May 2006 16:13:31 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > そうですね。 > > Containerの直接の子Widgetに関しては不要になります。 > > 間接的な子孫に関してはまだダメですが。 > > rbgtkcontainer.cでmark時にgtk_container_forall呼んで > マークするというのはようやく理解したのですが、 > ↓これって、サブクラスにも有効なんでしたっけ。 > VALUE gContainer = G_DEF_CLASS2(GTK_TYPE_CONTAINER, > "Container", mGtk, cont_mark, NULL); サブクラスにも有効になるようRuby/GLib2側を変更してあります。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-27 12:31:17
|
むとうです。 On Sat, 27 May 2006 16:13:31 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 15:06:18 +0900 > > > むとうです。 > > > > > 助かります。久しぶりに復活ですねー。 > > > > > > 復活というか、やり残したことを片付けたくなったんですよ。 > > > > あぁ、そうでしたか。残念。 > > すみません。 あー、いえいえ。お気になさらぬよう。 > > ところで質問なのですが、今回の対応をすることで、G_CHILD_ADD/REMOVEって > > 基本的に不要になる、という考えで良いんですかね。 > > 少なくともContainer周りは不要になりますよね。 > > そうですね。 > Containerの直接の子Widgetに関しては不要になります。 > 間接的な子孫に関してはまだダメですが。 rbgtkcontainer.cでmark時にgtk_container_forall呼んで マークするというのはようやく理解したのですが、 ↓これって、サブクラスにも有効なんでしたっけ。 VALUE gContainer = G_DEF_CLASS2(GTK_TYPE_CONTAINER, "Container", mGtk, cont_mark, NULL); というのは、例えば、GtkWindowの場合は、cont_markをつけていない訳なんですが、 これって、それで大丈夫ですかね。 G_DEF_CLASS_GTK_CONTAINERみたいなのが必要なのかなぁ、と一瞬思ったのですが...。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-27 12:30:26
|
むとうです。 On Sat, 27 May 2006 16:13:31 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 15:06:18 +0900 > > > むとうです。 > > > > > 助かります。久しぶりに復活ですねー。 > > > > > > 復活というか、やり残したことを片付けたくなったんですよ。 > > > > あぁ、そうでしたか。残念。 > > すみません。 あー、いえいえ。お気になさらぬよう。 > > ところで質問なのですが、今回の対応をすることで、G_CHILD_ADD/REMOVEって > > 基本的に不要になる、という考えで良いんですかね。 > > 少なくともContainer周りは不要になりますよね。 > > そうですね。 > Containerの直接の子Widgetに関しては不要になります。 > 間接的な子孫に関してはまだダメですが。 rbgtkcontainer.cでmark時にgtk_container_forall呼んで マークするというのはようやく理解したのですが、 ↓これって、サブクラスにも有効なんでしたっけ。 VALUE gContainer = G_DEF_CLASS2(GTK_TYPE_CONTAINER, "Container", mGtk, cont_mark, NULL); というのは、例えば、GtkWindowの場合は、cont_markをつけていない訳なんですが、 これって、それで大丈夫ですかね。 G_DEF_CLASS_GTK_CONTAINERみたいなのが必要なのかなぁ、と一瞬思ったのですが...。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 09:21:58
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 15:04:22 +0900 > むとうです。 > > On Sat, 27 May 2006 14:53:28 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > From: Masao Mutoh <mu...@hi...> > > Date: Sat, 27 May 2006 14:42:01 +0900 > > > > > むとうです。 > > > > > > On Sat, 27 May 2006 01:25:56 +0900 (JST) > > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > > > 酒井です。 > > > > 単にソースコードのディレクトリとは別ディレクトリでextconf.rbを走らせて、 > > > > そこでビルドするだけです。 > > > > 例えば、複数のRuby向けにそれぞれビルドしたい時とかに便利ですよ。 > > > > > > > > % mkdir build-ruby18 > > > > % cd build-ruby18 > > > > % ruby (Ruby-GNOME2のディレクトリ)/extconf.rb > > > > % make > > > > % cd .. > > > > % mkdir build-yarv > > > > % cd build-yarv > > > > % ruby-yarv (Ruby-GNOME2のディレクトリ)/extconf.rb > > > > % make > > > > > > なるほど。それは便利ですね(今さら)! > > > > > > 忘れないようにHikiにメモっておきました。 > > > > > > http://ruby-gnome2.sourceforge.jp/hiki.cgi?howto_compile_serverl_ruby > > > > 前述のように、今は使えなくなってますけどね(汗 > > あ、そっか。まぁ、いいです。忘れないように、ということで。 とりあえず、Makefileを別ディレクトリに作れるようにするところまでのパッ チを添付します。実際に別ディレクトリでビルド出来るようにするには、 add_depend_package等も変更の必要があるはずです。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 07:13:41
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 15:06:18 +0900 > むとうです。 > > > 助かります。久しぶりに復活ですねー。 > > > > 復活というか、やり残したことを片付けたくなったんですよ。 > > あぁ、そうでしたか。残念。 すみません。 > ところで質問なのですが、今回の対応をすることで、G_CHILD_ADD/REMOVEって > 基本的に不要になる、という考えで良いんですかね。 > 少なくともContainer周りは不要になりますよね。 そうですね。 Containerの直接の子Widgetに関しては不要になります。 間接的な子孫に関してはまだダメですが。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-27 06:06:26
|
むとうです。 On Sat, 27 May 2006 12:50:21 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 01:04:06 +0900 > > > むとうです。 > > > > On Fri, 26 May 2006 19:42:12 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > 酒井です。 > > > > > > なるほど・・・。 > > > > 親玉をmarkする際に、そのときに存在するすべてのプロパティ値を > > > > 拾ってmarkするようにしてしまう、という感じですね。こちらは > > > > コンテナ、GObjectならなんでも実施するという感じですね。 > > > > > > ちょっと考えてたのですが、「子やプロパティ値について、対応するRubyのオ > > > ブジェクトが存在する場合に、それをmarkする」というのは難しくはないです > > > が、それ以上のことをするのはtrivialとは言えなさそうです。 > > > # これだけだと、そこまで嬉しくなさそうだなぁ... > > > > GOBJ2RVALのタイミングでもmarkされるとこまではやるってことですかね。 > > ちょっと理解できてません(^^;)。 > > やるのは、GOBJ2RVALのタイミングでなく、RubyのGCのmark phaseでです。 > > 「そこまで嬉しくない」と書いたのは、あるglib側オブジェクトAから直接参照して > るBにはRuby側オブジェクトが存在せず、Bから参照されているCにはRuby側オブジェ > クトが存在するという場合に、AからCをmarkするのが現状では難しいから。 > (Rubyを拡張してGC終了時にフックをかけられるようにすれば出来るけど) なるほど。 > > > 上で書いたとこまでなら、暇なときにでも実装しておきます。 > > とりあえず基本的な部分を実装してコミットしました。 > コードの整理はこれからですが、とりあえず問題はないと思います。 > > > 助かります。久しぶりに復活ですねー。 > > 復活というか、やり残したことを片付けたくなったんですよ。 あぁ、そうでしたか。残念。 ところで質問なのですが、今回の対応をすることで、G_CHILD_ADD/REMOVEって 基本的に不要になる、という考えで良いんですかね。 少なくともContainer周りは不要になりますよね。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-27 06:04:31
|
むとうです。 On Sat, 27 May 2006 14:53:28 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 14:42:01 +0900 > > > むとうです。 > > > > On Sat, 27 May 2006 01:25:56 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > 酒井です。 > > > > > > > しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない > > > > > ということは、みんなは別ディレクトリでビルドしたりはしないものなので > > > > > しょうか? ……便利なのに。 > > > > > > > > いやぁ、実は使い方わかってません(苦笑)。 > > > > これって、どうやって使うんでしたっけ? > > > > > > > > それでは。 > > > > > > 単にソースコードのディレクトリとは別ディレクトリでextconf.rbを走らせて、 > > > そこでビルドするだけです。 > > > 例えば、複数のRuby向けにそれぞれビルドしたい時とかに便利ですよ。 > > > > > > % mkdir build-ruby18 > > > % cd build-ruby18 > > > % ruby (Ruby-GNOME2のディレクトリ)/extconf.rb > > > % make > > > % cd .. > > > % mkdir build-yarv > > > % cd build-yarv > > > % ruby-yarv (Ruby-GNOME2のディレクトリ)/extconf.rb > > > % make > > > > なるほど。それは便利ですね(今さら)! > > > > 忘れないようにHikiにメモっておきました。 > > > > http://ruby-gnome2.sourceforge.jp/hiki.cgi?howto_compile_serverl_ruby > > 前述のように、今は使えなくなってますけどね(汗 あ、そっか。まぁ、いいです。忘れないように、ということで。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-27 05:59:13
|
むとうです。 On Sat, 27 May 2006 14:50:15 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 14:33:17 +0900 > > > むとうです。 > > > > On Sat, 27 May 2006 13:34:54 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > 効率はともかく、それ以外でもまずいことになっているのに気づいたので、 > > > revertさせてください。 > > > > > > Sjoerd Simons の言うように別スレッドでrclosure_marshalが呼ばれること > > > があるとすると、Data_Make_StructでRubyのオブジェクトを割り当てるべき > > > ではないです。Data_Make_StructでGCが発生した場合にまずいし、 > > > またData_Make_Structしてからメインスレッドにそのオブジェクトが渡るまでの > > > 間はGCから保護されなくてまずいので。 > > > > おっと、これはちょっと待ってください。 > > > > 今、Sjoerdのパッチが取り込まれるところです(SjoerdにCVSへのアクセス権を > > 与えました)。 > > > > なので、それとの関係性はどうなるのがベストでしょうか? > > 最終形態がSjoerdのものを取り込んだ状態、あるいは同様のもの、 > > と言う形にはしたいのですが。 > > > > なので、revertというよりは、むしろ、SjoerdがあてるであろうCVS版への > > パッチ、と言う形が望ましいのではないかと思うのですが、いかがでしょうか。 > > うげっ。 > Sjoerdのパッチは既にコミットされていたので、それに対して修正しちゃいました。 > ひょっとして、Sjoerdの作業はまだ終わってなかったですか? > # devel-enをあまりまじめに読んでませんでした…… あ、いや、ごめんなさい。私の勘違いだったみたいです。 確かにコミットメールにSjoerdのがありました。 #昨日の夜にあげたばっかりだったのでまだ作業してないかと思いこんでました・・・。 終わりよければすべてよし、ということで。 ではでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 05:53:44
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 14:42:01 +0900 > むとうです。 > > On Sat, 27 May 2006 01:25:56 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > > しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない > > > > ということは、みんなは別ディレクトリでビルドしたりはしないものなので > > > > しょうか? ……便利なのに。 > > > > > > いやぁ、実は使い方わかってません(苦笑)。 > > > これって、どうやって使うんでしたっけ? > > > > > > それでは。 > > > > 単にソースコードのディレクトリとは別ディレクトリでextconf.rbを走らせて、 > > そこでビルドするだけです。 > > 例えば、複数のRuby向けにそれぞれビルドしたい時とかに便利ですよ。 > > > > % mkdir build-ruby18 > > % cd build-ruby18 > > % ruby (Ruby-GNOME2のディレクトリ)/extconf.rb > > % make > > % cd .. > > % mkdir build-yarv > > % cd build-yarv > > % ruby-yarv (Ruby-GNOME2のディレクトリ)/extconf.rb > > % make > > なるほど。それは便利ですね(今さら)! > > 忘れないようにHikiにメモっておきました。 > > http://ruby-gnome2.sourceforge.jp/hiki.cgi?howto_compile_serverl_ruby 前述のように、今は使えなくなってますけどね(汗 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 05:51:04
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 14:33:17 +0900 > むとうです。 > > On Sat, 27 May 2006 13:34:54 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 効率はともかく、それ以外でもまずいことになっているのに気づいたので、 > > revertさせてください。 > > > > Sjoerd Simons の言うように別スレッドでrclosure_marshalが呼ばれること > > があるとすると、Data_Make_StructでRubyのオブジェクトを割り当てるべき > > ではないです。Data_Make_StructでGCが発生した場合にまずいし、 > > またData_Make_Structしてからメインスレッドにそのオブジェクトが渡るまでの > > 間はGCから保護されなくてまずいので。 > > おっと、これはちょっと待ってください。 > > 今、Sjoerdのパッチが取り込まれるところです(SjoerdにCVSへのアクセス権を > 与えました)。 > > なので、それとの関係性はどうなるのがベストでしょうか? > 最終形態がSjoerdのものを取り込んだ状態、あるいは同様のもの、 > と言う形にはしたいのですが。 > > なので、revertというよりは、むしろ、SjoerdがあてるであろうCVS版への > パッチ、と言う形が望ましいのではないかと思うのですが、いかがでしょうか。 うげっ。 Sjoerdのパッチは既にコミットされていたので、それに対して修正しちゃいました。 ひょっとして、Sjoerdの作業はまだ終わってなかったですか? # devel-enをあまりまじめに読んでませんでした…… -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-27 05:42:14
|
むとうです。 On Sat, 27 May 2006 01:25:56 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > > しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない > > > ということは、みんなは別ディレクトリでビルドしたりはしないものなので > > > しょうか? ……便利なのに。 > > > > いやぁ、実は使い方わかってません(苦笑)。 > > これって、どうやって使うんでしたっけ? > > > > それでは。 > > 単にソースコードのディレクトリとは別ディレクトリでextconf.rbを走らせて、 > そこでビルドするだけです。 > 例えば、複数のRuby向けにそれぞれビルドしたい時とかに便利ですよ。 > > % mkdir build-ruby18 > % cd build-ruby18 > % ruby (Ruby-GNOME2のディレクトリ)/extconf.rb > % make > % cd .. > % mkdir build-yarv > % cd build-yarv > % ruby-yarv (Ruby-GNOME2のディレクトリ)/extconf.rb > % make なるほど。それは便利ですね(今さら)! 忘れないようにHikiにメモっておきました。 http://ruby-gnome2.sourceforge.jp/hiki.cgi?howto_compile_serverl_ruby -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-27 05:33:28
|
むとうです。 On Sat, 27 May 2006 13:34:54 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 効率はともかく、それ以外でもまずいことになっているのに気づいたので、 > revertさせてください。 > > Sjoerd Simons の言うように別スレッドでrclosure_marshalが呼ばれること > があるとすると、Data_Make_StructでRubyのオブジェクトを割り当てるべき > ではないです。Data_Make_StructでGCが発生した場合にまずいし、 > またData_Make_Structしてからメインスレッドにそのオブジェクトが渡るまでの > 間はGCから保護されなくてまずいので。 おっと、これはちょっと待ってください。 今、Sjoerdのパッチが取り込まれるところです(SjoerdにCVSへのアクセス権を 与えました)。 なので、それとの関係性はどうなるのがベストでしょうか? 最終形態がSjoerdのものを取り込んだ状態、あるいは同様のもの、 と言う形にはしたいのですが。 なので、revertというよりは、むしろ、SjoerdがあてるであろうCVS版への パッチ、と言う形が望ましいのではないかと思うのですが、いかがでしょうか。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 04:35:17
|
酒井です。 From: Kouhei Sutou <ko...@co...> Date: Sat, 27 May 2006 13:15:51 +0900 (JST) > 須藤です. > > 私はあまり効率にこだわらないタイプです.ごめんなさい. > > In <200...@to...> > "[ruby-gnome2-devel-ja] rbgobj_closure.c について質問" on Sat, 27 May 2006 13:01:00 +0900 (JST), > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > #define CALLBACK_KEY rb_str_new2("callback") > > > #define EXTRA_ARGS_KEY rb_str_new2("extra_args") > > > > としていますが、これだと CALLBACK_KEY や EXTRA_ARGS_KEY が使われるごとに > > rb_str_new2することになって効率が悪いのではないでしょうか? > > 常にメモリ上にもっておくことが嫌だったのでこうしました. > こだわっていないのでグローバルに持つようにしてもらってかまい > ません. この場合の正解は、callbackとextra_argsをGRClosureHolderのフィールドに 持つようにして、markすることだと思います。 > > > 2006-04-15 Kouhei Sutou <ko...@co...> > > > > > > * src/rbgobj_closure.c (rclosure_marshal, rclosure_marshal_body): > > > Changed an argument type to VALUE from struct marshal_arg *. > > > > この変更は何のためなのでしょうか? > > VALUEにキャストしたりして強引(でもないですが)に呼び出すの > が気持ち悪かったのでこうしました. なるほど。 > > 以前の struct marshal_arg をスタックに確保するコードに比べて、 > > ヒープに struct marshal_arg を確保する分遅くなります。 > > そういうことは全然考えていませんでした.revertしてかまいませ > ん. 効率はともかく、それ以外でもまずいことになっているのに気づいたので、 revertさせてください。 Sjoerd Simons の言うように別スレッドでrclosure_marshalが呼ばれること があるとすると、Data_Make_StructでRubyのオブジェクトを割り当てるべき ではないです。Data_Make_StructでGCが発生した場合にまずいし、 またData_Make_Structしてからメインスレッドにそのオブジェクトが渡るまでの 間はGCから保護されなくてまずいので。 -- 酒井 政裕 / Masahiro Sakai |
From: Kouhei S. <ko...@co...> - 2006-05-27 04:15:57
|
須藤です. 私はあまり効率にこだわらないタイプです.ごめんなさい. In <200...@to...> "[ruby-gnome2-devel-ja] rbgobj_closure.c について質問" on Sat, 27 May 2006 13:01:00 +0900 (JST), Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > #define CALLBACK_KEY rb_str_new2("callback") > > #define EXTRA_ARGS_KEY rb_str_new2("extra_args") > > としていますが、これだと CALLBACK_KEY や EXTRA_ARGS_KEY が使われるごとに > rb_str_new2することになって効率が悪いのではないでしょうか? 常にメモリ上にもっておくことが嫌だったのでこうしました. こだわっていないのでグローバルに持つようにしてもらってかまい ません. > > 2006-04-15 Kouhei Sutou <ko...@co...> > > > > * src/rbgobj_closure.c (rclosure_marshal, rclosure_marshal_body): > > Changed an argument type to VALUE from struct marshal_arg *. > > この変更は何のためなのでしょうか? VALUEにキャストしたりして強引(でもないですが)に呼び出すの が気持ち悪かったのでこうしました. > 以前の struct marshal_arg をスタックに確保するコードに比べて、 > ヒープに struct marshal_arg を確保する分遅くなります。 そういうことは全然考えていませんでした.revertしてかまいませ ん. |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 04:01:18
|
酒井です。 rbgobj_closure.c について質問です。 > #define CALLBACK_KEY rb_str_new2("callback") > #define EXTRA_ARGS_KEY rb_str_new2("extra_args") としていますが、これだと CALLBACK_KEY や EXTRA_ARGS_KEY が使われるごとに rb_str_new2することになって効率が悪いのではないでしょうか? > 2006-04-15 Kouhei Sutou <ko...@co...> > > * src/rbgobj_closure.c (rclosure_marshal, rclosure_marshal_body): > Changed an argument type to VALUE from struct marshal_arg *. この変更は何のためなのでしょうか? 以前の struct marshal_arg をスタックに確保するコードに比べて、 ヒープに struct marshal_arg を確保する分遅くなります。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 03:50:52
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 01:04:06 +0900 > むとうです。 > > On Fri, 26 May 2006 19:42:12 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > なるほど・・・。 > > > 親玉をmarkする際に、そのときに存在するすべてのプロパティ値を > > > 拾ってmarkするようにしてしまう、という感じですね。こちらは > > > コンテナ、GObjectならなんでも実施するという感じですね。 > > > > ちょっと考えてたのですが、「子やプロパティ値について、対応するRubyのオ > > ブジェクトが存在する場合に、それをmarkする」というのは難しくはないです > > が、それ以上のことをするのはtrivialとは言えなさそうです。 > > # これだけだと、そこまで嬉しくなさそうだなぁ... > > GOBJ2RVALのタイミングでもmarkされるとこまではやるってことですかね。 > ちょっと理解できてません(^^;)。 やるのは、GOBJ2RVALのタイミングでなく、RubyのGCのmark phaseでです。 「そこまで嬉しくない」と書いたのは、あるglib側オブジェクトAから直接参照して るBにはRuby側オブジェクトが存在せず、Bから参照されているCにはRuby側オブジェ クトが存在するという場合に、AからCをmarkするのが現状では難しいから。 (Rubyを拡張してGC終了時にフックをかけられるようにすれば出来るけど) > > 上で書いたとこまでなら、暇なときにでも実装しておきます。 とりあえず基本的な部分を実装してコミットしました。 コードの整理はこれからですが、とりあえず問題はないと思います。 > 助かります。久しぶりに復活ですねー。 復活というか、やり残したことを片付けたくなったんですよ。 -- 酒井 政裕 / Masahiro Sakai |
From: Kouhei S. <ko...@co...> - 2006-05-27 01:47:18
|
須藤です. In <200...@to...> "Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] 別ディレクトリでのビルド" on Sat, 27 May 2006 01:25:56 +0900 (JST), Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない > > > ということは、みんなは別ディレクトリでビルドしたりはしないものなので > > > しょうか? ……便利なのに。 > > > 例えば、複数のRuby向けにそれぞれビルドしたい時とかに便利ですよ。 あぁ,こういう風に使うんですか.確かに便利ですね. 今度から別ディレクトリでビルドしようかしら. |
From: Kouhei S. <ko...@co...> - 2006-05-27 01:46:04
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] GC related callback for Gtk.idle_add and Gtk.timeout_add." on Fri, 26 May 2006 00:47:14 +0900, Masao Mutoh <mu...@hi...> wrote: > > それは面倒臭そうなのでやりたくなかったのですが,やりました. > > 口ばかりですみませんです。 いえいえ,リリース作業の方が大変ですから,それに比べたら全然 です. ;D > はい。大丈夫なようです。CVSへお願いします。 コミットしました. |
From: Masahiro S. ()
<sa...@to...> - 2006-05-26 16:26:18
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 01:05:30 +0900 > むとうです。 > > On Fri, 26 May 2006 01:19:05 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > From: "Masao Mutoh" <mut...@gm...> > > Date: Thu, 25 May 2006 23:22:08 +0900 > > > > > むとうです。 > > > #なんだか、私のプロバイダからだとメールが送れたり送れなかったり・・・。 > > > > > > On Thu, 25 May 2006 23:03:29 +0900 (JST) > > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > > > 酒井です。 > > > > > > > > 以前はソースコードのディレクトリとは別のディレクトリでビルド出来たはず > > > > ですが、久しぶりに試したらビルドに失敗しました。 > > > > Makefileがビルド用のディレクトリではなくソースコードのディレクトリに作 > > > > られてしまったりしています。 > > > > > > あれ? > > > なんでしょう。その辺、全然いじった記憶がないんですけど・・・。 > > > > 以前というのは2年くらい前の話です。 > > たしか当時はcreate_makefile_at_srcdirとかなかったと思いますし、 > > それからだいぶ変更されているはずです。 > > > > しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない > > ということは、みんなは別ディレクトリでビルドしたりはしないものなので > > しょうか? ……便利なのに。 > > いやぁ、実は使い方わかってません(苦笑)。 > これって、どうやって使うんでしたっけ? > > それでは。 単にソースコードのディレクトリとは別ディレクトリでextconf.rbを走らせて、 そこでビルドするだけです。 例えば、複数のRuby向けにそれぞれビルドしたい時とかに便利ですよ。 % mkdir build-ruby18 % cd build-ruby18 % ruby (Ruby-GNOME2のディレクトリ)/extconf.rb % make % cd .. % mkdir build-yarv % cd build-yarv % ruby-yarv (Ruby-GNOME2のディレクトリ)/extconf.rb % make -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-26 16:05:40
|
むとうです。 On Fri, 26 May 2006 01:19:05 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: "Masao Mutoh" <mut...@gm...> > Date: Thu, 25 May 2006 23:22:08 +0900 > > > むとうです。 > > #なんだか、私のプロバイダからだとメールが送れたり送れなかったり・・・。 > > > > On Thu, 25 May 2006 23:03:29 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > 酒井です。 > > > > > > 以前はソースコードのディレクトリとは別のディレクトリでビルド出来たはず > > > ですが、久しぶりに試したらビルドに失敗しました。 > > > Makefileがビルド用のディレクトリではなくソースコードのディレクトリに作 > > > られてしまったりしています。 > > > > あれ? > > なんでしょう。その辺、全然いじった記憶がないんですけど・・・。 > > 以前というのは2年くらい前の話です。 > たしか当時はcreate_makefile_at_srcdirとかなかったと思いますし、 > それからだいぶ変更されているはずです。 > > しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない > ということは、みんなは別ディレクトリでビルドしたりはしないものなので > しょうか? ……便利なのに。 いやぁ、実は使い方わかってません(苦笑)。 これって、どうやって使うんでしたっけ? それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-26 16:04:29
|
むとうです。 On Fri, 26 May 2006 19:42:12 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > なるほど・・・。 > > 親玉をmarkする際に、そのときに存在するすべてのプロパティ値を > > 拾ってmarkするようにしてしまう、という感じですね。こちらは > > コンテナ、GObjectならなんでも実施するという感じですね。 > > ちょっと考えてたのですが、「子やプロパティ値について、対応するRubyのオ > ブジェクトが存在する場合に、それをmarkする」というのは難しくはないです > が、それ以上のことをするのはtrivialとは言えなさそうです。 > # これだけだと、そこまで嬉しくなさそうだなぁ... GOBJ2RVALのタイミングでもmarkされるとこまではやるってことですかね。 ちょっと理解できてません(^^;)。 > > ところで、久しぶりに実装をお願いできませんか? > > どうも私が実装するととんちんかんなことをしてしまいそうな気がして・・・。 > > その点、さかいさんなら安心です(^^;)。 > > 了解しました。 > 上で書いたとこまでなら、暇なときにでも実装しておきます。 助かります。久しぶりに復活ですねー。 ではでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-26 10:42:48
|
酒井です。 From: "Masao Mutoh" <mut...@gm...> Date: Thu, 25 May 2006 22:38:03 +0900 > むとうです。 > > > > RubyのGCのmark phaseでrb_gc_mark()するという話です。 > > > > > > > > # ついでに、オブジェクトのプロパティを同様にmarkするのも良さそう。 > > > > # parentもプロパティなので須藤さんの案を包摂しますし。 > > > > > > Gtk::TextViewとGtk::TextBufferはコンテナとその子供、という関係では > > > 無いので、この例では、gtk_container_forallの対応をしてもNGではないでしょうか。 > > > > この場合Gtk::TextBufferはGtk::TextViewのbufferプロパティになっているので、 > > プロパティをmarkするようにすればこの例についてはOKです。 > > なるほど・・・。 > 親玉をmarkする際に、そのときに存在するすべてのプロパティ値を > 拾ってmarkするようにしてしまう、という感じですね。こちらは > コンテナ、GObjectならなんでも実施するという感じですね。 ちょっと考えてたのですが、「子やプロパティ値について、対応するRubyのオ ブジェクトが存在する場合に、それをmarkする」というのは難しくはないです が、それ以上のことをするのはtrivialとは言えなさそうです。 # これだけだと、そこまで嬉しくなさそうだなぁ... > ところで、久しぶりに実装をお願いできませんか? > どうも私が実装するととんちんかんなことをしてしまいそうな気がして・・・。 > その点、さかいさんなら安心です(^^;)。 了解しました。 上で書いたとこまでなら、暇なときにでも実装しておきます。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-05-25 16:19:33
|
酒井です。 From: "Masao Mutoh" <mut...@gm...> Date: Thu, 25 May 2006 23:22:08 +0900 > むとうです。 > #なんだか、私のプロバイダからだとメールが送れたり送れなかったり・・・。 > > On Thu, 25 May 2006 23:03:29 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > 以前はソースコードのディレクトリとは別のディレクトリでビルド出来たはず > > ですが、久しぶりに試したらビルドに失敗しました。 > > Makefileがビルド用のディレクトリではなくソースコードのディレクトリに作 > > られてしまったりしています。 > > あれ? > なんでしょう。その辺、全然いじった記憶がないんですけど・・・。 以前というのは2年くらい前の話です。 たしか当時はcreate_makefile_at_srcdirとかなかったと思いますし、 それからだいぶ変更されているはずです。 しかし、別ディレクトリでビルド出来なくなっていることに誰も気づかない ということは、みんなは別ディレクトリでビルドしたりはしないものなので しょうか? ……便利なのに。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-25 15:47:27
|
むとうです。 On Fri, 26 May 2006 00:10:47 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] GC related callback for Gtk.idle_add and Gtk.timeout_add." on Thu, 25 May 2006 22:34:33 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > ざくっとやってみましたが,いくつか問題点が見えてきました. > > > > > > * funcをそのままdataとしてg_idle_addしているわけではないので, > > > idle_removeが動かなくなる. > > > > なるほど。正直、削除できなくてもいいやぁ、くらいで実装してしまった記憶が(^^;)。 > > idle_addの方で、 > > g_idle_addの戻り値をキーにしてfuncオブジェクトを保持して、 > > g_idle_removeの方は、g_idle_addの戻り値を引数として受け取って、そのfuncオブジェクト > > を検索し、dataとして渡す、と言う感じでどうでしょうか? > > それは面倒臭そうなのでやりたくなかったのですが,やりました. 口ばかりですみませんです。 (ざっくり略) > ということで,添付のパッチでどうでしょう? > > 手元のテストスクリプトはこんな感じです. はい。大丈夫なようです。CVSへお願いします。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-05-25 15:11:40
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] GC related callback for Gtk.idle_add and Gtk.timeout_add." on Thu, 25 May 2006 22:34:33 +0900, Masao Mutoh <mu...@hi...> wrote: > > ざくっとやってみましたが,いくつか問題点が見えてきました. > > > > * funcをそのままdataとしてg_idle_addしているわけではないので, > > idle_removeが動かなくなる. > > なるほど。正直、削除できなくてもいいやぁ、くらいで実装してしまった記憶が(^^;)。 > idle_addの方で、 > g_idle_addの戻り値をキーにしてfuncオブジェクトを保持して、 > g_idle_removeの方は、g_idle_addの戻り値を引数として受け取って、そのfuncオブジェクト > を検索し、dataとして渡す、と言う感じでどうでしょうか? それは面倒臭そうなのでやりたくなかったのですが,やりました. > > * GLib::Source.removeでG_REMOVE_RELATIVEしていないのでリーク > > する.G_REMOVE_RELATIVEできるようにするには...GLib::Source > > にG_RELATIVE2しておくとよいのかなぁ... > > なるほど・・・。確かにそのような対応が必要そうですね。 GLib::Source.removeをrbglib_maincontext.cにもってきてごにょ ごにょしました. > > * GLib::Idle.addでpriorityも設定出来るようにした方がよさげだ > > けど,現在はfuncをblockとしてではなくoptionalとして取得でき > > るようになっているので,priorityを入れるための引数の順番が > > 悩ましい. > > g_idle_add()からg_idle_add_full()にしたい、ってことですよね。 > > これ、API変えちゃいましょう。互換性を持たせておけばいいです。 > > GLib::Idle.add(&func) > GLib::Idle.add(priority, &func) > > APIリファレンスからは前者をObsolete扱いで抜かしちゃえばいいでしょう。 > > idle_add(argc, argv, self) > { > VALUE arg1, arg2; > > rb_scan_args(argc, argv, "02", &arg1, &arg2); > > if arg1 がProc > else arg1がpriority このようにしました. ということで,添付のパッチでどうでしょう? 手元のテストスクリプトはこんな感じです. --- require "glib2" class A; end @mainloop = GLib::MainLoop.new(nil, true) def idle_start i = 100 as = [] GLib::Idle.add do as << A.new i -= 1 if i.zero? @mainloop.quit false else true end end end def idle_test idle_start @mainloop.run end 10.times do idle_test p [:before, ObjectSpace.each_object(A) {}] GC.start p [:after, ObjectSpace.each_object(A) {}] end --- |