[Common Lisp]->[clisp]

CLisp

目次

  1. clispとは
  2. slime
  3. core dump

clispとは

clispもCommon Lisp の実装の一つです。 様々なプラットフォームで動いています。 Vine Linux 4.2 でも、Vine Plus に clisp の rpm があるので、それを インストールするだけです。

設定

個人用の sbcl の設定は主に .clisprc を利用する。

asdf のための設定

どうするのが正解かはよくわからないが、取り敢えず sbcl の場合を真似て ~/.clisp/site, ~/.clisp/systems というディレクトリを作成しておく。

asdfを利用するために, まず asdf.lispをダウンロードして、~/.clisp/site に置く。 基本的にはこの単一のファイルを読み込むだけで asdf が使える。 asdf で使うディレクトリを指定するために、asdf:*central-registry*~/.clisp/site を追加する。 ということで、.clisprcに、まずは

#-:asdf (load "~/.clisp/site/asdf")
(pushnew "~/.clisp/systems/" asdf:*central-registry* :test #'equal)
と書いておく。

slime

slime 自身のインストールについては slimeの項を参照。 これを clisp でも使えるようにするには、その設定にあるように、 slime-lisp-implementationsに clisp の設定を加えておくだけでよい。

(setq slime-lisp-implementations
      '((sbcl ("sbcl") :coding-system euc-jp-unix)
        (clisp ("clisp") :coding-system euc-jp-unix)))
実際に slime から clisp を使うには、前置引数と共に C-u M-x slime のように slime を起動して、clisp を指定すればよい。

asdf-install

clisp は sbcl のように asdf-install が始めからはついていないので、 まずはインストールする必要がある。 asdf-install から gzipped tar ball を取ってきて、それを~/.clisp/site 以下で展開し、

ln -s ~/.clisp/site/asdf-install/asdf-install.asd ~/.clisp/systems
のようにシンボリックリンクをはっておく。これで clisp から asdf を使って asdf-install パッケージをロードできるようになる。 自動的にロードするようにし、また asdf-install を利用して他のパッケージを インストールする場所を指定するために、最終的には ~/.clisprc には、
#-:asdf (load "~/.clisp/site/asdf")
(pushnew "~/.clisp/systems/" asdf:*central-registry* :test #'equal)
#-:asdf-install (asdf:operate 'asdf:load-op :asdf-install)
(setf asdf-install:*locations*
      '((#P"/usr/lib/clisp/site/" #P"/usr/lib/clisp/site-systems/"
	 "System-wide install")
	(#P"~/.clisp/site/" #P"~/.clisp/systems/"
	 "Personal installation")))
のように書いておく。これで asdf-install によるインストールで、個人のディ レクトリを指定した場合には、新しいパッケージは ~/.clisp/ 以下にインストールされることになる。

なお、~/.asdf-install

(defparameter ASDF-INSTALL-CUSTOMIZE::*VERIFY-GPG-SIGNATURES* nil)
と書いておけば、gpg signature のチェックにいちいち No と答えなくてよい。

core dump

(ext:saveinitmem "main.core")
で、コアイメージを main.core というファイルに dump できる。これを読み込む には、
clisp -M main.core
のように起動すればよい。ext:saveinitmemにはいろいろと キーワードオプションがあるので、見ておくとよい。


[Common Lisp]->[clisp]