I modified the origin asdf.lisp file, and it(  (quicklisp-quickstart:install) ) works for me on these implementations(win7 x64) now:

Allegro CL 8.1
Allegro CL 8.2
ABCL 1.0.1
Clozure CL 1.8(x86, x64)
CLISP 2.49
SBCL 1.0.55.1(with threads support)(x86, x64)
ECL 11.1.1(MinGW, gcc 4.5.0, lisp->c compiler)


Here's the patch:
$ git diff
diff --git a/8.1/quicklisp-client-2012112500/asdf.lisp b/8.1/quicklisp-client-2012112500/asdf.lisp
index 283ad86..18e13a2 100644
--- a/8.1/quicklisp-client-2012112500/asdf.lisp
+++ b/8.1/quicklisp-client-2012112500/asdf.lisp
@@ -3909,13 +3909,16 @@ effectively disabling the output translation facility."
 (defun* compile-file-pathname* (input-file &rest keys &key output-file &allow-other-keys)
   (if (absolute-pathname-p output-file)
       ;; what cfp should be doing, w/ mp* instead of mp
-      (let* ((type (pathname-type (apply 'compile-file-pathname "x.lisp" keys)))
-            (defaults (make-pathname
-                       :type type :defaults (merge-pathnames* input-file))))
-       (merge-pathnames* output-file defaults))
+      (let* ((type (pathname-type (apply 'compile-file-pathname "x.lisp"
+                                         (remove-keys '(#+(and allegro (not (version>= 8 2))) :external-format)
+                                                      keys))))
+             (defaults (make-pathname
+                        :type type :defaults (merge-pathnames* input-file))))
+        (merge-pathnames* output-file defaults))
       (apply-output-translations
-       (apply 'compile-file-pathname input-file
-             (if output-file keys (remove-keyword :output-file keys))))))
+        (apply 'compile-file-pathname input-file
+                      (remove-keys `(#+(and allegro (not (version>= 8 2))) :external-format
+                                       ,@(unless output-file '(:output-file))) keys)))))

 (defun* tmpize-pathname (x)
   (make-pathname






And here's the diff (compared with ignoring whitespaces) for easier reading:
$ git diff -w
diff --git a/8.1/quicklisp-client-2012112500/asdf.lisp b/8.1/quicklisp-client-2012112500/asdf.lisp
index 283ad86..18e13a2 100644
--- a/8.1/quicklisp-client-2012112500/asdf.lisp
+++ b/8.1/quicklisp-client-2012112500/asdf.lisp
@@ -3909,13 +3909,16 @@ effectively disabling the output translation facility."
 (defun* compile-file-pathname* (input-file &rest keys &key output-file &allow-other-keys)
   (if (absolute-pathname-p output-file)
       ;; what cfp should be doing, w/ mp* instead of mp
-      (let* ((type (pathname-type (apply 'compile-file-pathname "x.lisp" keys)))
+      (let* ((type (pathname-type (apply 'compile-file-pathname "x.lisp"
+                                         (remove-keys '(#+(and allegro (not (version>= 8 2))) :external-format)
+                                                      keys))))
             (defaults (make-pathname
                        :type type :defaults (merge-pathnames* input-file))))
        (merge-pathnames* output-file defaults))
       (apply-output-translations
        (apply 'compile-file-pathname input-file
-             (if output-file keys (remove-keyword :output-file keys))))))
+                      (remove-keys `(#+(and allegro (not (version>= 8 2))) :external-format
+                                       ,@(unless output-file '(:output-file))) keys)))))

 (defun* tmpize-pathname (x)
   (make-pathname





     Best regards,
Xiaofeng Yang


2013/1/12 Faré <fahree@gmail.com>
Dear Xiaofeng,

assuming it's indeed a bug in allegro 8.1's compile-file-pathname,
can you try to edit the call to compile-file-pathname this way,
in defun compile-file-pathname* ?

 (apply 'compile-file-pathname input-file
                      (remove-keys `(#+(and allegro (not (version>= 8
2))) :external-format
                                       ,@(unless output-file
'(:output-file))) keys))

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Philosophy is questions that may never be answered.
Religion is answers that may never be questioned.


On Sat, Jan 12, 2013 at 12:48 AM, Raymond Toy <toy.raymond@gmail.com> wrote:
>>>>>> "Fare" == Far  <Far> writes:
>
>     Fare> Dear Xf,
>     Fare> thanks for the patch. On allegro 8.1, is it only compile-file-pathname
>     Fare> that refuses the :external-format argument, or compile-file as well?
>     Fare> In the latter case, how does allegro 8.1 control encoding for input
>     Fare> files? Does it rely on a special variable?
>
> Is this not a bug in Allegro's compile-file-pathname.  The CLHS says
> compile-file-pathname should accept all keywords accepted by
> compile-file.
>
> The docs for Allegro 8.1[1] says compile-file accepts :external-format.
>
> Ray
> [1] http://www.franz.com/support/documentation/8.1/ansicl/dictentr/compile-.htm
>
>
>
>
> _______________________________________________
> asdf-devel mailing list
> asdf-devel@common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel