#149: Cannot load ASDF systems from *.asd definition in base of JAR hierarchy -------------------------------+-------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: new Priority: minor | Milestone: 0.26 Component: other | Version: 1.0 Keywords: asdf url-pathname | -------------------------------+-------------------------------------------- For an ASDF definition packaged in a JAR file in the topmost directory, viz {{{ mama:~/work/abcl/bugs$ jar tfv trivial.jar 76 Thu May 12 13:58:30 CEST 2011 trivial.asd 52 Thu May 12 13:58:52 CEST 2011 trivial.lisp }}}
The ASDF definition cannot be properly loaded after placing "jar:file:~/work/abcl/bugs/trivial.jar!/" in the ASDF:*CENTRAL-REGISTRY*. One can see that something has gone wrong in the ASDF/MERGE-PATHNAMES with URL-PATHNAMES as after the unsucessful load the following shows that ASDF has thrown away the JAR-PATHNAME reference
{{{ CL-USER> (asdf:component-pathname (asdf:find-system :trivial)) #P"/Users/evenson/work/abcl/" }}}
The workaround is simple: always package ASDF definition in at least one top-level directory, viz:
{{{ mama:~/work/abcl/bugs$ jar tfv trivial.jar 0 Thu May 12 14:18:18 CEST 2011 META-INF/ 60 Thu May 12 14:18:18 CEST 2011 META-INF/MANIFEST.MF 0 Thu May 12 13:58:52 CEST 2011 trivial/ 76 Thu May 12 13:58:30 CEST 2011 trivial/trivial.asd 52 Thu May 12 13:58:52 CEST 2011 trivial/trivial.lisp }}}
When I get a change, I'll go through the URL-PATHNAME code with ASDF to understand where this is breaking.