make-pathname vs merge-pathnames
Harald Hanche-Olsen <[email protected]> Mon, 23 Jun 2003 17:49:26 +0200
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
Today I sent this to the cmucl-help mailing list: | The following passage in the HyperSpec (on make-pathname) ... | | 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. | | ... led me to believe that these two expressions should be equivalent, | yet in CMUCL they are not: | | (merge-pathnames #P"foo/new" #P"/fee/fie/foe/name.type") | ==> #p"/fee/fie/foe/foo/new.type" | | (make-pathname :defaults #P"/fee/fie/foe/name.type" | :directory '(:relative "foo") | :name "new") | ==> #p"foo/new.type" | | Maybe I focussed too hard on the phrase "merging rules used by | merge-pathnames" where I should have noticed the phrase "unsupplied | components" instead? Anyway, OpenMCL agrees with my interpretation, | producing the first result for both forms. So who is in error, CMUCL | or OpenMCL (and I)? The answer I got back indicated that, indeed, OpenMCL is wrong (and so was I): + Daniel Barlow <[email protected]>: | This is kind of an FAQ, if "once every six months" counts as | "frequent". KMP has replied to it a couple of times on c.l.l - | | http://groups.google.com/groups?q=pitman+merge-pathnames&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=sfwafd6p62k.fsf%40world.std.com&rnum=4 | | http://groups.google.com/groups?q=pitman+merge-pathnames&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=sfw8zjvun7d.fsf%40world.std.com&rnum=10 | | I know that Kent is not normative, but for what it's worth, in both | articles he agrees with the CMUCL interpretation. I looked at the referenced articles, and tend to agree with Kent here after thinking about it some more. So I think that either the bug should be fixed in OpenMCL, or the maintainers should come out on comp.lang.lisp and tell Kent that he's wrong. 8-) (Please Cc me on any followups. I am not on the list.) - Harald