[Openmcl-devel] user-homedir-pathname not a constant?

Pascal J. Bourguignon pjb at informatimago.com
Sun Oct 10 05:56:49 PDT 2010


Daniel Herring <dherring at tentpost.com> writes:

> FYI, there's a thread by the same name on comp.lang.lisp.
>
> On 10/08/2010 11:58 AM, Pascal J. Bourguignon wrote:
>> Andrew Philpot<philpot at isi.edu>  writes:
>>
>>> dixiechicks.isi.edu 50%  ccl -n
>>> Welcome to Clozure Common Lisp Version 1.4-r14334M  (LinuxX8632)!
>>> ? (user-homedir-pathname)
>>> #P"/nfs/isd3/philpot/"
>>>
>>> so far so good, but...
>>>
>>> ? (let ((*default-pathname-defaults*
>>>            (make-pathname :directory '(:absolute "tmp")
>>> 	  		 :name "dummy"
>>> 			 :type "txt"
>>> 			 :version :newest)))
>>>     (user-homedir-pathname))
>>> #P"/"
>>> ? (let ((*default-pathname-defaults* #p"/tmp/a.b"))
>>> 	  (user-homedir-pathname))
>>> #P"/nfs/isd3/philpot/a.b"
>>>
>>> Looks like some merging is going on, but why?
>>>
>>> As I read the CLHS, user-homedir-pathname is supposed to return either
>>> a pathname sans name, path, and version components -- or NIL.
>>>
>>> Is this behavior conformant?
>>
>> Moreover, on unix, while you're not editing /etc/passwd (or equivalent),
>> I'd expect (user-homedir-pathname) to return constantly the same
>> value...
>>
>> Clozure's behavior is clearly wrong, several times.

It is also arguable that home be defined by $HOME.  
Changing /etc/passwd should probably not break running processes.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/




More information about the Openmcl-devel mailing list