uiop:file-exists-p fails for dotfiles in Clozure

Bug #1518518 reported by Paul M. Rodriguez
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Fix Released
Low
Faré

Bug Description

If you call uiop:file-exists-p on a dotfile in CCL, it always returns nil.
This is true even though uiop:directory-files shows the dotfile in the
directory listing.

The problem seems to be that, on CCL, probe-file automatically
converts a file whose name starts with a dot into a pathname with no
name, only a type.

E.g.

(pathname-name
 (probe-file
  (make-pathname :defaults (user-homedir-pathname)
                 :name ".bashrc"))) ;=> nil

And then the pathname with no name fails uiop:file-pathname-p.

Revision history for this message
Faré (fahree) wrote :

cl -l $l -i "(let ((p (probe-file \".bashrc\"))) (format t \"$l: ~S ~S~%\" (pathname-name p) (pathname-type p)))"

".bashrc" NIL ;; abcl allegro clisp cmucl ecl mkcl sbcl xcl
NIL "bashrc" ;; ccl gcl lispworks

Therefore, uiop:file-pathname-p is probably wrong to assume a file pathname needs a non-nil name.

http://trac.clozure.com/ccl/ticket/1328

Revision history for this message
Faré (fahree) wrote :

OK, fixed in 3.1.6.4.

Changed in asdf:
assignee: nobody → Faré (fahree)
importance: Undecided → Low
milestone: none → asdf3.2
status: New → Fix Committed
Changed in asdf:
milestone: asdf3.2 → 3.1.7
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.