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

Reply via email to