果たしてroswellにたよらずにやっていけるだろうか。
なにはともあれ今まで何度も読み返していた「require, ASDF, quicklispを正しく使う」をふたたび、読み返す。いまいち、理解していないんだよなぁ、このあたりの話。roswellにたよってしまっていたのでなおのこと。
とりあえず、FreeBSD環境にSBCLをインストールした。
pkgにはほかにも「alexandria」とか、「asdf」とか、もろもろの他、SBCLのパッチがあたっているとおぼしき、バージョンもある。これを使うべきか?
迷いつつ、SBCLをslimeで使えるように設定して。
(setq inferior-lisp-program "/usr/local/bin/sbcl --noinform")
立ち上げてみたら「asdf」なんたらの文字が見えた。
そうか。SBCLの中にasdfが内蔵されているのか。そういえば、ABCLもそうだった。それならpkgでASDFをインストールすることもないか。
ところがいくらやってみても「~/.config/common-lisp/source-registry.conf 」に定義した内容がcommonlispに反映されない。試行錯誤すること数時間。
あかんわー。
自分のミスとは思えない。もしかしたらSBCL内蔵のASDFは「~/.config/common-lisp/source-registry.conf 」は無効になっているのかもしれない。じゃ、どうやって設定すれば、いいんだ?
「quicklisp」でもってきたライブラリの場所を認識させたいんだけど?
つらつら考えて「~/.sbclrc」に設定した。
(asdf::initialize-source-registry
'(:source-registry
(:tree "~/quicklisp/dists/") :INHERIT-CONFIGURATION))
「asdf:find-system」で設定が有効になっていることを確認。
よし。
でもREPLで「ql:quickload」が使えないのは不便なので「~/.sbclrc」にさらに設定を追加した。
(load #P"~/quicklisp/setup.lisp")
あれ、これでroswellからのREPLとほぼ、同じになったんじゃね?
すくなくともぼくが使うかぎりにおいて。