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とかすれば小さくなるかな。


とりあえず今回はここまで。次は、プログラムを小さくすることよりも、asdfffiをちゃんと使えるようにすることを考えよう。