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: Kazuhiro N. <zn...@mb...> - 2006-07-06 08:02:20
|
西山和広です。 Debian sargeの % pkg-config --modversion gtk+-2.0 2.6.4 % dpkg -l libgtk2-ruby|grep '^ii' ii libgtk2-ruby 0.12.0-2 GTK+ bindings for the Ruby language % という環境で、以下のようにThreadの中でGtk::Dialog#runを実行すると responseが-6(RESPONSE_CANCEL)や-5(RESPONSE_OK)ではなく、 -1(RESPONSE_NONE)になることが多いのですが、 これはそういうもの(Dialog#runしたままシグナルハンドラから 抜けてはいけない)なのでしょうか? 別の処理をしたり外部コマンドを実行したりする都合でスレッドを 作っていて、その中でMessageDialogを使ったら-1になることが 多くて、悩んでいたらスレッドの中というのが原因でした。 #!/usr/bin/ruby -Ku require 'gtk2' Gtk.init window = Gtk::Window.new window.signal_connect('destroy') { Gtk.main_quit } button = Gtk::Button.new('_Test') button.signal_connect('clicked') do Thread.start do dialog = Gtk::MessageDialog.new(nil, Gtk::Dialog::DESTROY_WITH_PARENT, Gtk::MessageDialog::QUESTION, Gtk::MessageDialog::BUTTONS_OK_CANCEL, "test message") dialog.run do |response| p response end dialog.destroy end end window.add(button) window.show_all Gtk.main -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA) |
From: Masao M. <mu...@hi...> - 2006-07-03 16:09:52
|
むとうです。 GTK+-2.10.0がリリースされちゃいましたね。 http://www.gtk.org/gtk-2.10-announcement.html どなたか実装をお手伝いしていただける方いませんか? #私自身はちょっとお疲れ気味でして・・・(T_T)。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-07-01 19:36:23
|
むとうです。 Ruby-GNOME2-0.15.0をリリースしました。 Highlights ========== * Ruby/VTEを追加しました。 Ruby/VTEはターミナルエミュレータ用のウィジェットです。 http://www.gnome.org/ * Ruby/Popplerを追加しました。 Ruby/PopplerはPDFレンダリング用のライブラリです。 * Gtk.initは省略できるようになりました。 * 改善、バグフィクスを行いました。 その他の変更点については以下を参照してください。 http://ruby-gnome2.sourceforge.jp/hiki.cgi?News_20060701_1 Downloads ========= http://sourceforge.net/project/showfiles.php?group_id=53614 * ruby-gtk2-x.x.x.tar.gz Ruby/GTK2を動作させるための最小限のパッケージです。 Ruby/GLib2, Ruby/ATK, Ruby/GdkPixbuf, Ruby/Pango, Ruby/GTK2. * ruby-gnome2-all-x.x.x.tar.gz 全てのRuby-GNOME2ライブラリが含まれます。このパッケージは インストール時にその環境に存在するGNOMEライブラリにあるもの のみをコンパイル・インストールしますので、GTK+しか持って いない人でもこちらのパッケージを利用できます。 * ruby-gtk2-x.x.x-x-i386-msvcrt-1.8.zip One-Click Ruby Installer向けのバイナリパッケージです。 Ruby/GLib2, Ruby/ATK, Ruby/GdkPixbuf2, Ruby/Pango, Ruby/GTK2, Ruby/Libglade2, Ruby/Libart, Ruby/GtkGLExtの他に外部ライブラリの rcairo-1.0.0を含みます。 [注] このパッケージはOne-Click Ruby Installerに含まれるiconv.dll/exeを 置き換えます。 謝辞 ==== 今回も多くの方々のご協力がありました。ありがとうございました。 以下にお名前をあげさせていただきます。(敬称略) Daniel Chokola, Geoff Youngs, Joao Pedrosa, Kouhei Sutou, Laurent Sansonetti, Mario Steele, Masahiro Sakai, Mirko Maischberger, NISHI Takao, Sjoerd Simons, Tilman Sauerbeck What's Ruby-GNOME2? =================== Ruby-GNOME2はGNOME2.xで使用される主要なライブラリのRuby言語バインディングです。 現在、以下のライブラリをサポートしています: #ちょっと詳しく書いてみました。 == 基本ライブラリ * Ruby/GLib2 - 基本的かつ便利なユーティリティクラス群。および、 GLib::Objectをはじめとする基本クラスを提供。他のライブラリ から参照される * Ruby/ATK - アクセシビリティ * Ruby/Pango - 国際化されたテキスト・フォント処理 * Ruby/GdkPixbuf2 - イメージ(画像)処理 * Ruby/GTK2 - GUIコンポーネント == 拡張ライブラリ * Ruby/GConf2 - アプリの設定を保存・取得 * Ruby/GNOME2 - Ruby/GLib2, Ruby/GTK2を補助するようなGUI コンポーネントやGNOME環境での便利機能を提供 * Ruby/GnomeCanvas2 - 構造化された描画・画像処理 * Ruby/GnomePrint - 印刷処理 * Ruby/GnomePrintUI - 印刷処理用のGUI * Ruby/GnomeVFS - 仮想ファイルシステム * Ruby/GStreamer - 動画・音声処理 * Ruby/GtkGLExt - OpenGLを利用した3次元描画処理 * Ruby/GtkHtml2 - HTMLレンダリング(CSSにも対応) * Ruby/GtkMozeEmbed - Mozilla/FirefoxのレンダリングエンジンであるGecko をGTK+のGUIコンポーネントとして使う * Ruby/GtkSourceView - テキストエディタ向けの高度なテキスト表示コンポーネント (言語毎にキーワードを強調する等) * Ruby/Libart2 - 描画に関する基本的な計算機能と、それを画像ファイル化する機能 * Ruby/Libgda - データベースアクセス * Ruby/Libglade2 - GUIビルダGlade2が生成するgladeを読み込み実体化する * Ruby/PanelApplet - GNOMEパネルアプレット用のGUIアプリ作成用のライブラリ * Ruby/Poppler [NEW] - PDFレンダリング用のライブラリ * Ruby/RSVG - SVG処理 * Ruby/VTE [NEW] - ターミナルエミュレータ用のウィジェット 各種リソース ========== - 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/ (Spanish) http://ruby-gnome2.sourceforge.jp/es/ (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 (English) http://ruby-gnome2.sourceforge.jp/hiki.cgi?Ruby-GNOME2+API+Reference (Japanese) http://ruby-gnome2.sourceforge.jp/ja/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 - Other resources http://ruby-gnome2.sourceforge.jp/hiki.cgi?Links Changes since version 0.14.1 ============================ * Ruby/GLib - Improve signal handlers with pthread ruby(--enable-pthread). [Sjoerd Simons] - Added new fundamental object for other bindings. [Sjoerd Simons] - GLib::Source#remove -> GLib::Soruce.remove [Kouhei Sutou] - Added new macros (GLIST2ARYF, GLIST2ARY2F, GSLIST2ARYF, GLIST2ARY2F, G_PROTECT_CALLBACK) [Masao Mutoh] - Added GLib.win32_locale, GLib, win32_locale_filename_from_utf8 [Kouhei Sutou] - Improve memory management [Kouhei Sutou, Sjoerd Simons, Masahiro Sakai, Masao Mutoh] - Other improvement and fix bugs. [Sjoerd Simons, Joao Pedrosa, Kouhei Sutou, Masahiro Sakai, Masao Mutoh] * Ruby/ATK - Improved cygwin support. [Masao Mutoh] - Fix a bug. [Masahiro Sakai] * Ruby/Pango - Fix some bugs. [Laurent Sansonetti, Masao Mutoh] - Added Pango::Layout#markup=, Pango::AttrAbsoluteSize [Masao Mutoh] * Ruby/GdkPixbuf - Fix a bug. [NISHI Takao] - Code cleanup [Masao Mutoh] * Ruby/GTK - Improve signal handlers. [Masahiro Sakai] - Added Gtk::Widget#set_widget, #set_requisition. [Daniel Chokola] - Added Gtk::Dialog#get_response. [Masao Mutoh] - Other improvement and fix bugs [Mario Steele, Tilman Sauerbeck, Geoff Youngs, Masahiro Sakai, Kouhei Sutou, Masao Mutoh] * Ruby/GNOME - Follow Ruby/GLib2 change(GRClosure). [Kouhei Sutou] * Ruby/GnomeCanvas - Code cleanup [Kouhei Sutou, Masao Mutoh] * Ruby/Libglade - Fixed some bugs and trivial improvement. [Masao Mutoh] * Ruby/Libart - None. * Ruby/GConf - Sample code cleanup. [Masao Mutoh] * Ruby/GStreamer - Sample code cleanup. [Masao Mutoh] * Ruby/GnomeVFS - Improved and fixed bugs. [Masahiro Sakai, Masao Mutoh] * Ruby/GtkHtml2 - Sample code cleanup. [Masao Mutoh] * Ruby/GtkGLExt - Improved and fixed bugs. [Kouhei Sutou, Masao Mutoh] * Ruby/Libgda - Fix build against 1.3.x branch (libgda-2.x). [Laurent Sansonetti] * Ruby/PanelApplet - Fixed a bug [Patch #1431855] * Ruby/GtkSourceView - Sample code cleanup. [Masao Mutoh] * Ruby/GnomePrint - Added Gnome::Print::BINDING_VERSION. Code cleanup [Kouhei Sutou] * Ruby/GnomePrintUI - Added Gnome::PrintUI::BINDING_VERSION. [Kouhei Sutou] - Sample code cleanup. [Masao Mutoh] * Ruby/RSVG - Added RSVG::BINDING_VERSION, RBRSVG_MAJOR_VERSION, RBRSVG_MINOR_VERSION, RBRSVG_MICRO_VERSION. [Kouhei Sutou] - Supported 2.14. - Improved, fixed bugs [Kouhei Sutou, Masao Mutoh] * Ruby/GtkMozEmbed - Improved, fixed bugs [Mirko Maischberger, Masao Mutoh] * Ruby/Poppler [NEW] [EXPERIMENTAL] - Added [Kouhei Sutou] * Ruby/VTE [NEW] - Added [Kouhei Sutou] -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-29 18:56:03
|
むとうです。 この問題ですが、ようやく直せました。 glib/src/rbglib_mainloop.cで同様の処理をしていたところで イベント関数を追加していたため、gtk_events_pendingがいつまでも FALSEにならなかったのが原因でした。 で、rbgtk.cにあるpoll funcをrbglib_mainloop.cの方に統合 しました。無駄なPollが減ったのでもしかしたらちょっとは速くなる かも・・・って期待したのですがほとんど変わりませんでした(苦笑)。 試すにはCVS版のRuby/GLib, Ruby/GTKの両方とも再コンパイルする 必要があります。 #リリースに間に合った・・・。 On Thu, 2 Feb 2006 00:12:53 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Wed, 01 Feb 2006 21:17:38 +0900 (JST) > Kouhei Sutou <ko...@co...> wrote: > > > 須藤です. > > > > In <200...@hi...> > > "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Wed, 1 Feb 2006 00:19:23 +0900, > > Masao Mutoh <mu...@hi...> wrote: > > > > > 今さらですがこの修正を私のWindows環境で試してみましたが、 > > > どうも、まだ、falseになってくれないみたいです。 > > > #Linux環境だと、一回trueが出てスクリプトが終了する。 > > > > 手元のLinux環境で,USE_POLL_FUNCをdefineして実験したときはう > > まく動いていたのですが,「本当の」Windows環境だとうまく動か > > ないんですか... > > > > すいません,Windows環境がなく,何が問題なのかわからないので, > > 私はお手上げです. > > いえいえ。一方的にお願いしちゃってすみませんでした。 > 時間を見つけて見てみますね(って、私が直せるのだろうか・・・苦笑) > > -- > .:% Masao Mutoh<mu...@hi...> > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-18 13:43:51
|
むとうです。 On Sun, 18 Jun 2006 02:50:47 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > 不思議なのが、5.で以下のようなデバッグコードを入れて実行すると、 > if (FL_TEST(klass, FL_SINGLETON)) { > super = RCLASS(klass)->super; > g_print("rbgobj_lookup_class: %s\n", rb_class2name(super)); > g_print("rbgobj_lookup_class: %s\n", rb_class2name(CLASS_OF(super))); > } else { > > 最初のsuperが Gtk::Labelなのですが、CLASS_OF(super)の方がFooableを返すんですよね。 > でも、superがGtk::Labelなのに、次のrbgobj_lookup_class(super)のrb_hash_arefで > Fooableが呼び出されるのもよくわかりません・・・。 > #特異クラス周りの動作がよくわかってないのが問題なんですが・・・。 super = RCLASS(klass)->super; の部分を super = rb_class_real(klass); に変えたら直ったみたいです。 ということで、CVSにあげました。 何か問題があったら言ってください。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 17:50:56
|
むとうです。 リリースに向けバグつぶしを行っていたのでですが さっそく山にぶつかってしまいました。 格闘したのですがとりあえず眠くなったので明日以降に持ち越そうと思います。 一応、今日調べたところまでをメモしておきます。 って、つまり、どなたかお知恵プリーズ! 発端は結構昔にLaurentがMLにポストした内容[1]ですが、 おそらく#1496185[2]も同件だと思います。 [1] http://sourceforge.net/mailarchive/forum.php?forum_id=9443&max_rows=25&style=flat&viewmonth=200512&viewday=6 [2] http://sourceforge.net/tracker/index.php?func=detail&aid=1496185&group_id=53614&atid=470969 サンプルスクリプトは以下になります。 module Fooable def foo p 'foo' end def self.extend_object(o) p "extending #{o}" super end end require 'gtk2' Gtk.init l = Gtk::Label.new l.text = "abc" # works l.extend(Fooable) l.foo # works l.text = "def" # does not work anymore [3] 原因を追ってみると、[3]の呼び出しの中の rbgobj_lookup_class(klass)で 以下のような挙動をしているところが直接的には問題みたいです。 1. rbgtklable.cで_SELF(self)を呼び出す 2. rbgobject.cのrbgobj_instance_from_ruby_object()の G_TYPE_FUNDAMENTAL()でRVAL2GTYPEを呼び出す 3. rbgobj_type.cのrbgobj_lookup_class()に入る 4. 最初、Gtk::Labelをキーにrb_hash_aref()でlookupするが、 ヒットしない(特異クラスだから実際はGtk::Labelのサブクラスで検索ということ?) 5. 次にif (FL_TEST(klass, FL_SINGLETON)) {に入る。 ここで、super = RCLASS(klass)->super;して、 再びrbgobj_lookup_class(super);を呼び出す。 6. で、なぜかここで、rb_hash_aref()に渡されるklassの値が Fooableになっているようで、これが以下のメッセージを出力 しています。 test.rb:31:in `text': undefined method `hash' for #<Fooable:0xb7b8ae98> (NoMethodError) 不思議なのが、5.で以下のようなデバッグコードを入れて実行すると、 if (FL_TEST(klass, FL_SINGLETON)) { super = RCLASS(klass)->super; g_print("rbgobj_lookup_class: %s\n", rb_class2name(super)); g_print("rbgobj_lookup_class: %s\n", rb_class2name(CLASS_OF(super))); } else { 最初のsuperが Gtk::Labelなのですが、CLASS_OF(super)の方がFooableを返すんですよね。 でも、superがGtk::Labelなのに、次のrbgobj_lookup_class(super)のrb_hash_arefで Fooableが呼び出されるのもよくわかりません・・・。 #特異クラス周りの動作がよくわかってないのが問題なんですが・・・。 % ruby -v ruby 1.8.4 (2005-12-24) [i686-linux] はー、難しい。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 15:08:30
|
むとうです。 On Sun, 18 Jun 2006 00:03:04 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Ruby/Popplerのコンパイル" on Sat, 17 Jun 2006 23:50:58 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > ところで、再び質問なのですが、Ruby/PopplerってI18n済みなのでしょうか? > > 日本語などを含んだPDFもレンダリングできるか,ということでしょ > うか.ということであれば,Xpdf由来の方法,つまり > /etc/xpdf/xpdfrc*を使ってフォントのマッピングをして,できま > す. > > > 入力がCairoってことは日本語のドキュメントとかを扱うことってできますよね? > > 入力がcairoじゃなくて,出力がcairoなんですよ.なので, > > > #AustinのPDF::Writerの対抗馬になりうるのかなと。 > > にはならないと思います. > > 対抗馬になりうるのはPopplerじゃなくて,cairoだと思います. なるほど。なんか前にも説明して頂いたのですがどうにも理解が悪いようです(苦笑)。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-06-17 15:05:21
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Ruby/Popplerのコンパイル" on Sat, 17 Jun 2006 23:50:58 +0900, Masao Mutoh <mu...@hi...> wrote: > ところで、再び質問なのですが、Ruby/PopplerってI18n済みなのでしょうか? 日本語などを含んだPDFもレンダリングできるか,ということでしょ うか.ということであれば,Xpdf由来の方法,つまり /etc/xpdf/xpdfrc*を使ってフォントのマッピングをして,できま す. > 入力がCairoってことは日本語のドキュメントとかを扱うことってできますよね? 入力がcairoじゃなくて,出力がcairoなんですよ.なので, > #AustinのPDF::Writerの対抗馬になりうるのかなと。 にはならないと思います. 対抗馬になりうるのはPopplerじゃなくて,cairoだと思います. |
From: Masao M. <mu...@hi...> - 2006-06-17 14:52:13
|
むとうです。 全てのサンプル等でGtk.initを呼び出しているものを 修正しました。 On Sat, 17 Jun 2006 22:22:03 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Tue, 13 Jun 2006 00:39:20 +0900 > Masao Mutoh <mu...@hi...> wrote: > > > むとうです。 > > > > On Mon, 12 Jun 2006 01:13:36 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > Gtk.init を導入するきっかけになった私が言うのもアレなのですが、 > > > 毎回 Gtk.init しなくてはいけないのは、「設定無しが良い設定」 > > > という観点から、あまり良くない設計だと思うようになりました。 > > > > > > そこで提案なのですが、現在の gtk2.rb の中身を gtk2/base.rb の > > > ようなファイル(名前は適当)に移動して、gtk2.rb 自体は > > > 「require 'gtk2/base'; Gtk.init」のような中身にするというのは > > > どうでしょうか? > > > > > > そうすれば、一般のアプリケーションでは require 'gtk2' するだ > > > けで Gtk.init なしで使うことが出来、またgtk+を自分自身で初期 > > > 化する必要のある特殊なアプリケーションでは、 require 'gtk2' > > > のかわりに require 'gtk2/base' とすることで、自分で Gtk.init > > > を使ってgtk+を初期化することが出来ます。 > > > > なるほど。基本的には賛成です。 > > > > ちょっと気になるのが、 > > 1. "gtk2/base"のためだけにフォルダを作ること。 > > 2. 互換性を残す > > > > の2点ですが、まぁ、1は許容範囲ですかね。 > > 2.は必須ですね。従来のGtk.initを呼び出しているのはそのまま使える > > ようにするのと、Gnome::Program.newがおかしくならなければ良いのかな。 > > > > その辺だけ気をつけて頂いた上で、お任せしちゃってよろしいですか? > > 私の方でやってしまいました。 > > 名前等も同じです。 > > それでは。 > > -- > .:% Masao Mutoh<mu...@hi...> > > > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 14:51:06
|
むとうです。 On Sat, 17 Jun 2006 23:36:51 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "[ruby-gnome2-devel-ja] Ruby/Popplerのコンパイル" on Sat, 17 Jun 2006 17:22:49 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > Ruby/Popplerがコンパイルできなかったのでご報告します。 > > Poppler、Ruby/PopplerともにCVS版です。 > > 実は,Poppler CVS + poppler-glibのパッチが必要なんです. > でも,それだと辛いと思うので,パッチが無くても,無いなりにコ > ンパイルできるようにしておきました. うーぬ、まだ取り込まれていなかったんですね・・・。 > > GLIST2ARYFの件で、Ruby/Popplerの方にも手を入れようかと > > 思ってたんですが、ちょっと上記の件が出てしまったのでやめました。 > > 私の方でやっておきました. ありがとうございます。動作を確認しました。 ところで、再び質問なのですが、Ruby/PopplerってI18n済みなのでしょうか? 入力がCairoってことは日本語のドキュメントとかを扱うことってできますよね? #AustinのPDF::Writerの対抗馬になりうるのかなと。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-06-17 14:36:57
|
須藤です. In <200...@hi...> "[ruby-gnome2-devel-ja] Ruby/Popplerのコンパイル" on Sat, 17 Jun 2006 17:22:49 +0900, Masao Mutoh <mu...@hi...> wrote: > Ruby/Popplerがコンパイルできなかったのでご報告します。 > Poppler、Ruby/PopplerともにCVS版です。 実は,Poppler CVS + poppler-glibのパッチが必要なんです. でも,それだと辛いと思うので,パッチが無くても,無いなりにコ ンパイルできるようにしておきました. > GLIST2ARYFの件で、Ruby/Popplerの方にも手を入れようかと > 思ってたんですが、ちょっと上記の件が出てしまったのでやめました。 私の方でやっておきました. |
From: Masao M. <mu...@hi...> - 2006-06-17 13:22:12
|
むとうです。 On Tue, 13 Jun 2006 00:39:20 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Mon, 12 Jun 2006 01:13:36 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > Gtk.init を導入するきっかけになった私が言うのもアレなのですが、 > > 毎回 Gtk.init しなくてはいけないのは、「設定無しが良い設定」 > > という観点から、あまり良くない設計だと思うようになりました。 > > > > そこで提案なのですが、現在の gtk2.rb の中身を gtk2/base.rb の > > ようなファイル(名前は適当)に移動して、gtk2.rb 自体は > > 「require 'gtk2/base'; Gtk.init」のような中身にするというのは > > どうでしょうか? > > > > そうすれば、一般のアプリケーションでは require 'gtk2' するだ > > けで Gtk.init なしで使うことが出来、またgtk+を自分自身で初期 > > 化する必要のある特殊なアプリケーションでは、 require 'gtk2' > > のかわりに require 'gtk2/base' とすることで、自分で Gtk.init > > を使ってgtk+を初期化することが出来ます。 > > なるほど。基本的には賛成です。 > > ちょっと気になるのが、 > 1. "gtk2/base"のためだけにフォルダを作ること。 > 2. 互換性を残す > > の2点ですが、まぁ、1は許容範囲ですかね。 > 2.は必須ですね。従来のGtk.initを呼び出しているのはそのまま使える > ようにするのと、Gnome::Program.newがおかしくならなければ良いのかな。 > > その辺だけ気をつけて頂いた上で、お任せしちゃってよろしいですか? 私の方でやってしまいました。 名前等も同じです。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 11:09:30
|
むとうです。 On Sat, 17 Jun 2006 18:29:26 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > これなのですが、まぁ、今までの動作は置いておいて、 > > さかいさんのおっしゃるとおり、rb_protect()していない > > gtk_m_functionのバグで、そちらを修正した方が良さそうです。 > > なおしました。 > > まず、Ruby/GLib2にG_PROTECT_CALLBACKというマクロを追加しました。 > これで囲んだ関数内で例外が発生するとエラーメッセージを出して > 異常終了します。 > > ここで、異常終了(exit(EXIT_FAILURE);)をさせてしまうのが > rclosure_marshal_do()の今までの実装と異なります。 > rclosure_marshal_do()もこちらのマクロを使うように変更しました > ので、今後は「メインループ内に登録したブロック内でエラーが発生した場合は > エラーメッセージを表示した上で異常終了する」 > ということになります。 > > もしかしたら、Gtk.timeout_add等で例外が上がっても続いて欲しい・・・ > というニーズがあるかと思ったのですが、やっぱりそこは、アプリ作者の > 人が自分で例外を捕捉すべきと考え、exitしちゃうことにしました。 > > 問題がありましたら言ってください。 強制的に終了してしまうしか手が無いとすると例えばデバッガなどで困ることも あるかと思い直し、GLib.exit_applicationというモジュール関数を作り それを呼び出すことにしました。 どうしても終了したくない場合はそちらをオーバーライドするということになります。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 09:38:48
|
むとうです。 On Thu, 15 Jun 2006 09:42:09 +0900 "Kouhei Sutou" <ko...@co...> wrote: > 須藤です. > 実はもうひとつ気になっていることがあります.添付してあったプロ > グラムを実行し,C-cするとSegmentation faultになります.これも > やはりアプリケーション側の問題ということになるのでしょうか? 調べてみたんですが、私の環境では以下のようなコードでもSegfaultします。 あまり深く追ってはいませんが、Ruby-GNOME2の問題ってわけじゃないん じゃないかなぁ。 #include <ruby.h> int main(int argc, char **argv) { ruby_init(); ruby_init_loadpath(); ruby_script(argv[0]); ruby_set_argv(argc, argv); rb_eval_string("loop {p 1; sleep 1}\n"); return 0; } 実行結果: 1 1 (eval): (eval):0:in `sleep': (Interrupt) from (eval):0 from (eval):0:in `loop' from (eval):0 (eval): [BUG] Segmentation fault ruby 1.8.2 (2004-12-25) [i386-linux] zsh: abort ./test2 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 09:29:35
|
むとうです。 On Thu, 15 Jun 2006 01:26:12 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Wed, 14 Jun 2006 17:03:03 +0900 > "Kouhei Sutou" <ko...@co...> wrote: > > > 須藤です. > > > > 06/06/14 に 酒井政裕 Masahiro Sakai<sa...@to...> さんは書きました: > > > > > このコードについては、Gtk.timeout_add で登録したブロックを呼び出す > > > gtk_m_functionがrb_protectを使っていないのがまずいので、 > > > それを修正すれば良いと思います。 > > > > はい,それはわかります. > > ただ,どう修正すればよいのかがわかりません.単にrb_protect() > > して例外をあげないようにすると,↓の例でも例外があがらないよ > > うになり,今までの動作とことなることになります. > > これなのですが、まぁ、今までの動作は置いておいて、 > さかいさんのおっしゃるとおり、rb_protect()していない > gtk_m_functionのバグで、そちらを修正した方が良さそうです。 なおしました。 まず、Ruby/GLib2にG_PROTECT_CALLBACKというマクロを追加しました。 これで囲んだ関数内で例外が発生するとエラーメッセージを出して 異常終了します。 ここで、異常終了(exit(EXIT_FAILURE);)をさせてしまうのが rclosure_marshal_do()の今までの実装と異なります。 rclosure_marshal_do()もこちらのマクロを使うように変更しました ので、今後は「メインループ内に登録したブロック内でエラーが発生した場合は エラーメッセージを表示した上で異常終了する」 ということになります。 もしかしたら、Gtk.timeout_add等で例外が上がっても続いて欲しい・・・ というニーズがあるかと思ったのですが、やっぱりそこは、アプリ作者の 人が自分で例外を捕捉すべきと考え、exitしちゃうことにしました。 問題がありましたら言ってください。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 08:23:00
|
須藤さん むとうです。 Ruby/Popplerがコンパイルできなかったのでご報告します。 Poppler、Ruby/PopplerともにCVS版です。 [mutoh@linux]~/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/poppler% ruby extconf.rb checking for GCC... yes checking for rb_define_alloc_func()... yes checking for rb_block_proc()... yes checking for new allocation framework... yes checking for attribute assignment... yes checking for poppler-glib... yes checking for G_PLATFORM_WIN32... no checking for cairo... yes checking for rb_cairo.h... yes creating rbpopplerversion.h creating Makefile [mutoh@linux]~/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/poppler% make make[1]: Entering directory `/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/poppler/src' gcc -fPIC -g -O2 -Wall -I/usr/include/poppler/glib -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/cairo -I/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/glib/src -I. -I/usr/lib/ruby/1.8/i686-linux -I/usr/lib/ruby/1.8/i686-linux -I/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/poppler/src -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_NODE_ATTRASGN -DHAVE_RB_CAIRO_H -DRUBY_POPPLER_COMPILATION -I/usr/lib/ruby/site_ruby/1.8/i686-linux -c rbpoppler-attachment.c gcc -fPIC -g -O2 -Wall -I/usr/include/poppler/glib -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/cairo -I/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/glib/src -I. -I/usr/lib/ruby/1.8/i686-linux -I/usr/lib/ruby/1.8/i686-linux -I/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/poppler/src -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_NODE_ATTRASGN -DHAVE_RB_CAIRO_H -DRUBY_POPPLER_COMPILATION -I/usr/lib/ruby/site_ruby/1.8/i686-linux -c rbpoppler-page.c rbpoppler-page.c: In function ‘page_render_selection’: rbpoppler-page.c:154: error: incompatible type for argument 2 of ‘poppler_page_render_selection’ rbpoppler-page.c:154: 警告: passing argument 3 of ‘poppler_page_render_selection’ makes integer from pointer without a cast rbpoppler-page.c:154: 警告: passing argument 4 of ‘poppler_page_render_selection’ from incompatible pointer type rbpoppler-page.c:154: 警告: passing argument 5 of ‘poppler_page_render_selection’ from incompatible pointer type rbpoppler-page.c:154: 警告: passing argument 6 of ‘poppler_page_render_selection’ from incompatible pointer type rbpoppler-page.c:154: error: too few arguments to function ‘poppler_page_render_selection’ rbpoppler-page.c: In function ‘page_render_selection_to_pixbuf’: rbpoppler-page.c:169: 警告: implicit declaration of function ‘poppler_page_render_selection_to_pixbuf’ make[1]: *** [rbpoppler-page.o] エラー 1 make[1]: Leaving directory `/home/mutoh/dev/ruby/gnome-ruby/sf/cvs/ruby-gnome2/poppler/src' make: *** [all] エラー 2 GLIST2ARYFの件で、Ruby/Popplerの方にも手を入れようかと 思ってたんですが、ちょっと上記の件が出てしまったのでやめました。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 07:05:16
|
むとうです。 On Thu, 15 Jun 2006 09:42:09 +0900 "Kouhei Sutou" <ko...@co...> wrote: > 須藤です. > > 06/06/15 に Masao Mutoh<mu...@hi...> さんは書きました: > > > 過去の議論でもありましたが、以下のような整理になると思います。 > > 1. Gtkのイベントループに登録したRubyのブロックがどこかで例外を発生した場合、 > > それをブロック内で処理(捕捉)しないでコケルのはアプリの不具合 > > 2. 実際に捕捉していない例外が発生した場合、与えられたRubyのブロックの外側で例外 > > を捕捉し、Rubyが出してるっぽいエラーメッセージをRuby/GLib2がかわりに出す > > #ここまですればエラーの原因を開発者が発見できる・・・はず。 > > わかりました. > > > で、実際に、signal周りはこのような実装になっています。 > > #もちろん、実装したのはさかいさんです、念のため(笑)。 > > 確認しました. > > > 実はもうひとつ気になっていることがあります.添付してあったプロ > グラムを実行し,C-cするとSegmentation faultになります.これも > やはりアプリケーション側の問題ということになるのでしょうか? いやぁ、実は気づいたのですが、追うのやめてしまいました(苦笑)。 Ruby/GTK側でのsignal(GLibのシグナルではない方です)のハンドリング 周りが原因ですかね・・・・。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-17 07:02:44
|
むとうです。 この件で、Ruby/GLib2に新たに GLIST2ARYF, GLIST2ARY2F, GSLIST2ARYF, GSLIST2ARY2F (最後にFを付けた) というマクロを追加しました。それぞれ、内部でg_list_free, g_slist_free を呼び出します。 単純にg_list_freeすれば良いモノなどはマクロの置き換えだけで対応可能です。 一部、listの内容を明示的にunrefするようなモノは元のGLIST2ARY等を 使います。 なお、Ruby/GTK2は対応しました。 On Tue, 30 May 2006 01:15:00 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Mon, 29 May 2006 23:34:59 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > GLIST2ARY, GLIST2ARY2, GSLIST2ARY, GSLIST2ARY2 を使っている部分で > > リークしている個所が結構あります。例えば以下のコードは、 > > gtk_window_list_toplevels()が新たに確保したリストを、 > > g_list_freeしていないためにリークしてます。 > > > > static VALUE > > gwin_s_list_toplevels(self) > > VALUE self; > > { > > return GLIST2ARY(gtk_window_list_toplevels()); > > } > > ご指摘ありがとうございます。 > なんで気づかなかったんだろう。見直さないとですねぇ。 > > -- > .:% Masao Mutoh<mu...@hi...> > > > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost and Risk! > Fully trained technicians. The highest number of Red Hat certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-06-17 04:52:04
|
須藤です. 06/06/15 に Masao Mutoh<mu...@hi...> さんは書きました: > 過去の議論でもありましたが、以下のような整理になると思います。 > 1. Gtkのイベントループに登録したRubyのブロックがどこかで例外を発生した場合、 > それをブロック内で処理(捕捉)しないでコケルのはアプリの不具合 > 2. 実際に捕捉していない例外が発生した場合、与えられたRubyのブロックの外側で例外 > を捕捉し、Rubyが出してるっぽいエラーメッセージをRuby/GLib2がかわりに出す > #ここまですればエラーの原因を開発者が発見できる・・・はず。 わかりました. > で、実際に、signal周りはこのような実装になっています。 > #もちろん、実装したのはさかいさんです、念のため(笑)。 確認しました. 実はもうひとつ気になっていることがあります.添付してあったプロ グラムを実行し,C-cするとSegmentation faultになります.これも やはりアプリケーション側の問題ということになるのでしょうか? |
From: Masao M. <mu...@hi...> - 2006-06-14 16:26:38
|
むとうです。 On Wed, 14 Jun 2006 17:03:03 +0900 "Kouhei Sutou" <ko...@co...> wrote: > 須藤です. > > 06/06/14 に 酒井政裕 Masahiro Sakai<sa...@to...> さんは書きました: > > > このコードについては、Gtk.timeout_add で登録したブロックを呼び出す > > gtk_m_functionがrb_protectを使っていないのがまずいので、 > > それを修正すれば良いと思います。 > > はい,それはわかります. > ただ,どう修正すればよいのかがわかりません.単にrb_protect() > して例外をあげないようにすると,↓の例でも例外があがらないよ > うになり,今までの動作とことなることになります. これなのですが、まぁ、今までの動作は置いておいて、 さかいさんのおっしゃるとおり、rb_protect()していない gtk_m_functionのバグで、そちらを修正した方が良さそうです。 過去の議論でもありましたが、以下のような整理になると思います。 1. Gtkのイベントループに登録したRubyのブロックがどこかで例外を発生した場合、 それをブロック内で処理(捕捉)しないでコケルのはアプリの不具合 2. 実際に捕捉していない例外が発生した場合、与えられたRubyのブロックの外側で例外 を捕捉し、Rubyが出してるっぽいエラーメッセージをRuby/GLib2がかわりに出す #ここまですればエラーの原因を開発者が発見できる・・・はず。 例えば、signal_connectで発生された例外を捕捉するのはどこか?というと どこで捕捉して良いのか定かではない(Gtk.mainをbegin/rescueで囲むのもカッコ悪いし signal_connectメソッドの周囲を囲むのも変)のでやはりブロックの中で閉じる、 というのがベターかと思います。 で、実際に、signal周りはこのような実装になっています。 #もちろん、実装したのはさかいさんです、念のため(笑)。 rbgobj_closure.cのrclosure_marshal_do()を参考にしてみてください。 それから実際にsignal_connectを使ったサンプルを添付しますね。timeout_addのとき とは違う動作をすることが確認できると思います。 #gtk_m_functionの方を修正してからお見せしようと思ったのですが、 #ちょっと今日は時間切れです・・・。すみません。 もちろん、完全にsegfaulをなくす方法があると良いんですが・・・。 ではでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-06-14 15:33:02
|
酒井です。 From: "Kouhei Sutou" <ko...@co...> Date: Wed, 14 Jun 2006 17:12:08 +0900 > 須藤です. > > 06/06/14 に 酒井政裕 Masahiro Sakai<sa...@to...> さんは書きました: > > > > それは,一番最後の > > > > > > http://www.rubyist.net/~nobu/t/20060614.html#p01 > > > > > > で言われている「境界面でラップする」という解決法を具体的にど > > > のように実現すればよいかがわかりません.だれか教えてもらえま > > > せんか? > > > > コールバックで発生した例外等を、glib側にリターンする前にどこかに保存しておいて、 > > glib側からruby側にリターンしたときに、それを再び投げるということでしょう。 > > やっぱりそういうことですか.でも,その「再び投げる」がいつに > なるのかということがわからないです.って,↓の中にも書いてあ > りますね. > > > 以前にも似たような話が出たことはあります。 > > http://ruby-gnome2.sourceforge.jp/ja/sfmltoj.cgi?key=/mailarchive/forum.php%3Fthread_id%3D1905665%26forum_id%3D9432 glib側からruby側に戻ってくる個所のうち、内部で例外が発生した可能性ある 個所の全てに、「例外が発生していないかチェックして例外を再発生させるコー ド」をいれることになるんじゃないでしょうか。 それから、glib側でさらに処理が続き再びRubyのコードが呼ばれるような場合、 例えばgtkのメインループ等では、処理の中断をする必要があるでしょう。 ですが、そのようなAPIが常に存在するとは限らないはずです。 結局、例外や大域ジャンプを再送出するのは現実的ではないと思いますよ。 > ただ,「再び投げる」というのが実現できたとしても,Ruby側に > リターン出来る場合はすぐにリターンした方が自然な気がします > (現在の動作と同じ).そうしたい場合はRuby側にリターンでき > るかどうかがわからないといけないと思いますが,そういうこと > ってできるのでしょうか. 大域脱出して安全かどうかはglib側がどんな処理を行っているかによりますが、 一般にglibのコードはlongjmpで脱出することなんか考えずに設計されているので、 ドキュメントに特別な記述のない限り、まず危険と考えるべきでしょう。 現在問題が起らないとしてもそれはたまたまだと思います。 -- 酒井 政裕 / Masahiro Sakai |
From: Kouhei S. <ko...@co...> - 2006-06-14 14:34:47
|
須藤です. 06/06/14 に 酒井政裕 Masahiro Sakai<sa...@to...> さんは書きました: > このコードについては、Gtk.timeout_add で登録したブロックを呼び出す > gtk_m_functionがrb_protectを使っていないのがまずいので、 > それを修正すれば良いと思います。 はい,それはわかります. ただ,どう修正すればよいのかがわかりません.単にrb_protect() して例外をあげないようにすると,↓の例でも例外があがらないよ うになり,今までの動作とことなることになります. ということで,なかださんのいうように"ラップして外に送り出す" ということをしないといけないと思うのですが,それをどうすれば いいのかがわからないということです. http://www.rubyist.net/~nobu/t/20060614.html#p01 > > require "gtk2" > > > > Gtk.init > > Gtk.timeout_add(0) do > > raise "timeout" > > end > > > > Gtk.main > > こっちで落ちないのは、ruby_run()から実行されているため、 > 上のコードと異なり「例外でのジャンプ先」がちゃんとあるからです。 はい,そう思っていました. 同じ内容のコードがRubyで書いた場合とCで書いた場合で同じ ように動かないということを示したかったんです. |
From: Kouhei S. <ko...@co...> - 2006-06-14 14:28:37
|
須藤です. In <a79...@ma...> "Re: [ruby-gnome2-devel-ja] コールバック中の例外" on Wed, 14 Jun 2006 17:12:08 +0900, "Kouhei Sutou" <ko...@co...> wrote: > > > > > > http://www.rubyist.net/~nobu/t/20060614.html#p01 > > > > > > で言われている「境界面でラップする」という解決法を具体的にど > > > のように実現すればよいかがわかりません.だれか教えてもらえま > > > せんか? > > > > コールバックで発生した例外等を、glib側にリターンする前にどこかに保存しておいて、 > > glib側からruby側にリターンしたときに、それを再び投げるということでしょう。 > > ただ,「再び投げる」というのが実現できたとしても,Ruby側に > リターン出来る場合はすぐにリターンした方が自然な気がします > (現在の動作と同じ).そうしたい場合はRuby側にリターンでき > るかどうかがわからないといけないと思いますが,そういうこと > ってできるのでしょうか. 少し考えたのですが,もし,リターンできないというのがわかるな ら,そのときはSTDERRとかg_logとかでメッセージを表示するだけ で例外をあげない,というのが落としどころのような気がします. |
From: Kouhei S. <ko...@co...> - 2006-06-14 08:36:45
|
須藤です. 06/06/14 に 酒井政裕 Masahiro Sakai<sa...@to...> さんは書きました: > > それは,一番最後の > > > > http://www.rubyist.net/~nobu/t/20060614.html#p01 > > > > で言われている「境界面でラップする」という解決法を具体的にど > > のように実現すればよいかがわかりません.だれか教えてもらえま > > せんか? > > コールバックで発生した例外等を、glib側にリターンする前にどこかに保存しておいて、 > glib側からruby側にリターンしたときに、それを再び投げるということでしょう。 やっぱりそういうことですか.でも,その「再び投げる」がいつに なるのかということがわからないです.って,↓の中にも書いてあ りますね. > 以前にも似たような話が出たことはあります。 > http://ruby-gnome2.sourceforge.jp/ja/sfmltoj.cgi?key=/mailarchive/forum.php%3Fthread_id%3D1905665%26forum_id%3D9432 ただ,「再び投げる」というのが実現できたとしても,Ruby側に リターン出来る場合はすぐにリターンした方が自然な気がします (現在の動作と同じ).そうしたい場合はRuby側にリターンでき るかどうかがわからないといけないと思いますが,そういうこと ってできるのでしょうか. # もう,ほんと全然わかっていなくてごめんなさい. |
From: Masahiro S. ()
<sa...@to...> - 2006-06-14 08:00:12
|
From: "Kouhei Sutou" <ko...@co...> Date: Wed, 14 Jun 2006 11:11:48 +0900 > 須藤です. > それは,一番最後の > > http://www.rubyist.net/~nobu/t/20060614.html#p01 > > で言われている「境界面でラップする」という解決法を具体的にど > のように実現すればよいかがわかりません.だれか教えてもらえま > せんか? コールバックで発生した例外等を、glib側にリターンする前にどこかに保存しておいて、 glib側からruby側にリターンしたときに、それを再び投げるということでしょう。 以前にも似たような話が出たことはあります。 http://ruby-gnome2.sourceforge.jp/ja/sfmltoj.cgi?key=/mailarchive/forum.php%3Fthread_id%3D1905665%26forum_id%3D9432 -- 酒井 政裕 / Masahiro Sakai |