Не удается использовать quicklisp с clozure-cl
При использовании SBCL
обычно я хочу попробовать CCL
для некоторого тестирования и установил его через homebrew
на моем компьютере. Это сработало, но я не могу использоватьquicklisp
с участием CCL
. Если я попытаюсь загрузить quicklispsetup.lisp
Я получаю следующее сообщение об ошибке:
➜ ~ ccl64
Clozure Common Lisp Version 1.11.6 DarwinX8664
For more information about CCL, please see http://ccl.clozure.com.
CCL is free software. It is distributed under the terms of the Apache
Licence, Version 2.0.
? (require 'asdf)
ASDF
("uiop" "UIOP" "asdf" "ASDF")
? (load "~/quicklisp/setup.lisp")
> Error: There is no package named "ASDF/SYSTEM-REGISTRY" .
> While executing: CCL::%FASL-NVPACKAGE, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry finding package with name "ASDF/SYSTEM-REGISTRY".
> Type :? for other options.
1 > :POP
Я не мог найти простого решения в Интернете. CCL
приходит с ASDF
в качестве (require 'ASDF)
работает. В документации quicklisp я не смог найти ничего о дополнительных усилиях по использованию его с двумя реализациями lisp параллельно.
Если я проверю версию ASDF, как предложено здесь, я получу"3.1.5"
как установленная версия, которая должна быть последней.
Есть ли что-то очевидное, что мне не хватает?
2 ответа
Я думаю, что нашел: у меня были старые данные в моем ~/.cache
каталог из другой попытки установки ccl
. После удаления я могу загрузить quicklispsetup.lisp
без ошибок.
Пожалуйста, посоветуйте, если я должен удалить свой вопрос или оставить его здесь, чтобы другие не повторили мои ошибки.
Обратите внимание, что у разных Lisp'ов есть файлы запуска. Некоторые из них по умолчанию:
- SBCL: ~/.sbclrc
- CLISP: ~ /.clisprc.lisp
- Закрытие: ~/.ccl-init.lisp
Из документации CCL:
По умолчанию Clozure CL будет искать файл с именем ccl-init.lisp в вашем домашнем каталоге и загружать его при запуске. В системах Unix он также будет искать.ccl-init.lisp.
CCL использует обычный файл lisp с именем ccl-init.lisp, который в системах unix обычно помещается в ваш домашний путь. Таким образом, вы можете добавить следующие строки в этот файл (на моем компьютере с Ubuntu это путь /home/me/.ccl-init.lisp), который указывает CCL загружать quicklisp при запуске:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
Этого достаточно, чтобы ваш CCL мог взаимодействовать с quicklisp.