TclCompilerって?

TclProに含まれているバイトコードコンパイラです。

TclCompilerの目的はソースを隠すことにあります。TclはJITでソースをバイトコードにコンパイルしているわけですが、このコンパイルのオーバーヘッドを軽減することにも*なりません*(tbcloadで読み込むと逆に遅いこともある)。TclProは紆余曲折の末、今は機能を追加してTclDevKitと名前を変え、ActiveStateが売っています。また、TclProはTcl8.3で止まったままですが、ソースコードとバイナリは全てSourceForgeに置かれていて自由に使うことができます。TclDevKitは8.4対応なので最新の開発環境が使いたくてソースを隠したい人はこっち買ってね♥みたいな。~

実際のところ使ってみたいのはTclCompilerだけなので、こいつだけTcl8.4対応にしてパッケージにしてみました。8.4から追加されたeqとか使えます。インストールは普通のパッケージのインストールと同じで、解凍してライブラリのパスに置いてください。

使い方

test.tcl

set str "たのしいTclプログラム $tcl_version"
puts $str

このようなファイルを用意します。

tclshをおもむろに起動して次のコマンドを入力します。

package require compiler
compiler::compile test.tcl
exit

これでtest.tbcというバイトコードにコンパイルされたファイルができます。実行するにはtbcloadが必要ですが、ActiveTclにはデフォでインストールされているので、そのまま

tclsh test.tbc

で実行することができます。Freewrap、Starpackなどで使いたいときはtbcloadを適当にくっつけてやれば動くと思います。拡張子はtbcにしていますが、tclにしても動きます。FreewrapやStarkitなどでのバイナリの配布時にはActiveTcl付属のtbcloadをコピーすればいいんじゃないかと思いますが、ActiveStateのライセンスに縛られたくない人はtbcloadもダウンロードしてください。

コメントをどーぞ



CategoryTclTk


|New|Edit|Freeze|Diff|History|Attach|Copy|Rename|
Last-modified: 2011-12-02 (Fri) 12:26:53
HTML convert time: 0.036 sec.