>>>>> "Fare" == Far  <Far> writes:

    Fare> The IRC discussion spawned by my previous bug report raised the point
    Fare> of read-write invariance of #p syntax, and the fact that once again,
    Fare> cmucl, sbcl and openmcl (and gcl, too) might be wrong by not
    Fare> distinguishing the following:

    Fare> (MAKE-PATHNAME :DIRECTORY NIL)
    Fare> => #P""

    Fare> (MAKE-PATHNAME :DIRECTORY '(:RELATIVE))
    Fare> => #P""

    Fare> clisp, allegro and lispworks agree that it is a good idea to print the
    Fare> latter as follows
    Fare> => #P"./"
    Fare> which of course pushes back the problem when you try to print
    Fare> (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "."))
    Fare> => #P"./"
    Fare> at least, it can be reasonably considered (barring funky filesystem
    Fare> semantics) that

An alternative, at least on unix, is to make (make-pathname :directory
'(:relative)) print as #p".".  Currently #p"." is read as a pathname
with name ".", but if we change that to return a directory, then we're
ok.  But of course, we would then lose for (make-pathname :name "."),
but there isn't really a unix file with name "."; it's a directory.

I hate this stuff.

Ray


Reply via email to