[asdf-devel] ASDF shipped with the latest Quicklisp-client doesn't work on Allegro CL 8.1
Xiaofeng Yang
n.akr.akiiya at gmail.com
Sat Jan 12 08:49:12 UTC 2013
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 at 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 at 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 at common-lisp.net
> > http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20130112/54e09bf9/attachment.html>
More information about the asdf-devel
mailing list