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")