Common Lisp環境をWindows上に構築する 〜ポータブルな環境を作成〜

ぜんぜんブログ更新出来てなかったですが、(twitterの方では呟いていましたが)最近Common Lispにはまっています。
Common lispは、人工知能用言語で何ができるんだって最初は思っていましたが、AIとか関係なくっていろいろと他にも応用できる便利な言語のようです。。最近は括弧にも抗体が出来て気にならなくなりました。

さて、今回はそんなCommon Lispを活用していく為、実行環境をWindows上に構築しようと思います。ただ、LinuxMacOSX上では、パッケージ管理システムがあるので、CommonLisp環境を構築するのはとても簡単なのですが、Windowsでは結構めんどうです。

実際、Lispboxがあるのでそれ使えばいいと思われる方がいるかもしれませんが、SBCLやClozureCLに初期設定では対応していなかったり、日本語設定がされていなかったり、今主流のclbuildが入っていなかったりと、本格的に使用するにはいろいろと設定を行う必要があります。
 ※Lispboxとは実践CommonLispの作者さんが公開されているCommon Lispの環境一式が詰まったパッケージのことです。リンクはここ

googleで検索してもLispbox以外に纏まった環境をリリースしてくれているところは無さそうなので、それなら自分で作ってしまえってことで、下記を満たすような環境を構築することにしました。

  • CLの知識がない状態でも、実行環境を構築することができる。
    • CLをこれから学び始める人でも環境を構築できる。
  • 複数のCL実装を組み込み、マルチバイトコードの設定が施されている
    • それぞれ特徴のあるCL実装をすぐに試すことができ、日本語を含むマルチバイト(UTF-8)の設定が既に行われた状態なため、設定いらず。
  • 開発環境(Meadow + SLIME)を組み込み、基本設定済み。
    • CLの開発環境であるSLIMEの設定が既に行っている状態なため即、プログラミングを始められる。
  • asdf-install、clbuildによるライブラリのインストールができる
    • asdf-installはもちろん、今主流?のclbuildも組み込んでいるのでライブラリを簡単にインストールできる。
  • Meadowからbashを使用することができ、Meadow上で全て完結できる。
    • Cygwinを組み、Meadow上でUnix系コマンドを使うことができる。
  • セットアップの所要時間は10分以下になるようにする。(主観)
    • 面倒なことは最小限に。

また、他のPCでも使用できるようにこの環境をパッケージ化しました。これから、CommonLispを試したいけど、VirtualBox入れて、Linux入れてはだるいし、今すぐに試したい!っというWindowsユーザーは使ってみるといいかもしれません。

下記に置いていますので、使ってみたい方はどうぞ。
http://www.mediafire.com/zqwell

インストール方法

同封のReadme.txtに記載していますが、こちらにも書いておきます。
インストール手順は下記4ステップまでありますので順に行ってください。

(1) ALICE.exeをダブルクリックして解凍された「ALICE」ディレクトリを「C:\」を置きます。

(2) 下記の環境変数を作成します。

環境変数の追加方法:
マイコンピュータ右クリック > 詳細設定タブ > 環境変数 > ユーザーの環境変数

環境変数名:「ALICEDIR」
変数値 :「C:\ALICE\」
※変数値のパスの最後には必ず「\」をつけるようにしてください。

(3) Cygwinの設定を行います。
C:\ALICE\Terminal.bat を実行すると、下記メッセージが出ますので、

Your group is currently "mkgroup".  This indicates that neither
your gid nor your pgsid (primary group associated with your SID)
is in /etc/group.

The /etc/group (and possibly /etc/passwd) files should be rebuilt.
See the man pages for mkpasswd and mkgroup then, for example, run

mkpasswd -l [-d] > /etc/passwd
mkgroup  -l [-d] > /etc/group

Note that the -d switch is necessary for domain users.

下記のように入力します。

$ mkpasswd -l  > /etc/passwd
$ mkgroup  -l  > /etc/group

そうしたら、ターミナルを終了して、再度Terminal.batを実行し

ユーザー名@PC名 ~
$

と表示されていれば、Cygwinの設定は完了です。


(4) 次に開発エディタであるMeadowの設定です。
MeadowのHOMEディレクトリを「C:\ALICE\cygwin\home\lisper」に設定するため、
C:\ALICE\meadow\install.exe を実行してください。

そうするとHOMEディレクトリ先を問われるので、

「C:\ALICE\cygwin\home\lisper」

と入力します。
ここまでで、設定は全て完了です。

使用方法

1. C:\ALICE\Meadow3 を実行しMeadowを立ち上げる
2. M-x clisp-start を行うとSLIMEが立ち上がる

同様に、SBCL, Clozure CL (CCL)を立ち上げる場合は下記を入力する。
SBCL: M-x sbcl-start
CCL : M-x ccl-start

  • clbuildを使用する

1. C:\ALICE\Terminal.bat を実行しターミナルを起動する。
2. 「cd clbuild/」と入力してclbuildディレクトリに移動する。
3. 「./clbuild install パッケージ名」を入力してインストールする。
詳細は 「./clbuild --help」で確認してください。