|
From: Masao M. <mu...@hi...> - 2002-05-27 13:21:58
|
むとうです。 成り行きでRuby-GNOME/Ruby-GNOME2のメンテナになったむとうです。 やるからにはがんばりたいと思いますのでよろしくお願いします。 さて、このMLではRuby-GNOME2の実装方法について話し合っていきたい と思います。 私自身、API設計という部分で不慣れな部分がありますのでみなさん のお力添えを願えたらなと思います。 さて、Ruby-GNOME2を始めるにあたりいくつか先に決めて(知って) おきたいことがあります。 ・シグナルの実装方法 [ruby-list:35231]で触れられてますが、これについて詳しく説明 (あるいは実装)していただけませんでしょうか? > 五十嵐さん 実は、現状のRuby-GNOME2はシグナル周りが動作してません。 そこでそこんところを実装する前に五十嵐さんからお話をいただければ と思います。 ・コードの自動生成 これも以前、五十嵐さんの方で話が合ったような記憶があります。 どのようなモノなのでしょうか? > 五十嵐さん これできちゃうようであればあっという間ですよね(^-^)。 ・コーディング規約 っていうと大げさですが、今のRuby-GNOMEのコードはif文のインデント とかがまともに見れないのが多いです(私の環境だけ?)。これをどうに かしたいのですが何か良い手だてはありませんか? 私的には、ts=4固定か、あるいは(x)emacsのc-mode固定とかが良いの かなぁと。 #ちょっと乱暴?(^^;) (つづく) -- .:% Masao Mutoh<mu...@hi...> |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-27 16:45:26
|
いがらしです。
微力ながらお手伝いさせていただくことになりました。
At Mon, 27 May 2002 22:21:53 +0900,
Masao Mutoh <mu...@hi...> wrote:
>
> 成り行きでRuby-GNOME/Ruby-GNOME2のメンテナになったむとうです。
> やるからにはがんばりたいと思いますのでよろしくお願いします。
こちらこそ、よろしくお願いします。
> さて、このMLではRuby-GNOME2の実装方法について話し合っていきたい
> と思います。
> 私自身、API設計という部分で不慣れな部分がありますのでみなさん
> のお力添えを願えたらなと思います。
私もここ1年間、あまりRuby-GNOMEを触ってなかったので、
以下に書くことには多分に間違い、思い違いがあるかと思います。
適宜突っ込んでやって下さい。
> さて、Ruby-GNOME2を始めるにあたりいくつか先に決めて(知って)
> おきたいことがあります。
>
> ・シグナルの実装方法
> [ruby-list:35231]で触れられてますが、これについて詳しく説明
> (あるいは実装)していただけませんでしょうか? > 五十嵐さん
>
> 実は、現状のRuby-GNOME2はシグナル周りが動作してません。
> そこでそこんところを実装する前に五十嵐さんからお話をいただければ
> と思います。
「削られて」とは大げさな書き方でしたが、何らかの意図、たとえば
将来if文の羅列でなくもっと一般的なシグナル登録の仕組みを作る
つもりがあって消したのかな、と思いまして。
[ruby-ext:01077] で実装案が出されていたのですが、
私が取り込みそびれてしまい現状に至ります。
この仕組みがないと、GTK+にadd-onで使える高機能なウィジェット
ライブラリ(スプレッドシートとか)をRubyから使えるようには
なりません。追加されたシグナルをRubyから扱えないので。
またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の
タイプ(GtkType,GTK+2ではGType)についても同様で、
GTK+のウィジェットタイプとRubyのクラスの対応も、
現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、
これでは拡張性がないので書き換えようとしていました。
今ソースを見てみますと、次のようなAPIを用意しようとして
いたようですね(1年前の自分は他人)。
struct _rbgtk_class_info {
VALUE klass;
GtkType gtype;
void (*mark)(GtkObject *);
void (*free)(GtkObject *);
};
typedef struct _rbgtk_class_info rbgtk_class_info;
void rbgtk_register_class(rbgtk_class_info *cinfo);
rbgtk_class_info *rbgtk_lookup_class(VALUE klass);
rbgtk_class_info *rbgtk_lookup_class_by_gtype(GtkType gtype);
具体的にどういうAPIが良いかは議論していただくとして、
とにかくいいたいのは、Ruby-GNOME2では拡張性を考え、
CレベルのAPIから見直しが必要でしょう、ということです。
> ・コードの自動生成
> これも以前、五十嵐さんの方で話が合ったような記憶があります。
> どのようなモノなのでしょうか? > 五十嵐さん
> これできちゃうようであればあっという間ですよね(^-^)。
3つほど方法を考えていました。
どれでいくにしても、RubyらしいAPIを追求すると作り込みが
必要になりそうです。そして、できるならそういうインタフェイスの
作り込みはCではなくRubyレベルでやりたいです。
Rubyで書いた方が楽なので。
(1) *.defsファイルからのwrapper生成
GTK+のソースにはオブジェクト・関数・列挙型などが宣言された
ファイルがついてきて、これからCコードを生成する方法です。
pygtk(Python/GTK),pygnome(Python/GNOME)などはこれ。
[ruby-ext:01637]あたりで触れてます。
モノは以下の場所にありますが、まだ不完全な代物です。
私も詳細は覚えていないのでこれから見てみます^_^;
http://www.ruby-lang.org/~iga/files/gnome-ruby-proto-20010313.tar.gz
gnome-ruby-proto-20010317.tar.gz
gnome-ruby-proto-20010916.tar.gz
(2) SWIGによるwrapper生成
[ruby-ext:00838]をご参照下さい。いまいちうまくいきませんでした。
(3) Ruby/DL利用
(1)の*.defsファイルからRuby/DLのインタフェイス宣言(Ruby式)を生成し、
ほとんどをRubyで実装してしまおうという方法。
最近のRuby/DLでどこまでできるのか知らないのですが、
できたら結構エレガントかなぁとか思っています。
はたしてオブジェクト管理・スレッドまわりがどう実装されるのか、
まだまったく考えていません。
> ・コーディング規約
> っていうと大げさですが、今のRuby-GNOMEのコードはif文のインデント
> とかがまともに見れないのが多いです(私の環境だけ?)。これをどうに
> かしたいのですが何か良い手だてはありませんか?
> 私的には、ts=4固定か、あるいは(x)emacsのc-mode固定とかが良いの
> かなぁと。
> #ちょっと乱暴?(^^;)
なにげにソースファイル先頭に設定行
/* -*- c-file-style: "ruby" -*- */
を入れていますが、みんなが同じスタイルを定義して使って
いないと、ぐちゃぐちゃになってしまいますよね。
私がメンテナだったときにはcommitterが私一人だったので、
commit前にバッファ全体にindent-regionをかけていたような
記憶があります。
上記の設定は[ruby-list:19886]からのスレッドでつけること
にしたようで、私の~/.emacsにはこんな定義が入っています。
(c-add-style
"ruby"
'("bsd"
(c-basic-offset . 4)
(c-offsets-alist
(case-label . 2)
(label . 2)
(statement-case-intro . 2))))
> (つづく)
力つきたのでつづきは明日になります...
--
五十嵐 宏 (Hiroshi IGARASHI)
|
|
From: Hiroshi I. <ig...@ru...> - 2002-05-31 18:50:21
|
いがらしです。 At Sat, 1 Jun 2002 02:27:07 +0900, Masao Mutoh <mu...@hi...> wrote: > > むとうです。 > > On Tue, 28 May 2002 01:45:16 +0900 > Hiroshi IGARASHI <ig...@ru...> wrote: > > > いがらしです。 > > > > ・コードの自動生成 > > > これも以前、五十嵐さんの方で話が合ったような記憶があります。 > > > どのようなモノなのでしょうか? > 五十嵐さん > > > これできちゃうようであればあっという間ですよね(^-^)。 > > > (1) *.defsファイルからのwrapper生成 > > > > GTK+のソースにはオブジェクト・関数・列挙型などが宣言された > > ファイルがついてきて、これからCコードを生成する方法です。 > > pygtk(Python/GTK),pygnome(Python/GNOME)などはこれ。 > > [ruby-ext:01637]あたりで触れてます。 > > > > モノは以下の場所にありますが、まだ不完全な代物です。 > > 私も詳細は覚えていないのでこれから見てみます^_^; > > http://www.ruby-lang.org/~iga/files/gnome-ruby-proto-20010313.tar.gz > > gnome-ruby-proto-20010317.tar.gz > > gnome-ruby-proto-20010916.tar.gz > > ひとまず、gnome-ruby-proto-20010916.tar.gzだけ試してみました。 > #生成されたコードを見ただけですが。 > 他のも見た方が良いのでしょうか? すみません...見なくていいです。 大した違いはありませんでした。 > で、ちょっと質問です。 > > ・この*.defsファイルってどこにあるんでしょうか? > GTK+-2.0のソースにはついてきていないような気がします....。 またまたすみません。 2.0になってからはついてきてないみたいですね。 gnome-python独自にメンテするようになってしまったみたいです。 CVSモジュールgnome-python(GTK+2.0と同じレポジトリにあります)の gnome-python/pygtk/gtk/*.defsなどを見て下さい。 上記gnome-rubyのプロトタイプの*.defsは、 gnome-pythonからぱくらせてもらったもので、 そのフォーマットについては、このモジュール内の gnome-python/pygtk/codegen/README.defs を見て下さい。プロトタイプを作った当時よりいろいろ 変更されてしまっているようです。 > ・GdkRGB等が無いのですがこれはなぜでしょうか? > *.defsにない? GdkRGBというのは http://developer.gnome.org/doc/API/2.0/gdk/gdk-gdkrgb.html にあるような関数群のことですよね。 当時の*.defsには入っていませんでした。 現在の gnome-python/pygtk/gtk/gdk.defs には含まれています。 例えばGdk::Drawable#draw_rgb_32_imageなら以下の通りです。 (define-method draw_rgb_32_image (of-object "GdkDrawable") (c-name "gdk_draw_rgb_32_image") (return-type "none") (parameters '("GdkGC*" "gc") '("gint" "x") '("gint" "y") '("gint" "width") '("gint" "height") '("GdkRgbDither" "dith") '("guchar*" "buf") '("gint" "rowstride") ) ) フォーマットが変わってしまっているので、 これを通すには生成スクリプトを直す必要があります... この土日にちょっとやってみます。 -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Masahiro S. <s01...@sf...> - 2002-05-27 17:33:02
|
酒井です。 From: Hiroshi IGARASHI <ig...@ru...> Subject: Re: [ruby-gnome2-devel-ja] Ruby-GNOME2開始に当たって(1) Date: Tue, 28 May 2002 01:45:16 +0900 > At Mon, 27 May 2002 22:21:53 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > 成り行きでRuby-GNOME/Ruby-GNOME2のメンテナになったむとうです。 > > やるからにはがんばりたいと思いますのでよろしくお願いします。 > > こちらこそ、よろしくお願いします。 同じく、よろしくお願いします。 > またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の > タイプ(GtkType,GTK+2ではGType)についても同様で、 > GTK+のウィジェットタイプとRubyのクラスの対応も、 > 現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、 > これでは拡張性がないので書き換えようとしていました。 とりあえず、これについては[ruby-ext:01660]のパッチで、 rbgtk_register_class()で登録するクラスについては get_gtk_type()でのif文のハードコードは不要になってるはず。 それで思い出したのですが、現在のif文の列によるチェックは、 派生タイプからチェックするよう順番を気にしなくちゃいけないのが ちょっと嫌な感じです。 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 このif文の列は消してしまいませんか? -- 酒井 政裕 / Masahiro Sakai e-mail: s01...@sf... |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-27 23:47:43
|
いがらしです。 At Tue, 28 May 2002 02:32:51 +0900, Masahiro Sakai <s01...@sf...> wrote: > > From: Hiroshi IGARASHI <ig...@ru...> > Subject: Re: [ruby-gnome2-devel-ja] Ruby-GNOME2開始に当たって(1) > Date: Tue, 28 May 2002 01:45:16 +0900 > > > またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の > > タイプ(GtkType,GTK+2ではGType)についても同様で、 > > GTK+のウィジェットタイプとRubyのクラスの対応も、 > > 現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、 > > これでは拡張性がないので書き換えようとしていました。 > > とりあえず、これについては[ruby-ext:01660]のパッチで、 > rbgtk_register_class()で登録するクラスについては > get_gtk_type()でのif文のハードコードは不要になってるはず。 そうでした。酒井さんに実装していただいたのでしたね。 どうりで覚えていないわけです... > それで思い出したのですが、現在のif文の列によるチェックは、 > 派生タイプからチェックするよう順番を気にしなくちゃいけないのが > ちょっと嫌な感じです。 > 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 > このif文の列は消してしまいませんか? 少なくとも当時はそのつもり(coreとadd-onを同等に扱う)でした。 -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-28 15:50:51
|
いがらしです。 At Tue, 28 May 2002 21:54:44 +0900, Masao Mutoh <mu...@hi...> wrote: > > On Tue, 28 May 2002 02:32:51 +0900 > Masahiro Sakai <s01...@sf...> wrote: > > > それで思い出したのですが、現在のif文の列によるチェックは、 > > 派生タイプからチェックするよう順番を気にしなくちゃいけないのが > > ちょっと嫌な感じです。 > > 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 > > このif文の列は消してしまいませんか? > > そうですね。そしたらこちらは酒井さんの方でうっちゃってもらえませんか? > > #って二人にいっぺんに頼んだらconflictしちゃうかな...。 > #まぁ、速いもん勝ちっつーことで(^^;)。 たぶん私より早いと思いますので、酒井さんお願いします。 #いろいろ忘れていることが多すぎるようなので、 #記憶を掘り起こしてからにさせて下さい。 -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-30 00:52:38
|
いがらしです。 At Thu, 30 May 2002 04:05:01 +0900, Masahiro Sakai <s01...@sf...> wrote: > > パッチはすでに作ってあるのですが、 > http://web.sfc.keio.ac.jp/~s01397ms/tmp/rbgtk_register_class.diff.gz > > CVSの使い方が良く分かってなくて、まだcommit出来ていません。 > 自分のアカウントでcheckoutしようとすると、以下のようになってしまいます。 > これって何か設定が必要なのでしょうか? 私も同様の結果になったのですが、いったん普通にsshでloginを 試みたら以下のようにhome directoryを作ってくれました。 その後はcheckoutできるようになったので、commitしておきました。 # ドキュメントを見ようとしたらsf.netのwebsiteが落ちてる... $ ssh -l igapy cvs.ruby-gnome2.sourceforge.net ig...@cv...'s password: Creating home directory '/home/users/i/ig/igapy'. Linux usw-pr-cvs1 2.4.12koah1-cws #1 SMP Tue Oct 16 09:04:25 PDT 2001 i686 unknown Most of the programs included with the Debian GNU/Linux system are freely redistributable; the exact distribution terms for each program are described in the individual files in /usr/doc/*/copyright Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Welcome to cvs.sourceforge.net This is a restricted Shell Account You cannot execute anything here. Connection to cvs.ruby-gnome2.sourceforge.net closed. -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Masahiro S. <s01...@sf...> - 2002-05-30 16:37:51
|
From: Hiroshi IGARASHI <ig...@ru...> Subject: Re: [ruby-gnome2-devel-ja] Re: Ruby-GNOME2開始に当たって(1) Date: Thu, 30 May 2002 09:52:29 +0900 > > CVSの使い方が良く分かってなくて、まだcommit出来ていません。 > > 自分のアカウントでcheckoutしようとすると、以下のようになってしまいます。 > > これって何か設定が必要なのでしょうか? > > 私も同様の結果になったのですが、いったん普通にsshでloginを > 試みたら以下のようにhome directoryを作ってくれました。 > その後はcheckoutできるようになったので、commitしておきました。 どうもありがとうございます。 無事checkout出来ました。 PS gtkだけでなく他の拡張ライブラリにも同様の変更をすべきなのですが、 その前にタイプシステムとシグナル周りをglibベースにしてしまいたいです。 glib関係のコードはglib用の新しい拡張ライブラリを作りましょうか? それともgtk拡張ライブラリの方に入れてしまいましょうか? -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-05-31 11:31:49
|
むとうです。 On Fri, 31 May 2002 08:56:41 +0900 Hiroshi IGARASHI <ig...@ru...> wrote: > いがらしです。 > > At Fri, 31 May 2002 01:37:41 +0900, > Masahiro Sakai <s01...@sf...> wrote: > > > > gtkだけでなく他の拡張ライブラリにも同様の変更をすべきなのですが、 > > その前にタイプシステムとシグナル周りをglibベースにしてしまいたいです。 > > そうですね。 賛成。 > > glib関係のコードはglib用の新しい拡張ライブラリを作りましょうか? > > それともgtk拡張ライブラリの方に入れてしまいましょうか? > > たぶんRubyからglibだけを使うことはないので、 > gtkにまとめてもいいかなと私は思いますが。 これは分けましょう。 ・GTK+と1つにまとめるには大きすぎる ・もしかしたら、GLibのみを使いたい人がいるかもしれない。 > あとクラス名や構成とかどうしましょうか。 > こちらも変えなくていいかな。 > Gtk::Object --> Gtk::GObject or GLib::GObject or GLib::Object > class Gtk::Widget < Gtk::GObject or GLib::GObject or GLib::Object GTK+的にはGObjectも別ライブラリなんですよね....。 GTK+ではなくてもGObjectを使うことを想定しているのでしょうか。 それを純粋に考えると、GObjectはGObject::GObjectなんでしょうが さすがにそこまでやっちゃうのもアレなんで、GTK+を使わないアプリが GObjectを使いたい場合を考慮してGLibに含めましょう。 さすがにGLibも使いたくないと言うのは考えないということで。 GLib::GObject ですね。Gを入れるのはGTK+がそうだからということで。 ところで、この辺実装しますか(^^;)? > さかいさん -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-05-31 16:27:01
|
むとうです。 On Sat, 01 Jun 2002 00:19:30 +0900 Hiroshi IGARASHI <ig...@ru...> wrote: > いがらしです。 > でもgtk2.rbでrequrie 'glib'しておけばGTK+ユーザの使い勝手は > 変わらないし、積極的に反対しているわけではないです。 気分で答えます(もしかしたらころっと意見が変わるかもしれませんが)が、 今のところ、gtk2.rbでrequire 'glib'する必要を感じません。 GTK+しか使わないユーザがglibベースのAPIを直で使用するケースって それほど多くないような気がしてます(っていうかGTK+-2.0ベースで 開発したこと無いからはっきりしたことはわかってないで言ってますが)。 というわけで、glibのメソッドを使いたい人はglibを別途requireすれば 良いのではないかというのが今のところの私の意見です。 > ところで(拡張)ライブラリ名はglib or glib2? > その他gnomeなどもgnome2になるんでしょうか? glib2, gnome2にしましょう。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masahiro S. <s01...@sf...> - 2002-06-01 07:19:45
|
From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: Ruby-GNOME2開始に当たって(1) Date: Sat, 1 Jun 2002 01:26:56 +0900 > > でもgtk2.rbでrequrie 'glib'しておけばGTK+ユーザの使い勝手は > > 変わらないし、積極的に反対しているわけではないです。 > > 気分で答えます(もしかしたらころっと意見が変わるかもしれませんが)が、 > 今のところ、gtk2.rbでrequire 'glib'する必要を感じません。 Gimp-Rubyの経験から言うと、これはrequireしておく必要があります。 タイプシステム等をglibベースにすると、 gtk2.soはglib2.so内のシンボルを参照することになるので、 gtk2.soよりも先にglib2.soがロードされていないと シンボルが解決出来なくなってしまいます。 -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-06-01 10:20:33
|
むとうです。 On Sat, 01 Jun 2002 16:19:41 +0900 Masahiro Sakai <s01...@sf...> wrote: > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] Re: Ruby-GNOME2開始に当たって(1) > Date: Sat, 1 Jun 2002 01:26:56 +0900 > > > > でもgtk2.rbでrequrie 'glib'しておけばGTK+ユーザの使い勝手は > > > 変わらないし、積極的に反対しているわけではないです。 > > > > 気分で答えます(もしかしたらころっと意見が変わるかもしれませんが)が、 > > 今のところ、gtk2.rbでrequire 'glib'する必要を感じません。 > > Gimp-Rubyの経験から言うと、これはrequireしておく必要があります。 > > タイプシステム等をglibベースにすると、 > gtk2.soはglib2.so内のシンボルを参照することになるので、 > gtk2.soよりも先にglib2.soがロードされていないと > シンボルが解決出来なくなってしまいます。 あ、そうなんですか。考え及ばずですね、いかんいかん(^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-30 23:56:52
|
いがらしです。 At Fri, 31 May 2002 01:37:41 +0900, Masahiro Sakai <s01...@sf...> wrote: > > gtkだけでなく他の拡張ライブラリにも同様の変更をすべきなのですが、 > その前にタイプシステムとシグナル周りをglibベースにしてしまいたいです。 そうですね。 > glib関係のコードはglib用の新しい拡張ライブラリを作りましょうか? > それともgtk拡張ライブラリの方に入れてしまいましょうか? たぶんRubyからglibだけを使うことはないので、 gtkにまとめてもいいかなと私は思いますが。 あとクラス名や構成とかどうしましょうか。 こちらも変えなくていいかな。 Gtk::Object --> Gtk::GObject or GLib::GObject or GLib::Object class Gtk::Widget < Gtk::GObject or GLib::GObject or GLib::Object -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Masahiro S. <s01...@sf...> - 2002-06-01 07:11:18
|
From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: Ruby-GNOME2開始に当たって(1) Date: Fri, 31 May 2002 20:31:44 +0900 > > > glib関係のコードはglib用の新しい拡張ライブラリを作りましょうか? > > > それともgtk拡張ライブラリの方に入れてしまいましょうか? > > > > たぶんRubyからglibだけを使うことはないので、 > > gtkにまとめてもいいかなと私は思いますが。 > > これは分けましょう。 > > ・GTK+と1つにまとめるには大きすぎる > ・もしかしたら、GLibのみを使いたい人がいるかもしれない。 あ、もう一つ理由がありました。 gtkの方はウィンドウシステム毎に別のバイナリが必要なので、 ウィンドウシステムに依存しないglibは分けた方が気持良さそう。 > ところで、この辺実装しますか(^^;)? > さかいさん やってみます。 -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-06-01 10:22:27
|
むとうです。 On Sat, 01 Jun 2002 16:11:12 +0900 Masahiro Sakai <s01...@sf...> wrote: > あ、もう一つ理由がありました。 > gtkの方はウィンドウシステム毎に別のバイナリが必要なので、 > ウィンドウシステムに依存しないglibは分けた方が気持良さそう。 そこは気づきませんでした。 > > ところで、この辺実装しますか(^^;)? > さかいさん > > やってみます。 > お願いしますね。 #私も何かコード書かないとだな....。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-06-06 16:10:41
|
むとうです。 On Thu, 06 Jun 2002 23:40:26 +0900 Masahiro Sakai <s01...@sf...> wrote: > From: Masahiro Sakai <s01...@sf...> > Subject: [ruby-gnome2-devel-ja] Re: Ruby-GNOME2開始に当たって(1) > Date: Sat, 01 Jun 2002 16:11:12 +0900 > > > > ところで、この辺実装しますか(^^;)? > さかいさん > > > > やってみます。 > > 思ったよりも苦戦してます。 > > でも、とりあえずsignal_connect出来るようになったので、 > 現在作業中のコードを > http://web.sfc.keio.ac.jp/~s01397ms/tmp/ruby-glib-20020606.tar.gz > http://web.sfc.keio.ac.jp/~s01397ms/tmp/ruby-gtk-20020606.diff > に置きました。 すばらしい。ちょっとだけいじってみました。 まだ、sampleとかで動かないのもあるみたいですが良い感じです。 > こんな感じの実装で良いでしょうか? はい。気が向いたら、 ディレクトリ構成とかはGTKにあわせていただいた上で CVSにあげていただいても良いですよ。 そのときはファイルのヘッダにコピーライトつけてくださいね。 #コメントの英語化も(^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masahiro S. <s01...@sf...> - 2002-06-11 14:59:58
|
From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] glib Date: Fri, 7 Jun 2002 01:10:34 +0900 > > こんな感じの実装で良いでしょうか? > > はい。気が向いたら、 > ディレクトリ構成とかはGTKにあわせていただいた上で > CVSにあげていただいても良いですよ。 遅くなりましたが、glibの方は若干修正してCVSに入れました。 gtkの方に対するパッチは、gdk周りの変更がだいぶ必要そうなので、 まだcommitしていません。 -- さかい |
|
From: Masao M. <mu...@hi...> - 2002-06-11 16:12:40
|
むとうです。 On Tue, 11 Jun 2002 23:59:42 +0900 Masahiro Sakai <s01...@sf...> wrote: > From: Masao Mutoh <mu...@hi...> > Subject: Re: [ruby-gnome2-devel-ja] glib > Date: Fri, 7 Jun 2002 01:10:34 +0900 > > > > こんな感じの実装で良いでしょうか? > > > > はい。気が向いたら、 > > ディレクトリ構成とかはGTKにあわせていただいた上で > > CVSにあげていただいても良いですよ。 > > 遅くなりましたが、glibの方は若干修正してCVSに入れました。 ありがとうございます! > gtkの方に対するパッチは、gdk周りの変更がだいぶ必要そうなので、 > まだcommitしていません。 そうですねぇ。どうしましょう。 いずれ、変更しなきゃならないのはわかっているのでパッチあてちゃい ませんか? 今のCVS版は動くことを期待する必要はないと思いますし、 どうしても動かしたい人がパッチ作ると思いますよ(^^;)。 ところで、ライセンスはLGPLですね。そうかぁ、LGPLにした方が自然なのかぁ。 LGPLでないのはRuby/GTKですよね。五十嵐さんのOKもあるし、 あとはNeilに聞いて、全部、LGPLで揃えましょうか。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masahiro S. <s01...@sf...> - 2002-06-06 14:40:33
|
From: Masahiro Sakai <s01...@sf...> Subject: [ruby-gnome2-devel-ja] Re: Ruby-GNOME2開始に当たって(1) Date: Sat, 01 Jun 2002 16:11:12 +0900 > > ところで、この辺実装しますか(^^;)? > さかいさん > > やってみます。 思ったよりも苦戦してます。 でも、とりあえずsignal_connect出来るようになったので、 現在作業中のコードを http://web.sfc.keio.ac.jp/~s01397ms/tmp/ruby-glib-20020606.tar.gz http://web.sfc.keio.ac.jp/~s01397ms/tmp/ruby-gtk-20020606.diff に置きました。 こんな感じの実装で良いでしょうか? -- さかい |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-31 15:19:39
|
いがらしです。 At Fri, 31 May 2002 20:31:44 +0900, Masao Mutoh <mu...@hi...> wrote: > > > > glib関係のコードはglib用の新しい拡張ライブラリを作りましょうか? > > > それともgtk拡張ライブラリの方に入れてしまいましょうか? > > > > たぶんRubyからglibだけを使うことはないので、 > > gtkにまとめてもいいかなと私は思いますが。 > > これは分けましょう。 > > ・GTK+と1つにまとめるには大きすぎる まあ確かに。 > ・もしかしたら、GLibのみを使いたい人がいるかもしれない。 いますかねぇ... でもgtk2.rbでrequrie 'glib'しておけばGTK+ユーザの使い勝手は 変わらないし、積極的に反対しているわけではないです。 ところで(拡張)ライブラリ名はglib or glib2? その他gnomeなどもgnome2になるんでしょうか? > > あとクラス名や構成とかどうしましょうか。 > > こちらも変えなくていいかな。 > > Gtk::Object --> Gtk::GObject or GLib::GObject or GLib::Object > > class Gtk::Widget < Gtk::GObject or GLib::GObject or GLib::Object > > GTK+的にはGObjectも別ライブラリなんですよね....。 > GTK+ではなくてもGObjectを使うことを想定しているのでしょうか。 そうだと思います。pangoなどGTK+には依存していないライブラリが 直接GLibを使用しています。となると、やはり拡張ライブラリでも glibを分けておいた方がいいですね^_^; > それを純粋に考えると、GObjectはGObject::GObjectなんでしょうが > さすがにそこまでやっちゃうのもアレなんで、GTK+を使わないアプリが > GObjectを使いたい場合を考慮してGLibに含めましょう。 > さすがにGLibも使いたくないと言うのは考えないということで。 > > GLib::GObject > > ですね。Gを入れるのはGTK+がそうだからということで。 私は異存ありません。 > ところで、この辺実装しますか(^^;)? > さかいさん 例のsignal一般化パッチいじりかけてますが、 glibが分離されてすっきりしてからマージした方がいいですかね。 -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Masahiro S. <s01...@sf...> - 2002-05-29 19:05:11
|
酒井です。 From: Hiroshi IGARASHI <ig...@ru...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] Ruby-GNOME2開始に当たって(1) Date: Wed, 29 May 2002 00:50:41 +0900 > > > 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 > > > このif文の列は消してしまいませんか? > > > > そうですね。そしたらこちらは酒井さんの方でうっちゃってもらえませんか? > > > > #って二人にいっぺんに頼んだらconflictしちゃうかな...。 > > #まぁ、速いもん勝ちっつーことで(^^;)。 > > たぶん私より早いと思いますので、酒井さんお願いします。 パッチはすでに作ってあるのですが、 http://web.sfc.keio.ac.jp/~s01397ms/tmp/rbgtk_register_class.diff.gz CVSの使い方が良く分かってなくて、まだcommit出来ていません。 自分のアカウントでcheckoutしようとすると、以下のようになってしまいます。 これって何か設定が必要なのでしょうか? % export CVS_RSH=ssh % cvs -z3 -d:ext:sa...@cv...:/cvsroot/ruby-gnome2 co ruby-gnome2 sa...@cv...'s password: Could not chdir to home directory /home/users/s/sa/sakai: No such file or directory cvs [server aborted]: can't chdir(/home/users/s/sa/sakai): No such file or directory すいませんが、とりあえず、どなたか代わりにcommitをお願いできますか? -- さかい |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-30 11:01:43
|
いがらしです。 At Thu, 30 May 2002 09:52:29 +0900, 自分@ruby-lang.org wrote: > > > CVSの使い方が良く分かってなくて、まだcommit出来ていません。 > > 自分のアカウントでcheckoutしようとすると、以下のようになってしまいます。 > > これって何か設定が必要なのでしょうか? > > 私も同様の結果になったのですが、いったん普通にsshでloginを > 試みたら以下のようにhome directoryを作ってくれました。 > その後はcheckoutできるようになったので、commitしておきました。 > # ドキュメントを見ようとしたらsf.netのwebsiteが落ちてる... cvs.ruby-gnome2.sourceforge.netではなく まずshell.sourceforge.netにログインするのがまっとうな やり方なのかもしれません。あと、RSA/DSA認証できるように 公開鍵の登録はしておいた方がいいと思います。 https://sourceforge.net/account/ 私もsfを使うのは初めてなので、把握し切れてないのですが、 これで問題はないですよね... -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Masao M. <mu...@hi...> - 2002-05-30 16:11:20
|
むとうです。 さかいさん、いがらしさん、対応ありがとうございます。 On Thu, 30 May 2002 20:01:33 +0900 Hiroshi IGARASHI <ig...@ru...> wrote: > いがらしです。 > > At Thu, 30 May 2002 09:52:29 +0900, > 自分@ruby-lang.org wrote: > > > > > CVSの使い方が良く分かってなくて、まだcommit出来ていません。 > > > 自分のアカウントでcheckoutしようとすると、以下のようになってしまいます。 > > > これって何か設定が必要なのでしょうか? > > > > 私も同様の結果になったのですが、いったん普通にsshでloginを > > 試みたら以下のようにhome directoryを作ってくれました。 > > その後はcheckoutできるようになったので、commitしておきました。 > > # ドキュメントを見ようとしたらsf.netのwebsiteが落ちてる... > > cvs.ruby-gnome2.sourceforge.netではなく > まずshell.sourceforge.netにログインするのがまっとうな > やり方なのかもしれません。あと、RSA/DSA認証できるように > 公開鍵の登録はしておいた方がいいと思います。 > https://sourceforge.net/account/ あり?これって必須かと思ってました(^^;)。 > 私もsfを使うのは初めてなので、把握し切れてないのですが、 > これで問題はないですよね... 私もイマイチ把握してないんですよね〜(^^;)。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-05-28 12:50:08
|
むとうです。
On Tue, 28 May 2002 01:45:16 +0900
Hiroshi IGARASHI <ig...@ru...> wrote:
> いがらしです。
>
> 微力ながらお手伝いさせていただくことになりました。
よろしくおねがいします。
(以下、内容の前後を入れ替えます。)
> > ・コードの自動生成
> > これも以前、五十嵐さんの方で話が合ったような記憶があります。
> > どのようなモノなのでしょうか? > 五十嵐さん
> > これできちゃうようであればあっという間ですよね(^-^)。
>
> 3つほど方法を考えていました。
> どれでいくにしても、RubyらしいAPIを追求すると作り込みが
> 必要になりそうです。そして、できるならそういうインタフェイスの
> 作り込みはCではなくRubyレベルでやりたいです。
> Rubyで書いた方が楽なので。
確かに。とにもかくにもRubyからアクセスできる手段を早急に
用意できるという意味ではいいかもしれませんね。
後からゆっくりRubyっぽいAPIをかぶせていくと。
> (1) *.defsファイルからのwrapper生成
> (2) SWIGによるwrapper生成
> (3) Ruby/DL利用
(2)はうまくいかなかったということなので置いておくとして(^^;)
(3)は大変すぎるような気がします(そうでもない?)。
となると、やはり(1)ですかね。実装もありますし。
ちょっと見させていただきます。
とはいえ、今までの実装全てをうっちゃるわけですから、もうちょっと
他の方々の意見も聞きたいなぁと思います。
> > ・シグナルの実装方法
> > [ruby-list:35231]で触れられてますが、これについて詳しく説明
> > (あるいは実装)していただけませんでしょうか? > 五十嵐さん
> >
> > 実は、現状のRuby-GNOME2はシグナル周りが動作してません。
> > そこでそこんところを実装する前に五十嵐さんからお話をいただければ
> > と思います。
>
> 「削られて」とは大げさな書き方でしたが、何らかの意図、たとえば
> 将来if文の羅列でなくもっと一般的なシグナル登録の仕組みを作る
> つもりがあって消したのかな、と思いまして。
> [ruby-ext:01077] で実装案が出されていたのですが、
> 私が取り込みそびれてしまい現状に至ります。
>
> この仕組みがないと、GTK+にadd-onで使える高機能なウィジェット
> ライブラリ(スプレッドシートとか)をRubyから使えるようには
> なりません。追加されたシグナルをRubyから扱えないので。
なるほど。これ、(自動化は置いておいたとして)五十嵐さんの方で
パチっていただけないでしょうか?
コメント部分はざっくり消しちゃっていただいて構いません。
#生のままのパッチはいくつかrejectされてしまったので...。
> > ・コーディング規約
> なにげにソースファイル先頭に設定行
> /* -*- c-file-style: "ruby" -*- */
> を入れていますが、みんなが同じスタイルを定義して使って
> いないと、ぐちゃぐちゃになってしまいますよね。
> 私がメンテナだったときにはcommitterが私一人だったので、
> commit前にバッファ全体にindent-regionをかけていたような
> 記憶があります。
なるほど。
> 上記の設定は[ruby-list:19886]からのスレッドでつけること
> にしたようで、私の~/.emacsにはこんな定義が入っています。
>
> (c-add-style
> "ruby"
> '("bsd"
> (c-basic-offset . 4)
> (c-offsets-alist
> (case-label . 2)
> (label . 2)
> (statement-case-intro . 2))))
じゃ、コミッターの方はこれを入れてemacsで整形してから
コミットっつーことにしましょうか。
それぢゃこまる!って人はお早めにお願いします。
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Masao M. <mu...@hi...> - 2002-05-28 12:54:47
|
むとうです。 On Tue, 28 May 2002 02:32:51 +0900 Masahiro Sakai <s01...@sf...> wrote: > 酒井です。 > 同じく、よろしくお願いします。 よろしくお願いします。 > > またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の > > タイプ(GtkType,GTK+2ではGType)についても同様で、 > > GTK+のウィジェットタイプとRubyのクラスの対応も、 > > 現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、 > > これでは拡張性がないので書き換えようとしていました。 > > とりあえず、これについては[ruby-ext:01660]のパッチで、 > rbgtk_register_class()で登録するクラスについては > get_gtk_type()でのif文のハードコードは不要になってるはず。 > > それで思い出したのですが、現在のif文の列によるチェックは、 > 派生タイプからチェックするよう順番を気にしなくちゃいけないのが > ちょっと嫌な感じです。 > 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 > このif文の列は消してしまいませんか? そうですね。そしたらこちらは酒井さんの方でうっちゃってもらえませんか? #って二人にいっぺんに頼んだらconflictしちゃうかな...。 #まぁ、速いもん勝ちっつーことで(^^;)。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |