Я сломал среду CL. Я могу запустить sbcl, но не могу повторно запустить или переустановить Quicklisp (я просто удалил каталог ~/quicklisp/ и хотел бы начать все заново). Я получаю следующую ошибку:

* (load #p"~/quicklisp/setup.lisp")
While evaluating the form starting at line 129, column 0
  of #P"~/quicklisp/setup.lisp":

debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10019B67B3}>:
  The function ASDF/FIND-SYSTEM::STAMP<= is undefined.

строка 129 не представляет большого интереса, или так кажется.

То же самое при переустановке Quicklisp.

ASDF версии 3.2.1, SBCL 1.3.19.

Что может быть причиной этого?

Или как я могу полностью и правильно начать все заново? (думая о скрытых файлах .fasl или что-то в этом роде).

Благодарность !

Изменить: он загружает asdf 2.26

* (quicklisp-quickstart:install)

; Fetching #<URL "http://beta.quicklisp.org/client/quicklisp.sexp">
; 0.82KB
==================================================
838 bytes in 0.00 seconds (818.36KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/client/2017-03-06/quicklisp.tar">
; 250.00KB
==================================================
256,000 bytes in 0.09 seconds (2941.18KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/client/2015-09-24/setup.lisp">
; 4.94KB
==================================================
5,054 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/asdf/2.26/asdf.lisp">
; 194.07KB
==================================================
198,729 bytes in 0.08 seconds (2553.57KB/sec)While evaluating the form starting at line 129, column 0
  of #P"/home/vince/quicklisp/setup.lisp":

debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10019B68B3}>:
  The function ASDF/FIND-SYSTEM::STAMP<= is undefined.
2
Ehvince 4 Янв 2018 в 02:41

1 ответ

Лучший ответ

Наконец-то получил его благодаря красивому предупреждающему сообщению ASDF при попытке установить утилиту roswell:

Установить скрипт для sbcl-bin ... ВНИМАНИЕ: вы используете ASDF версии 3.3.1 (возможно, из (требуется «asdf») или загружается с помощью quicklisp), и у вас есть более старая версия ASDF 3.2.1, зарегистрированная в #P »/ home /vince/bacasable/portacle/build/asdf/asdf.asd ". Установка и регистрация ASDF - это нормальный способ настройки ASDF для обновления самого себя, а регистрация старой версии - ошибка конфигурации. ASDF проигнорирует эту настроенную систему, а не снизит ее до предыдущей версии. В будущем вы можете захотеть либо: (a) обновить этот настроенный ASDF до более новой версии, (b) установить более новый ASDF и зарегистрировать его перед первым в вашей конфигурации, или (c) удалить или отменить регистрацию и любая другая старая версия ASDF из вашей конфигурации. Обратите внимание, что более старый ASDF может быть зарегистрирован неявно через конфигурацию, унаследованную от вашей системной установки, и в этом случае вам, возможно, придется указать: ignore-inherited-configuration в вашем файле ~ / .config / common-lisp / source-registry.conf или другой файл конфигурации исходного реестра, переменная среды или параметр lisp. В самом деле, вероятным нарушителем является устаревшая версия пакета cl-asdf debian или ubuntu, которую вы, возможно, захотите обновить (если доступна достаточно свежая версия) или вообще удалить (поскольку большинство реализаций поставляются с последней версией asdf); если у вас нет прав системного администратора для обновления или удаления этого пакета, тогда вы действительно можете либо установить и зарегистрировать более новую версию, либо использовать: ignore-inherited-configuration, чтобы избежать регистрации старой. Пожалуйста, обратитесь к документации ASDF и / или к экспертам.

Так произошло из-за сборки Portacle, которую я удалил, и теперь все в порядке. ~~ Я не знаю, почему это мне мешало, хотя ~~ У меня был слишком широкий (pushnew "~/bacasable/" asdf:*central-registry* :test #'equal) в моем .sbclrc (но, похоже, у меня был закомментированный pb с этой строкой…).

Итак, поиск решения: попробуйте установить утилиту roswell (ros install sbcl-bin), посмотрите, где у вас есть файлы asdf.lisp (с locate), и следуйте предупреждениям ASDF.

Спасибо ASDF за приятное предупреждение!

0
Ehvince 7 Янв 2018 в 21:14