On Thu, Sep 4, 2014 at 9:49 AM, Ralf Mattes rm@mh-freiburg.de wrote:
Hello list,
I just stumbled overthe following strangeness [1]:
I've some code in directory foo that contains two asdf files, foo.asd and foo-test.asd, the later contains the following definition:
(defsystem "foo-test" :version "0.1" :pathname "t" :serial t ..... )
Now, if I evaluate
(asdf:system-relative-pathname :foo-test "baz" :type "rsc")
I get a pathname relative to the _asdf-file_, while evaluating:
(merge-pathnames "baz.rsc" (slot-value (asdf:find-system :foo-test) 'asdf::absolute-pathname))
yields the correct/expected pathname (i.e. one that honors the pathname spec. of the asdf system).
Is this really intended behavior or just an oversight?
Cheers, Ralf Mattes
Footnotes: [1] in the sense of not following the principle o fleast astonishment
To put it in more "canonical" terms, the issue is that
(asdf:system-source-directory (asdf:find-system "foo-test")) ;=> #p"/home/ralf/src/foo/" (asdf:component-pathname (asdf:find-system "foo-test")) ;=> #p"/home/ralf/src/foo/t/"
Is it the right thing? Should system-relative-pathname use the latter rather than the former? I can't say. I don't want to think about these things anymore. The difference, if it persists, should be documented.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org You don't have to like everything about me, but if you don't love me the way I am, it's not me you love, only some fantasy of yours.