はじめに
ECL(Embeddable Common Lisp)ってWindows上でも動くらしいけど実際使えるのかな? ということで試してみました。結果、対話環境は問題なく起動しました。マニュアルに書かれていないyasmなどのツールを用意しておく必要があったので、メモとして残しておきます。
ECLのバージョン
現在ECLは2020年の4月にメジャーアップデートがあり、バージョン20系がリリースされているので、それを使います。
ビルド環境
- Windows10
- Visual Studio Community
- Windows SDK
- yasm
Visual Studioをインストールし、Visual C++ 2015 x64 Native Build Tools Command Prompt(以下Command Prompt)というプログラムが実行可能になっているかを確認します(スタートメニューにあるはず)。
次に、rc.exeというコマンドを使うため、Windows SDKのbinディレクトリをPath環境変数に登録します。自分の環境だと、次の場所を登録しました。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64
最後にyasmを使うためインストールします。これはGitHubのhttps://github.com/cseri/yasm-1.3.0-win64からexeファイルをダウンロードできるので入手し、Pathの通ったディレクトリに配置します。
事前の準備はこれで完了です。
ビルド実行
https://common-lisp.net/project/ecl/static/files/release/からecl-20.4.24.tgzをダウンロードし展開します。展開するとmsvcディレクトリがあるため、Command Promptを起動し、ECLのソースコードを展開した場所のmsvcディレクトリ移動します。
> cd C:\Path\to\ecl-20.4.24\msvc
C:\Path\to\ecl-20.4.24\msvc>
ビルドにはnmakeコマンドを使用します。prefixの値でインストール先を変更できます。
C:\Path\to\ecl-20.4.24\msvc> nmake install prefix=C:\tools\ecl2 ECL_WIN64=1 GMP_TYPE=AMD64
途中で失敗する場合には、rc.exeやyasm-1.3.0-win64.exeの存在するディレクトリがPathに登録されているかを確認してみてください。
インストールが完了すると、ecl.exeという実行ファイルと、実行に必要なファイルが生成されます。
ecl.exeを起動し、ECLのREPLが起動すれば完了です。
インストーラーを作成する
NSISを使ってWindows用のインストーラーを作成できると書いてあったのでそれも試してみます。NSISをインストールし、C:\Program Files (x86)\NSIS\Bin
にパスを通しておきます(makensis.exeを使用するため)。
その後、次のコマンドでインストーラーを作成できます。
C:\Path\to\ecl-20.4.24\msvc> nmake windows-nsi
msvcディレクトリにecl-20.4.24.exeという名前でインストーラーが作成されます。ダブルクリックでインストーラーが起動し、インストール先の選択とインストールが問題なく行われることを確認します。
REPL環境の起動は確認できましたが、色々なパッケージが正常に動くかどうかは確認していません。今後Windowsで何か試すときがあれば確認してみたいと思います。