[asdf-devel] Recognizing directories in a component name

Faré fahree at gmail.com
Fri Aug 28 13:44:23 UTC 2009


For years now, we at ITA have been satisfied with a patch that does
the following while building QRes: allow to specify module names that
include a directory component, without having to redundantly as in

 (:module "subdir1/subdir2"
  :components ((:file "subdir3/name3") (:file "subdir4/name4.subname4")))

instead of the cumbersome (to be portable):

 (:module "subdir1/subdir2" :pathname #.(make-pathname :directory
'(:relative "subdir" "subdir2"))
  :components ((:file "subdir3/name3" :pathname #.(make-pathname
:directory '(:relative "subdir3" :name "name3")))
  (:file "subdir4/name4.subname4" :pathname #.(make-pathname
:directory '(:relative "subdir4" :name "name4.subname4"))))))

Since there is active ASDF development again, I cleaned it up and here it is.

The methods should replace those currently in ASDF. The helper
function now uses the existing ASDF split function (as previously
requested by Xof).

The patch is both backwards compatible and portable, in that
* the "/" character was previously forbidden in names of portable
components without a :pathname statement, least it breaks miserably on
most platforms.
* the "/" character is now recognized by ASDF itself as a separator
for directories later made with make-pathname, thus doing what is
expected even on the odd platform without "/" as the pathname
separator.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Selfishness is the measure of all good (and bad) in the world. There cannot be
any good whatsoever without a self to feel it. WHO is whatever "altruistic"
oppression ever good for? No one. Why is gratuitous vandalism or
well-intentioned mass murder bad? Not because it is selfish, but precisely
because it hurts other people's selfish interest.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: asdf-paths.lisp
Type: application/octet-stream
Size: 2238 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20090828/4f496e95/attachment.obj>


More information about the asdf-devel mailing list