[asdf-devel] bug in new ASDF

Gary King gwking at metabang.com
Mon Jul 13 17:33:07 UTC 2009


> OK, I /have/ misdiagnosed this.  The logic seems actually busted in
> directory-pathname-p.  The problem is that, at least on allegro, you  
> can
> get a valid directory pathname whose name component is neither NIL,  
> nor
> :unspecific, but "" (the empty string).

Ugh,

> (member (pathname-name pathname) (list nil "" :unspecific) :test  
> 'equal)


A source of the problem are pathnames that arise from things like this:

     > (make-pathname :name "" :directory '(:absolute "tmp"))
    #p"/tmp/"
     > (pathname-name *)
     ""

Added a call to namestring seems to be another way to canonical things  
so I think this will also work and feels (to me) a bit more portable:

(defun directory-pathname-p (pathname)
   (let ((pathname (namestring pathname)))
     (and (member (pathname-name pathname) (list nil :unspecific))
	 (member (pathname-type pathname) (list nil :unspecific)))))

wadayathink? Should I push?
--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM * gwking on twitter









More information about the asdf-devel mailing list