[asdf-devel] test-logical-pathnames hangs on ACL 8.2 on Mac OS X
I get to Test logical pathnames in source-registry, recursive and ACL goes away seemingly forever. The reason, I believe, is that this: #+allegro #.(asdf::pathname-root #p"ASDF:") returns "/" for me. When I look, I see that pathname-root is losing the host name somehow: CL-USER> (pathname-host #P"HOME:") "HOME" CL-USER> (pathname-host (pathname-root #P"HOME:")) NIL As far as I can tell messing around in the REPL, it's the specification of both :defaults #P"HOME" *and* :host NIL when MAKE-PATHNAME* calls MAKE-PATHNAME that does the damage: on ACL the :host NIL seems to smash the value for :host that would come from the defaults: CL-USER> (make-pathname :defaults #P"HOME:" :name "foo" :type "lisp" :host nil) #P"foo.lisp" CL-USER> (make-pathname :defaults #P"HOME:" :name "foo" :type "lisp") #P"HOME:foo.lisp" The ANSI spec for make-pathname says "After the components supplied explicitly by host, device, directory, name, type, and version are filled in, the merging rules used by merge-pathnames are used to fill in any unsupplied components from the defaults supplied by defaults." So I think it's an acceptable interpretation that the :host field should be cleared in the return value of MAKE-PATHNAME. Would it be possible to modify make-pathname* so that instead of passing defaults through to make-pathname as it does now, it would *unpack* the defaults argument into fields of the return value? I will try some experiments. cheers, r
I have a proposed patch for this, and am now running the tests. I will submit a patch if it works on all the lisps. cheers, r
participants (1)
-
Robert Goldman