pathname option to DEFSYSTEM doesn't seem to establish a relative pathname
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
Fix Released
|
Medium
|
Faré |
Bug Description
I would expect the following system definition to look for its components in the tests/ subdirectory of the .asd file's directory:
(defsystem test-plan-mods
:depends-on (plan-mods nst)
:pathname "tests/"
:components ((:file "package")
However, when I try to load this system, ASDF looks for tests in the parent directory. This happens even though the ASDF system object "knows" about the pathname argument:
CL-USER> (describe (asdf:find-system :test-plan-mods)
#<ASDF:SYSTEM "test-plan-mods"> is an instance of
#<STANDARD-
The following slots have :INSTANCE allocation:
NAME "test-plan-mods"
VERSION <unbound>
LOAD-DEPENDENCIES (OBTW.PLAN-
IN-ORDER-TO ((ASDF:LOAD-OP
DO-FIRST ((ASDF:COMPILE-OP
INLINE-METHODS NIL
PARENT NIL
RELATIVE-PATHNAME #P"/Users/
ABSOLUTE-PATHNAME #P"/Users/
OPERATION-TIMES #<EQL hash-table with 0 entries @
PROPERTIES NIL
COMPONENTS (#<ASDF:
COMPONENTS-
IF-COMPONENT-
DEFAULT-
DESCRIPTION <unbound>
LONG-DESCRIPTION <unbound>
AUTHOR <unbound>
MAINTAINER <unbound>
LICENCE <unbound>
SOURCE-FILE #P"/Users/
DEFSYSTEM-
; No value
But the pathname doesn't get passed down to the subdirectory, probably because the value in the absolute pathname slot (unlike the relative-pathname slot) is not terminated with a "/"
CL-USER> (asdf:component
#P"/Users/
This has only been tested on ACL 8.2, with ASDF "2.010.5"
Will see if it proves out on other versions.
Can't reproduce on 2.012.6 on sbcl-1. 0.44.29- linux-amd64
Does what I committed as 2.012.7 help?