2011年11月18日

[ruby-list:48532] Ruby-GNOME2プロジェクトの近況紹介

須藤です。

Ruby-GNOME2はRubyでRubyらしくGUIアプリケーションを開発できる
ようにするためのライブラリ群です。LinuxやWindowsやMac OS Xな
どマルチプラットフォームで動作するGUIライブラリであるGTK+を
ベースとしているため、多くの環境で動作でします。


Ruby-GNOME2チームは特にここ数ヶ月頑張って開発しているので、ど
んな感じになっているかを紹介します。(この内容も開発チームの
1人のNikolaiさんが作ってくれました。ほとんど私だけがコミット
していた時期もあったので実に感慨深いです。)

* Ruby 1.9

現在のRuby-GNOME2はRuby 1.8 ABIでもRuby 1.9.1 ABIでも警告や
エラーがでずにコンパイル・実行できます。つまり、Ruby 1.8.7,
1.9.1, 1.9.2, 1.9.3のどれでも動くということです。

また、Ruby 1.9での文字列エンコーディングにも対応しています。

Ruby 1.9で、より並行に処理を実行できるような改善作業にも着手
していますが、これはまだ時間がかかりそうです。

* メモリ管理

メモリアロケーション周りを徹底的に検査して、たくさんのメモリ
リークを修正しています。

ガベージコレクションまわりの処理も改良していて、以前のリリー
スではなんかよくわからないタイミングで起きていたような問題も
修正しています。(GCまわりの修正で、まだリリースに含まれてい
ないものもあるので近いうちにリリースしたいなぁ。)

* ビルドしやすくなりました

ビルドシステムを大幅に改良し、gemやWindows用のバイナリ入り
gemもサポートできるようになっています。

* ドキュメントを書きやすくなりました(そう遠くない将来に)

現在、RD + Hikiベースで構築しているドキュメントシステムを
YARDベースのものにしようとしていて、すでにその作業に着手して
います。これによりドキュメントの質も参照のしやすさもよりよく
なるはずです。

* 新しいAPIを定義しやすくなりました

GTK+が提供するCの関数をRubyのメソッドに関連付ける処理を簡潔
にしました。これによりドキュメントも書きやすくなり、新しい
APIへの対応もしやすくなります。

* バグ修正

上記のようなたくさんの変更の結果、ソースコードをレビュー・更
新することになりました。そのおかげで多くのバグが修正されまし
た。

* GTK+ 3対応

GTK+ 3への対応を開始しました。完全にGTK+ 3に対応するには多く
の作業がありますが、将来のことを考え、今からGTK+ 3を見越した
開発体制とすることにしました。そのため、今後はGTK+ 3対応の開
発をメインとして、GTK+ 2の対応はメンテナンス程度とすることに
します。

* GitHubへ移行

Ruby-GNOME2はメインのリポジトリをGitHubのgitリポジトリに移行
しました。以前使っていたSourceForge.netのSubversionリポジト
リは今でも参照可能ですが、今後は更新されません。

Ruby-GNOME2のリポジトリはここになります。

https://github.com/ruby-gnome2/ruby-gnome2

* GObject-introspection

GObject-introspection採用の検討を始めました。これもそれなり
の規模の作業になると思いますが、将来的にはわりにあうのではな
いかと思っています。

* 開発参加お誘い

活発に開発を続けられて、こうしていろいろ開発状況を紹介できて
すばらしいなぁと思います。これからも便利に使いやすくてなるよ
うに開発を続けていければいいなぁと思っています。そして、その
ようなGUIライブラリをできるだけ早くリリースできればいいなぁ
と思っているのですが、ここに紹介したように大きな作業や着手し
たばかりの作業もいろいろあり、大変な面もあるだろうなぁと思っ
ています。

ドキュメントの改良やRuby 1.9、GTK+ 3への対応強化など、できる
だけ早く、使いやすいGUIライブラリを提供できるように、みなさん
がGitHubでforkしてpull requestを送って協力してくれるのを楽し
みにしています!


投稿者 xml-rpc : 2011年11月18日 22:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107481
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。