2002-05-26 [長年日記]
λ. 湘南混声合唱団のコンサートを聴きに行った。
λ. Ruby/Gtkと複数のウィンドウシステム
gtk2では異なるウィンドウシステム用のバイナリが共存できるようになっているらしいので、Ruby/Gtkでも対応する拡張ライブラリを共存させられると良さそうだ。そのためには、以下のようにしてインストールされているライブラリを列挙してやって、それぞれについて拡張ライブラリをビルドすれば良いのかな。
`pkg-config --list-all`.scan(/^(gtk\+-(\S+)-([^\s-]+))/){ |pkg, window_system, version| ... }
ただ、現在のextconf.rb/mkmf.rbの仕組みだと、単一のソースから複数の拡張ライブラリをビルドするようなのを書きにくい気がする。
そんな事しなくても、単にインストールする人にウィンドウシステムごとに「GTK_CONFIG='pkg-config gtk+-linux-fb-2.0' ruby extconf.rb && make」とかしてもらえば良いのか? いや、共存を考えるとファイル名を変える必要があるし、ファイル名を変えると初期化用の関数の名前も変えなくちゃいけないので、Ruby/Gtkの細工はやっぱ必要か。まあいいや。後で考えよ。
requireするときの名前をどうするか? ウィンドウシステムを明示したい場合と明示したくない場合がある。明示したくない場合は「require 'gtk2'」等とすることになるだろうけど、こいつはどの拡張ライブラリをロードするのか?
現在サポートされているのはx11/linux-fb/win32だけなので、例えば、Win32環境ならばwin32、環境変数DISPLAYが設定されていればx11、Linuxならばlinux-fbという順番で探すとか……
λ. FreeBSD-users-jp のアレ
なんというか……哀れ。でも、kitajさんやどかにゃさんも書いてるけど、この「論文」は「実存主義数学」とか、なかなかツボをついた文章で暇潰しに良さそう。
ところで、[FreeBSD-users-jp 68653]で紹介されている『エキスパートCプログラミング―知られざるCの深層』は面白そうだ。