永井@知能.九工大です.

shared library によって,Tcl/Tk の拡張パッケージを
動的に組み込める環境を有している場合のために,
ちょっとしたライブラリを作ってみました.

# 6 KB 位の小さいものなので,いいかなと思い,
# メールに添えています.(^_^;

標準の Tcl/Tk の機能だけではなく,BLT や Tix などの
拡張パッケージも ruby から使いたいという方がおられましたら,
試してみていただけませんか?
当方でのテスト環境は,

   Linux 2.0.33 + libc.so.5.4.38 + gcc 2.7.2.2
   ruby-1.1b9_14
   Tcl8.0p2/Tk8.0p2 + jp-patch_beta3
   Tix4.1.0.006
   blt8.0-unoff ( BLT2.1 ベースを Tcl/Tk 8.0 に対応させたもの )

となっています.
さして特別なことはしていませんから,
拡張パッケージの動的組み込みさえ正常に機能していれば
Tcl7.6/Tk4.2 でも大丈夫なはずです.
ただし,ライブラリの名前やインストール場所などは環境に依存しますから,
テストプログラムの中でライブラリパスの指定などをしている部分は
書き換えないとテストできないと思います.

begin 644 tcltk-ext.tar.gz
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
6:[56:[56:[56^__7_@ZM1(V> %   /][
 
end

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp