Quicklisp導入

一部で話題のQuicklispを(会社のPCで)試したのでメモメモ。

QuicklispはASDF-INSTALLみたいに、指定したライブラリ+依存するライブラリをWEBから拾ってきてインストールしてくれるツールのようです。配布されているインストーラつぽいモノは 単一の .LISPファイルになっていて、依存ライブラリなし。
自分がヘボいのかなんだか分からないけど、ASDF-INSTALLがWindows環境で上手く動かないので代替手段として。今後の主力として期待。

インストールはhttp://cadr.g.hatena.ne.jp/g000001/20101009/1286607760を参考にしました。

$ wget http://beta.quicklisp.org/quicklisp.lisp
$ sbcl

単一ファイルなのでwgetで拾ってくるだけ。簡単ですね。

CL-USER> (load (merge-pathnames "quicklisp.lisp" (user-homedir-pathname)))
CL-USER> (quicklisp-quickstart:install)
CL-USER> (ql:add-to-init-file)

これでインストール完了。installの際に、proxy を指定するときは :proxy に "http://hogehoge:port"という形式で指定。デフォルトのインストール先("~/quicklisp/")が嫌なら :path にディレクトリを指定。
add-to-init-file は処理系の初期化ファイルに quicklispを loadするコードを追加します。具体的にはこんなコード。

;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                       (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

間違いがある可能性が高いメモ

関数 引数 備考
ql:quickload "ライブラリ名" 引数で指定したライブラリ、および依存ライブラリをインストール
ql:system-apropos "ライブラリ名の部分" 引数で指定した文字列を含むライブラリを探し出す
ql:update-all-dists - インストール済みライブラリを全部最新化
ql:update-client - Quicklisp自体を更新
ql:add-to-init-file - 処理系の初期化ファイルにQuicklispの読み込み処理を書き込む