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