clozure cl (以下 ccl) も Common Lisp の実装の一つ。以前は OpenMCL という主に Mac 向けの Common Lisp だったものらしい。
Mac OS X (mac mini) にインストールしてみる。 私はTeXを macports で入れているので、ccl も macports のものをインスールすることにする。インストールそのものは
sudo port install cclとするだけ。
個人用の ccl の設定は主に .ccl-init.lisp
を利用する。
どうするのが正解かはよくわからないが、取り敢えず sbcl の場合を真似て
~/.ccl/site
, ~/.ccl/systems
というディレクトリを作成しておく。
(デフォルトだと ~/.ccl
ではなく
~/.asdf-install-dir/
が使われるが、
複数の Common Lisp の実装を使う時に問題になりそうだったので)
2011年3月の時点ではリリース版にはasdfやasdf-installが含まれている。
ただし、asdf-install の方は、意図的に場所を明示しないとロードできないようになっている。例えば macports で ccl-1.6 をインストールした場合は asdf-install は
/opt/local/share/ccl/1.6/tools/asdf-install
というディレクトリにある。
clozureのウェブの説明にしたがって、
(push "ccl:tools;asdf-install;" asdf:*central-registry*)
として、asdf:*central-registry*
に上の場所を追加してから
(asdf:operate 'asdf:load-op :asdf-install)
としてロードする。
起動時にこれらを自動的に行うには、.ccl-init.lisp
に、
#-:asdf (require 'asdf) (push "ccl:tools;asdf-install;" asdf:*central-registry*) #-:asdf-install (asdf:operate 'asdf:load-op :asdf-install)と書けばよい。
またasdf-install
でインストールするファイルの場所だが、上に書いたように、私の趣味でホームディレクトリの下の~/.ccl/site
や
~/.ccl/systems
にしている。
また gnupg のsignaturesも無視したいので、現状では.ccl-init.lisp
の
asdf関連の設定には
#-:asdf (require 'asdf) (push "ccl:tools;asdf-install;" asdf:*central-registry*) #-:asdf-install (asdf:operate 'asdf:load-op :asdf-install) (pushnew "~/.ccl/systems/" asdf:*central-registry* :test #'equal) (setf asdf-install:*locations* '((#P"/usr/local/lib/ccl/site/" #P"/usr/local/lib/ccl/site-systems/" "System-wide install") (#P"~/.ccl/site/" #P"~/.ccl/systems/" "Personal installation"))) (setq asdf-install:*verify-gpg-signatures* nil)のように記述している。
また、文字コードの設定だが、私は utf-8 で統一しているので
.ccl-init.lisp
に次のような記述を加えた。
(setf ccl:*default-external-format* (ccl:make-external-format :character-encoding :utf-8 :line-termination :unix) ccl:*default-file-character-encoding* :utf-8 ccl:*default-socket-character-encoding* :utf-8)
slime 自身のインストールについては
slimeの項を参照。Carbon Emacs でも
やり方はほぼ同じ。
これを ccl でも使えるようにするには、その設定にあるように、
slime-lisp-implementations
に ccl の設定を加えておくだけでよい。
(setq slime-lisp-implementations '((ccl ("ccl") :coding-system utf-8-unix) (sbcl ("sbcl") :coding-system euc-jp-unix)))