On 3/29/10 Mar 29 -4:00 PM, Juan Jose Garcia-Ripoll wrote:
One of the common problems that ASDF users faced when introducing the new binary location system is finding out where things reside.
Another problem we will eventually find is locating the resources associated to an ASDF system which has been replaced by a precompiled version.
In general it would be desirable for a system to be able to locate its resources (additional files, icons, bitmaps, etc) using logical pathnames.
For that purpose I have coded a small patch that adds a new keyword, :logical-host, to DEFSYSTEM. The keyword defines a logical pathname translation from "**;*.*.*" to "path/to/asdf/or/pathname/argument/**/*.*"
This way we may have
(defsystem :cl-unicode :logical-host "cl-unicode" ...)
and in the sources load the databases such as "cl-unicode:uppercase-table.dat"
FWIW, Faré provided a couple of new API functions to give ASDF users this function, notably
SYSTEM-RELATIVE-PATHNAME
and
SYSTEM-SOURCE-DIRECTORY
For what it's worth, I try to avoid logical-pathnames in portable code, having been hoist too many times on the petard of ACL/SBCL incompatibility in handling logical pathnames (SBCL sticks to the spec, in the name of portability and standardization; ACL accepts sensible, spec-defying logical pathnames in the name of utility).
Best, r