Skip to content

The latest quicklisp-client doesn't work on Allegro CL 8.1 #7

Description

@nakrakiiya

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 inquicklisp-client' project) to discuss this problem, so I also post an email to asdf-devel.
The problem and patch can also be found here: nakrakiiya/acl-patches@86236e1#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))

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions