使用sbcl的Quicklisp:加载各种库时出现未定义函数错误

使用sbcl的Quicklisp:加载各种库时出现未定义函数错误,lisp,common-lisp,sbcl,quicklisp,Lisp,Common Lisp,Sbcl,Quicklisp,我试图在xubuntu上使用带SBCL 1.0.55.0.debian的quicklisp。到目前为止,进展缓慢。大约有一半的时间,我可以加载一个库,例如,(ql:quickload“cl-ppcre”) 但在另一半的时间里,我得到了这个错误(在尝试加载hunchentoot cgi、libxml2和其他一些文件时): 除了2(接受)之外,我已经尝试了所有的重启。这在emacs/SLIME和REPL中都会发生。我不知道“sb内核”的源文件的确切位置,但是如果我知道的话,我甚至不知道如何修复它。有

我试图在xubuntu上使用带SBCL 1.0.55.0.debian的quicklisp。到目前为止,进展缓慢。大约有一半的时间,我可以加载一个库,例如,
(ql:quickload“cl-ppcre”)

但在另一半的时间里,我得到了这个错误(在尝试加载hunchentoot cgi、libxml2和其他一些文件时):

除了2(接受)之外,我已经尝试了所有的重启。这在emacs/SLIME和REPL中都会发生。我不知道“sb内核”的源文件的确切位置,但是如果我知道的话,我甚至不知道如何修复它。有什么建议吗

(更新:行
(:use:cl)
就在
(:昵称:alexandria)
行的正下方
package.lisp
;交换位置解决了这个问题,但我很好奇它最初是如何做到的。)

完整跟踪(针对hunchentoot cgi)为:

函数:昵称未定义。
[类型未定义的条件-函数]
重新启动:
0:[尝试重新编译]重新编译包并再次尝试加载
1:[重试]重试加载#的FASL。
2:[接受]继续,将加载FASL视为已成功。
3:[中止]放弃“hunchentoot cgi”
4:[重试]重试SLIM REPL评估请求。
5:[*中止]返回SLIME的顶层。
--更多--
回溯:
0:(SB-KERNEL:%Procure-CALLABLE-TO-FUN:昵称)
1:(SB-FASL::FOP-FUNCALL)
2:(SB-FASL::LOAD-FASL-GROUP.)
3:((FLET-SB-THREAD::WITH-RECURSIVE-LOCK-THUNK:IN-SB-FASL::LOAD-AS-FASL))
4:((FLET#:WITHOUT-INTERRUPTS-BODY-88923:IN-SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
5:(SB-THREAD::CALL-WITH-RECURSIVE-LOCK..)
6:(SB-FASL::LOAD-AS-FASL.)
7:((FLET SB-FASL::加载流:加载中)…)
8:(装载)
9:(SB-IMPL::%MAP-FOR-EFFECT-ARITY-1.)
10:((SB-PCL::快速方法ASDF:PERFORM(ASDF:LOAD-OP ASDF:CL-SOURCE-FILE))…)
11:((SB-PCL::EMF ASDF:执行)
12:((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS(ASDF:LOAD-OP ASDF:CL-SOURCE-FILE))…)
13:((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS:AROUND(T))…)
14:((LAMBDA():在ASDF::PERFORM-PLAN中))
15:((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK:在SB-C中::%WITH-COMPILATION-UNIT))
16:((FLET#:WITHOUT-INTERRUPTS-BODY-88923:IN-SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
17:(SB-THREAD::CALL-WITH-RECURSIVE-LOCK..)
18:((FLET SB-C::WITH-IT:IN SB-C::%WITH-COMPILATION-UNIT))
19:((SB-PCL::快速方法ASDF::执行计划(列表))…)
20:((LAMBDA():在ASDF中:操作))
21:(ASDF::CALL-WITH-SYSTEM-DEFINITIONS#)
22:((SB-PCL::快速方法ASDF:OPERATE(T))35;#ASDF:LOAD-OP“hunchentoot cgi”:详细无)
23:((SB-PCL::EMF ASDF:OPERATE)##ASDF:LOAD-OP“hunchentoot cgi”:详细无)
24:(QUICKLISP-CLIENT::CALL-WITH-MACROEXPAND-PROGRESS#)
25:(QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES“hunchentoot cgi”:提示无)
26:((SB-PCL::FAST-METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION(T))…)
27:((SB-PCL::FAST-METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION:AROUND(QL-IMPL:SBCL T)))
28:((SB-PCL::FAST-METHOD QUICKLISP-CLIENT:QUICKLOAD(T))###:提示符NIL:VERBOSE NIL)
29:(QL-DIST::CALL-WITH-CONSISTENT-DISTS#)
30:(SB-INT:SIMPLE-EVAL-IN-lexev(QUICKLISP-CLIENT:QUICKLOAD“hunchentoot cgi”)#
31:(EVAL(QUICKLISP-CLIENT:QUICKLOAD“hunchentoot cgi”))
32:(SWANK::EVAL-REGION“(ql:quickload\'hunchentoot cgi\”)\n)
33:((LAMBDA():在SWANK::REPL-EVAL中))
34:(SWANK::跟踪包#)
35:(SWANK::CALL-WITH-RETRY-RESTART“RETRY SLIME REPL求值请求”。#
36:(SWANK::CALL-WITH-BUFFER-SYNTAX NIL#)
37:(SWANK::REPL-EVAL“(ql:quickload\'hunchentoot cgi\”)\n)
38:(SB-INT:SIMPLE-EVAL-IN-lexev(SWANK:LISTENER-EVAL)(ql:quickload\'hunchentootcgi\)\n)
39:(EVAL(SWANK:LISTENER-EVAL)(ql:quickload\'hunchentoot cgi\)\n)
40:(SWANK:EVAL-FOR-EMACS(SWANK:LISTENER-EVAL)(ql:quickload \“hunchentoot cgi\”)\n)、“COMMON-LISP-USER”144)
41:(SWANK::PROCESS-REQUESTS-NIL)
42:((LAMBDA():在SWANK::HANDLE-REQUESTS中))
43:((LAMBDA():在SWANK::HANDLE-REQUESTS中))
44:(SWANK-BACKEND::CALL-WITH-BREAK-HOOK##)
45:((FLET-SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK:IN”/home/ampery/.emacs.d/slime-2.7/SWANK-sbcl.lisp)#
46:(SWANK::使用绑定调用..)
47:(SWANK::HANDLE-REQUESTS#NIL)
48:((FLET#:无中断-BODY-223578:IN-SB-THREAD:MAKE-THREAD))
49:((FLET SB-THREAD::WITH-MUTEX-THUNK:IN SB-THREAD:MAKE-THREAD))
50:((FLET#:无中断-BODY-88894:IN-SB-THREAD::CALL-WITH-MUTEX))
51:(SB-THREAD::带互斥的调用..)
52:(SB-THREAD::INITIAL-THREAD-FUNCTION)
53:(“外部函数:调用到lisp中”)
54:(“外部函数:funcall0”)
55:(“国外功能:新螺纹蹦床”)
56:(“外部功能:#xB7FA6D4C”)

正如Xach指出的,在调用
(:昵称:alexandria)
时,活动包没有
(:use:cl)
。交换这两行的顺序解决了这个问题,尽管我不知道它们为什么会在开始时按顺序排列。

我不太愿意插话,因为我是Common Lisp新手,但看起来您对Alexandria包有问题,这可能是一个依赖项。它是否已安装和/或是否可以重新安装?错误来自
alexandria
package.lisp
文件。该文件以
开头(defpackage:alexandria.0.dev(:昵称:alexandria)…
;我猜第一行可能丢失或损坏,导致编译器将第二行解释为对
:昵称
的函数调用。检查该文件;它位于路径
~/quicklisp/dists/quicklisp/software/alexandria-20130128-git/
或类似的位置。当(defpackage foo(:昵称栏))在活动包不使用CL时求值。在这种情况下,它读取为SOMEPACKAGE::defpackage,作为函数处理,并尝试求值ar
The function :NICKNAMES is undefined.
[Condition of type UNDEFINED-FUNCTION]
The function :NICKNAMES is undefined.
   [Condition of type UNDEFINED-FUNCTION]

Restarts:
 0: [TRY-RECOMPILING] Recompile package and try loading it again
 1: [RETRY] Retry loading FASL for #<CL-SOURCE-FILE "alexandria" "package">.
 2: [ACCEPT] Continue, treating loading FASL for #<CL-SOURCE-FILE "alexandria" "package"> as having been successful.
 3: [ABORT] Give up on "hunchentoot-cgi"
 4: [RETRY] Retry SLIME REPL evaluation request.
 5: [*ABORT] Return to SLIME's top level.
 --more--

Backtrace:
  0: (SB-KERNEL:%COERCE-CALLABLE-TO-FUN :NICKNAMES)
  1: (SB-FASL::FOP-FUNCALL)
  2: (SB-FASL::LOAD-FASL-GROUP ..)
  3: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-FASL::LOAD-AS-FASL))
  4: ((FLET #:WITHOUT-INTERRUPTS-BODY-88923 :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
  5: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
  6: (SB-FASL::LOAD-AS-FASL ..)
  7: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) ..)
  8: (LOAD ..)
  9: (SB-IMPL::%MAP-FOR-EFFECT-ARITY-1 ..)
 10: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:LOAD-OP ASDF:CL-SOURCE-FILE)) ..)
 11: ((SB-PCL::EMF ASDF:PERFORM) #<unavailable argument> #<unavailable argument> #<ASDF:LOAD-OP (:VERBOSE NIL) {10ABFD01}> #<ASDF:CL-SOURCE-FILE "alexandria" "package">)
 12: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS (ASDF:LOAD-OP ASDF:CL-SOURCE-FILE)) ..)
 13: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS :AROUND (T T)) ..)
 14: ((LAMBDA () :IN ASDF::PERFORM-PLAN))
 15: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-C::%WITH-COMPILATION-UNIT))
 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-88923 :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
 17: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
 18: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
 19: ((SB-PCL::FAST-METHOD ASDF::PERFORM-PLAN (LIST)) ..)
 20: ((LAMBDA () :IN ASDF:OPERATE))
 21: (ASDF::CALL-WITH-SYSTEM-DEFINITIONS #<CLOSURE (LAMBDA # :IN ASDF:OPERATE) {108EF07D}>)
 22: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unused argument> #<unused argument> ASDF:LOAD-OP "hunchentoot-cgi" :VERBOSE NIL)
 23: ((SB-PCL::EMF ASDF:OPERATE) #<unused argument> #<unused argument> ASDF:LOAD-OP "hunchentoot-cgi" :VERBOSE NIL)
 24: (QUICKLISP-CLIENT::CALL-WITH-MACROEXPAND-PROGRESS #<CLOSURE (LAMBDA # :IN QUICKLISP-CLIENT::APPLY-LOAD-STRATEGY) {108EEE4D}>)
 25: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "hunchentoot-cgi" :PROMPT NIL)
 26: ((SB-PCL::FAST-METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION (T T)) ..)
 27: ((SB-PCL::FAST-METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION :AROUND (QL-IMPL:SBCL T)) ..)
 28: ((SB-PCL::FAST-METHOD QUICKLISP-CLIENT:QUICKLOAD (T)) #<unused argument> #<unused argument> #<unavailable argument> :PROMPT NIL :VERBOSE NIL)
 29: (QL-DIST::CALL-WITH-CONSISTENT-DISTS #<CLOSURE (LAMBDA # :IN QUICKLISP-CLIENT:QUICKLOAD) {108CD455}>)
 30: (SB-INT:SIMPLE-EVAL-IN-LEXENV (QUICKLISP-CLIENT:QUICKLOAD "hunchentoot-cgi") #<NULL-LEXENV>)
 31: (EVAL (QUICKLISP-CLIENT:QUICKLOAD "hunchentoot-cgi"))
 32: (SWANK::EVAL-REGION "(ql:quickload \"hunchentoot-cgi\")\n")
 33: ((LAMBDA () :IN SWANK::REPL-EVAL))
 34: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA # :IN SWANK::REPL-EVAL) {108CD12D}>)
 35: (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME REPL evaluation request." #<CLOSURE (LAMBDA # :IN SWANK::REPL-EVAL) {108CD0BD}>)
 36: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA # :IN SWANK::REPL-EVAL) {108CD0A5}>)
 37: (SWANK::REPL-EVAL "(ql:quickload \"hunchentoot-cgi\")\n")
 38: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(ql:quickload \"hunchentoot-cgi\")\n") #<NULL-LEXENV>)
 39: (EVAL (SWANK:LISTENER-EVAL "(ql:quickload \"hunchentoot-cgi\")\n"))
 40: (SWANK:EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(ql:quickload \"hunchentoot-cgi\")\n") "COMMON-LISP-USER" 144)
 41: (SWANK::PROCESS-REQUESTS NIL)
 42: ((LAMBDA () :IN SWANK::HANDLE-REQUESTS))
 43: ((LAMBDA () :IN SWANK::HANDLE-REQUESTS))
 44: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA # :IN SWANK::HANDLE-REQUESTS) {D2420C5}>)
 45: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/home/amperry/.emacs.d/slime-2.7/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA # :IN SWANK::HANDLE-REQUESTS) {D2420C5}>)
 46: (SWANK::CALL-WITH-BINDINGS ..)
 47: (SWANK::HANDLE-REQUESTS #<SWANK::MULTITHREADED-CONNECTION {CBAE9B1}> NIL)
 48: ((FLET #:WITHOUT-INTERRUPTS-BODY-223578 :IN SB-THREAD:MAKE-THREAD))
 49: ((FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD:MAKE-THREAD))
 50: ((FLET #:WITHOUT-INTERRUPTS-BODY-88894 :IN SB-THREAD::CALL-WITH-MUTEX))
 51: (SB-THREAD::CALL-WITH-MUTEX ..)
 52: (SB-THREAD::INITIAL-THREAD-FUNCTION)
 53: ("foreign function: call_into_lisp")
 54: ("foreign function: funcall0")
 55: ("foreign function: new_thread_trampoline")
 56: ("foreign function: #xB7FA6D4C")