[asdf-devel] never ending component relative pathnames

james anderson james.anderson at setf.de
Sun Mar 14 23:04:33 UTC 2010


good evening;

here is yet another update.[0]
where no string values are permitted for :pathname arguments - not  
even those which i had understood should be supported, the results  
are almost uniform.

20100314T224221/alisp/output.txt:
   (:RESULT :TYPE "International Allegro CL Free Express Edition"
            :VERSION "8.2 [Linux (x86)] (Jan 25, 2010 14:49)"
            :FILE #P"output.txt"
            :SYSTEM-FAILURES (0 320) :DIRECTORY-FAILURES (0  
1280) :FILE-FAILURES (213 2080) :HOMOGENEOUS 85)
20100314T224221/ccl/output.txt:
   (:RESULT :TYPE "Clozure Common Lisp" :VERSION "Version 1.4-r13119   
(LinuxX8632)" :FILE #P"output.txt"
            :SYSTEM-FAILURES (0 320) :DIRECTORY-FAILURES (0  
1280) :FILE-FAILURES (0 2080) :HOMOGENEOUS 0)
20100314T224221/clisp/output.txt:
   (:RESULT :TYPE "CLISP"
            :VERSION "2.48+ (2009-08-24) (built on  
ip-10-251-121-194.ec2.internal [10.251.121.194])"
            :FILE #P"output.txt"
            :SYSTEM-FAILURES (148 327) :DIRECTORY-FAILURES (0  
1197) :FILE-FAILURES (43 2378) :HOMOGENEOUS 35)
20100314T224221/cmucl/output.txt:
   (:RESULT :TYPE "CMU Common Lisp" :VERSION "20a (20A)" :FILE  
#P"output.txt"
            :SYSTEM-FAILURES (0 320) :DIRECTORY-FAILURES (0  
1280) :FILE-FAILURES (0 2080) :HOMOGENEOUS 0)
20100314T224221/ecl/output.txt:
   (:RESULT :TYPE "ECL" :VERSION "10.2.1" :FILE #P"output.txt"
            :SYSTEM-FAILURES (0 320) :DIRECTORY-FAILURES (0  
1280) :FILE-FAILURES (0 2080) :HOMOGENEOUS 0)
20100314T224221/lw/output.txt:
   (:RESULT :TYPE "LispWorks Personal Edition" :VERSION "5.1.1"
            :FILE #P"/ebs/test/20100314T224221/lw/output.txt"
            :SYSTEM-FAILURES (0 320) :DIRECTORY-FAILURES (0  
1280) :FILE-FAILURES (0 2080) :HOMOGENEOUS 0)
20100314T224221/sbcl/output.txt:
   (:RESULT :TYPE "SBCL" :VERSION "1.0.36" :FILE #P"/ebs/test/ 
20100314T224221/sbcl/output.txt"
            :SYSTEM-FAILURES (0 320) :DIRECTORY-FAILURES (0  
1280) :FILE-FAILURES (0 2080) :HOMOGENEOUS 0)


- the pathname merge operator must be modified[1] to be strict with  
the arguments it supplies to make-pathname
- allegro[3] fails for 213 file components. it occasionally  
constructs an unintended pathname by supplying a spurious type
- clisp[4] fails to construct 148 systems and fails to find 43 files.  
it occasionally constructs an unintended pathname by incorporating a  
logical pathname's namestring as a file name


---
  [0] : http://ec2-174-129-136-72.compute-1.amazonaws.com/test/ 
20100314T224221.txt
  [1] : http://ec2-174-129-136-72.compute-1.amazonaws.com/test/asdf- 
diff.txt
  [3] : http://ec2-174-129-136-72.compute-1.amazonaws.com/test/ 
20100314T224221/alisp/output.txt
  [4] : http://ec2-174-129-136-72.compute-1.amazonaws.com/test/ 
20100314T224221/clisp/output.txt



asdf.lisp diff:


diff --git a/asdf.lisp b/asdf.lisp
index 7858caa..470cbda 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -513,8 +513,13 @@ does not have an absolute directory, then the  
HOST and DEVICE come from the DEFA
             (values (pathname-host defaults)
                     (pathname-device defaults)
                     (append (pathname-directory defaults) (cdr  
directory)))))
-      (make-pathname :host host :device device :directory directory
-                     :name name :type type :version version))))
+
+      (apply #'make-pathname :host host :device device :directory  
directory
+                            `(,@(case version ((nil :unspecific)  
nil) (t `(:version ,version)))
+                              ,@(case name ((nil :unspecific) nil)  
(t `(:name ,name)))
+                              ,@(case type ((nil :unspecific) nil)  
(t `(:type ,type)))))
+      #+(or) (make-pathname :host host :device device :directory  
directory
+                           :name name :type type :version version))))

  (define-modify-macro appendf (&rest args)
    append "Append onto list")





More information about the asdf-devel mailing list