[asdf-devel] test-logical-pathnames hangs on ACL 8.2 on Mac OS X
Robert Goldman
rpgoldman at sift.info
Sun Jan 6 22:53:22 UTC 2013
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
More information about the asdf-devel
mailing list