Posted by & filed under 開発.


このエントリはModern Common Lispの一部です。

 Common Lispのライブラリを利用するのに、以前はASDF-Installを使っていました。しかし、ASDF-Installは外部のシェルコマンドに依存するためWindowsでの利用が面倒だったり、接続先のサーバが落ちていてダウンロードできなかったり、ダウンロードできたとしてもビルドできないといったことが多くありました。

 これを解決するためにZach Beaneが開発したのがQuicklispです。現在BETA公開中で、いくつか制限事項はありますが、誰でも利用できるようになっています。

Quicklisp BETA

セットアップ

 まずはQuicklisp自身をインストールします。以下のリンクからQuicklispをダウンロードしてください。

 あなたのLisp処理系 (きっとSBCL以外でしょうね) を起動し、以下のコードを実行してください。

※注) もしプロキシを通す必要があれば:proxyキーワードにURLを文字列で渡してください。例: (quicklisp-quickstart:install :proxy “http://192.168.xx.xx:8080”)

 これでセットアップは完了です。~/quicklispというディレクトリができていることを確認してください。

 もしQuicklispのディレクトリを変更したい場合には、~/quicklispディレクトリを移動したあと、処理系のinitファイル (Clozure CLならば~/.ccl-init.lisp)の一部を修正します。

ライブラリのインストール・ロード

 Quicklispでライブラリのインストールをするにはql:quickloadを使います。このコマンドは試験に出るのでよく覚えておいてください。

 指定したライブラリがまだインストールされていなければ、サーバからダウンロードしてインストールします。ASDF-INSTALLと違って依存パッケージも同時にインストールしてくれるので非常に助かります。

ライブラリを探す

 Quicklispに登録されているライブラリを探すにはql:system-aproposを使います。

リポジトリをアップデートする

 Quicklispのリポジトリは毎月1回更新されます。ライブラリが更新されたり、追加されたり削除されたり。最新のライブラリにアップデートするには以下のコマンドを実行します。

ASDF2 – 登録されていないライブラリを使う

 Quicklispには既に多くのライブラリが登録されているとはいえ、まだ登録されていないライブラリもあります。また、自分が作ったライブラリやアプリケーションのロードには使うことができません。

 そこで、「ASDF2」を使ってローカルの指定のライブラリをロードできるようにします。ASDF2は多くの処理系で標準バンドルされているはずなので特にセットアップの必要はありません。

 まずはライブラリを置くディレクトリを作ります。ここでは~/.lisp/systemsにライブラリを置くものとします。

 そして~/.config/common-lisp/source-registry.conf.d/01-add-local-lisp.confに上のディレクトリパスを指定します。

 これで準備完了です。ASDF2は~/.lisp/systemsの中を再帰的に見て、その中のライブラリをロードできるようになりました

ライブラリのインストールと利用

 たとえばClackを使うには~/.lisp/systemsにソースをcloneします。

 Lisp処理系を立ち上げ、ql:quickloadしてください。

 これでClackが使えるはずです。以下のコードを実行して、http://localhost:5000/にアクセスしてみてください。“Hello, Clack!”と表示されるはずです。

 使えなかった場合は@nitro_idiotに報告してくださいね。

まとめ

 今回はQuicklispとASDF2によるライブラリの導入について解説しました。PerlやRubyに比べるとそれほど良い環境とは言えませんが、以前と比べてLispのライブラリ環境も悪くなくなってきています。これから数もどんどん増えていくことでしょう。

 次回は松山さんがEmacsとSLIMEの環境設定について書いてくれるはずです。


関連文書:

Comments are closed.