Attached are patches in 'abcl-asdf.patch' to get asdf-1.641 to work
against ABCL for the run-tests.sh.
Unfortunately, you will need to build [ABCL from trunk][1] using at
least svn r12550, because I had to patch ABCL to work with ASDF. And
you'll need to apply the 'abcl-translate-pathname.patch'.
[1]: svn://common-lisp.net/project/armedbear/svn/trunk/abcl
Notes:
1. The fugliness of the conditional around ASDF:GET-UID works around a
bug in the ABCL compiler. We are in the process of [analyzing the
error][2].
[2]: http://trac.common-lisp.net/armedbear/ticket/89
2. There is some undiagnosed problem in translating the binary location
for the new ASDF2 "~/.cache" conventions, as ABCL seems to "collapses"
everything into a single directory. Somehow, the default
*output-translations* have a "/**/**/*.*" where there should be
"/**/*.*". I'm not sure if this is a problem in
"abcl-translate-pathname.patch", which is why I didn't apply this to
ABCL trunk.
3. ASDF's run-tests.sh seems to ignore the "flags" setting, which seems
to be broken on the ASDF side.
4. The changes for ASDF look quite interesting. However I would
advocate that you should make ASDF2 work *exactly* like ASDF1 out of the
box, meaning you shouldn't do any of the subsumed ASDF-BINARY-LOCATIONS
stuff without being asked to by configuration.
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
149c149,150
< :fmakunbound '(#:perform #:explain #:output-files #:operation-done-p)
---
> :fmakunbound '(#:perform #:explain #:output-files #:operation-done-p
> #:component-relative-pathname)
253c254
< (subseq "VERSION:1.640" (1+ (length "VERSION"))))
---
> (subseq "VERSION:1.641" (1+ (length "VERSION"))))
573,575c574
< (si:getenv x)
< #+abcl
< (ext:getenv x))
---
> (si:getenv x))
658,660c657,658
< (parse-integer (read-line stream))))))
< ;; (handler-case (parse-integer (read-line stream))
< ;; (error () (error "Unable to find out user ID")))))))
---
> (handler-case (parse-integer (read-line stream))
> (error () (error "Unable to find out user ID")))))))
698a697,699
> (defun lispize-pathname (input-file)
> (make-pathname :type "lisp" :defaults input-file))
>
1490c1491
< (output (compile-file-pathname (first input) :type :fasl)))
---
> (output (compile-file-pathname (lispize-pathname (first input))
> :type :fasl)))
1524,1528c1525,1530
< #-:broken-fasl-loader
< (list #-ecl (compile-file-pathname (component-pathname c))
< #+ecl (compile-file-pathname (component-pathname c) :type :object)
< #+ecl (compile-file-pathname (component-pathname c) :type :fasl))
< #+:broken-fasl-loader (list (component-pathname c)))
---
> (let ((p (lispize-pathname (component-pathname c))))
> #-:broken-fasl-loader
> (list #-ecl (compile-file-pathname p)
> #+ecl (compile-file-pathname p :type :object)
> #+ecl (compile-file-pathname p :type :fasl))
> #+:broken-fasl-loader (list p)))
1551c1553
< :collect (let ((output (compile-file-pathname i)))
---
> :collect (let ((output (compile-file-pathname (lispize-pathname
> i))))
2041,2044c2043
< #+abcl
< (ext:run-shell-command command :output *verbose-out*)
<
< #-(or openmcl clisp lispworks allegro scl cmu sbcl ecl abcl)
---
> #-(or openmcl clisp lispworks allegro scl cmu sbcl ecl)
2515c2514
< (truenamize (make-pathname :type "lisp" :defaults input-file))
---
> (truenamize (lispize-pathname input-file))
diff -r 1be31c2fbbe1 src/org/armedbear/lisp/pathnames.lisp
--- a/src/org/armedbear/lisp/pathnames.lisp Tue Mar 16 16:18:26 2010 +0100
+++ b/src/org/armedbear/lisp/pathnames.lisp Tue Mar 16 16:56:08 2010 +0100
@@ -232,6 +232,10 @@
(append (reverse match)
(translate-directory-components-aux
src (cdr from) (cdr to) case))))
+ (when (and (null src)
+ (eq (car from) :wild-inferiors)
+ (eq (car to) :wild-inferiors))
+ (return-from translate-directory-components-aux nil))
(when (null src) ;; SRC is NIL and we're still here: error exit
(throw 'failed-match))))))
_______________________________________________
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel