ECLを入れてみた。
この前、CLISPを使おうとして詰まってしまったので、気分を変えて別の環境を使ってみることにした。そもそもCLISPじゃexeを作れないみたいだし。こちらの要求は、
辺りである。実際のところ、一番上が一番問題で、openglについてはffiが使えれば心配はいらない。そんなわけで、調べてみたら該当するのはECLだけしか見つからなかった。これはKCLという京都大学の人が作った環境の派生で、common lispからC言語に翻訳するらしい。当然、Cで作られたdllとの相性は良いし、Cコンパイラの最適化を扱えるというわけだ。KCLの派生は他にGCLやXCLがあるのだが、前者は更新が止まってるようだし、後者はまだ出来ていないようなので、選択肢はECL一択のようだ。
それで、ECLを導入することにした。バイナリは配布されていないようなので、仕方ないので自分でビルドする。どうせ実行にはMinGWが必要なので、新しいのを入れる。それに、cygwinは使わないのでMSYSが必要である。これも適当に入れる。環境変数を適当にセットし、eclのアーカイブを適当に解凍して、MSYSから、
cd c:/ecl-0.9l configure --prefix=c:/ecl make make install
こんな感じで順に実行。割と時間がかかる。eclのディレクトリにもパスを通して、LISPUSER -ECLを参考にしつつ、lispファイルを作ってコンパイル、プログラムを作る。
>a >a
ありゃ? 何か足らないのかしら。a.exeをeclのディレクトリに移して起動してみる。
>a Hello, World!! >a
やった、動いた! どうもecl.dllがないと動かないみたい。でも、このdll、4MBもあるんだよね。exeに組み込んでstripとかすれば小さくなるかな。
とりあえず今回はここまで。次は、プログラムを小さくすることよりも、asdfとffiをちゃんと使えるようにすることを考えよう。