[Common Lisp]->[ccl]

Clozure CL

  1. clozure clとは
  2. Mac編
  3. Vine Linux編

clozure clとは

clozure cl (以下 ccl) も Common Lisp の実装の一つ。以前は OpenMCL という主に Mac 向けの Common Lisp だったものらしい。

Mac編

Mac OS X (mac mini) にインストールしてみる。 私はTeXを macports で入れているので、ccl も macports のものをインスールすることにする。インストールそのものは

sudo port install ccl
とするだけ。

設定

個人用の ccl の設定は主に .ccl-init.lisp を利用する。

asdf のための設定

どうするのが正解かはよくわからないが、取り敢えず 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 自身のインストールについては 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)))

Vine Linux編

工事中
[Common Lisp]->[ccl]