quicklisp-bootstrap
quicklisp-bootstrap copied to clipboard
The latest quicklisp-client doesn't work on Allegro CL 8.1
The ASDF shipped with latest Quicklisp-client doesn't work on Allegro CL 8.1 correctly. So I fixed it and made an ugly patch for it. I'm so sorry I don't know whether this is the right place ( I found that the file asdf.lisp' is in this project but not in
quicklisp-client' project) to discuss this problem, so I also post an email to asdf-devel.
The problem and patch can also be found here: https://github.com/nakrakiiya/acl-patches/commit/86236e11d89765a15fe44c0ede40119ed4958c3c#8.1/quicklisp-client-2012112500/asdf.lisp
Illegal keyword given: :EXTERNAL-FORMAT.' while executing `(quicklisp-quickstart:install)'.
Details:
CL-USER> (quicklisp-quickstart:install) ; Loading D:\Documents and Settings\nakra\quicklisp\setup.lisp
Illegal keyword given: :EXTERNAL-FORMAT. [Condition of type PROGRAM-ERROR]
Restarts: 0: [RETRY] Retry compiling #<CL-SOURCE-FILE "quicklisp" "package">. 1: [ACCEPT] Continue, treating compiling #<CL-SOURCE-FILE "quicklisp" "package"> as having been successful. 2: [RETRY] retry the load of D:\Documents and Settings\nakra\quicklisp\setup.lisp 3: [SKIP] skip loading D:\Documents and Settings\nakra\quicklisp\setup.lisp 4: [RECOMPILE-DUE-TO-INCOMPATIBLE-FASL] recompile D:\Documents and Settings\nakra\quicklisp\setup.lisp 5: [RETRY] Retry SLIME REPL evaluation request. --more--
Backtrace: 0: (ERROR PROGRAM-ERROR :FORMAT-CONTROL "Illegal keyword given: ~s." :FORMAT-ARGUMENTS (:EXTERNAL-FORMAT)) 1: (COMPILE-FILE-PATHNAME "x.lisp" ..) 2: (ASDF:COMPILE-FILE-PATHNAME* #P"D:\Documents and Settings\nakra\quicklisp\quicklisp\package.lisp" :OUTPUT-FILE ..) 3: (ASDF:COMPILE-FILE* #P"D:\Documents and Settings\nakra\quicklisp\quicklisp\package.lisp" :OUTPUT-FILE ..) 4: ((:INTERNAL (METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) 0)) 5: ((METHOD ASDF::CALL-WITH-AROUND-COMPILE-HOOK (ASDF:COMPONENT T)) #<ASDF:CL-SOURCE-FILE "quicklisp" "package"> #<Closure (:INTERNAL (METHOD ASDF:PERFORM #) 0) @ #x2143fc7a>) 6: ((METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">) 7: ((:INTERNAL (:EFFECTIVE-METHOD 2 NIL NIL NIL NIL) 0) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">) 8: ((METHOD ASDF::PERFORM-WITH-RESTARTS (T T)) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">) 9: ((METHOD ASDF::PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">) 10: ((:INTERNAL (:EFFECTIVE-METHOD 2 NIL NIL T T) 0) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">) 11: ((FLET (METHOD ASDF::PERFORM-PLAN (LIST)) EXCL::CONTINUATION)) 12: ((METHOD ASDF::PERFORM-PLAN (LIST)) ..) 13: ((:INTERNAL (:EFFECTIVE-METHOD 1 T T NIL NIL) 0) ..) 14: ((:INTERNAL (METHOD ASDF:OPERATE (T T)) 0)) 15: (ASDF::CALL-WITH-SYSTEM-DEFINITIONS #<Closure (:INTERNAL (METHOD ASDF:OPERATE #) 0) [LOAD-OP] @ #x213d36da>) 16: ((METHOD ASDF:OPERATE (T T)) ASDF:LOAD-OP "quicklisp" :VERBOSE NIL) 17: ((:INTERNAL (:EFFECTIVE-METHOD 2 T NIL NIL NIL) 0) ASDF:LOAD-OP "quicklisp" . 1) 18: (ASDF:OOS ASDF:LOAD-OP "quicklisp" :VERBOSE NIL) 19: (LET ((COMPILE-PRINT NIL) (COMPILE-VERBOSE NIL) (LOAD-VERBOSE NIL) (LOAD-PRINT NIL)) (ASDF:OOS 'ASDF:LOAD-OP "quicklisp" :VERBOSE NIL)) --more--
The diff from the origin asdf.lisp file:
$ git diff 6d465f92b240fe5ded55447f9a000a1e54a7a22a 86236e11d89765a15fe44c0ede40119ed4958c3c
diff --git a/8.1/quicklisp-client-2012112500/asdf.lisp b/8.1/quicklisp-client-2012112500/asdf.lisp
index 283ad86..2f9b98a 100644
--- a/8.1/quicklisp-client-2012112500/asdf.lisp
+++ b/8.1/quicklisp-client-2012112500/asdf.lisp
@@ -2478,7 +2478,10 @@ recursive calls to traverse.")
c #'(lambda (&rest flags)
(apply *compile-op-compile-file-function* source-file
:output-file output-file
- :external-format (component-external-format c)
+ #+(or (and allegro (version>= 8 2))
+ (not allegro)) :external-format
+ #+(or (and allegro (version>= 8 2))
+ (not allegro)) (component-external-format c)
(append flags (compile-op-flags operation)))))
(unless output
(error 'compile-error :component c :operation operation))
+1
+1 as well. This is Allegro's fault, as compile-file-pathname
is supposed to allow-other-keys
.
Still, this fairly old issue is still bugging some of my fellow lisp devs who have to work on acl 8.1. ASDF 2.33 solves it, as does not passing :external-format
in to compile-file-pathname
in this asdf version.
Updating to the latest asdf worked for me. Note the stage to remove old asdf-fasls!
> pushd ~/quicklisp
> rm asdf.lisp
> wget http://common-lisp.net/project/asdf/asdf.lisp
> rm -rf ~/quicklisp/cache/asdf-fasls/*
> popd