A new implementation was just uploaded which implements the :logical-pathname argument for defsystem. It constructs four definitions, one using Faré's favourite no-namespace-clobbering scheme and three other ones that gives a bit more freedom to the developer, separating sources from "automatically" generated files.<div>

<br></div><div>The code does minimal collision checks. It will basically complain when there exists a translation that matches the one we are proposing but was not created by ASDF. If the user selects the CONTINUE restart, those translations will be deleted.<br>

<div><br></div><div><div>(defsystem :foo</div><div>    :logical-pathname "FOO:BASE"</div><div>    :components ((:file "faa")))</div></div><div><br></div><div><div>(let ((x "COMMON-LISP:SYSTEMS;FOO;FAA.LISP"))</div>

<div>  (format t "~&;;; Pathname ~S~%;;; translates into ~S"</div><div>          x (translate-logical-pathname x)))</div><div>(let ((x "FOO:BASE;SOURCE;FAA.LISP")) ;; BASE;DATA;FAA.LISP is a synonym</div>

<div>  (format t "~&;;; Pathname ~S~%;;; translates into ~S"</div><div>          x (translate-logical-pathname x)))</div><div>(let ((x "FOO:BASE;OUTPUT-FILES;FAA.LISP"))</div><div>  (format t "~&;;; Pathname ~S~%;;; translates into ~S"</div>

<div>          x (translate-logical-pathname x)))</div><div>(terpri)</div></div><div><br></div><div><div>;;; Pathname "COMMON-LISP:SYSTEMS;FOO;FAA.LISP"</div><div>;;; translates into #P"/Users/jjgarcia/devel/asdf/faa.lisp"</div>

<div>;;; Pathname "FOO:BASE;SOURCE;FAA.LISP"</div><div>;;; translates into #P"/Users/jjgarcia/devel/asdf/faa.lisp"</div><div>;;; Pathname "FOO:BASE;OUTPUT-FILES;FAA.LISP"</div><div>;;; translates into #P"/Users/jjgarcia/devel/asdf/faa.lisp"</div>

<div><br></div><div>The attitude here is probably that this is useless and should be totally hidden in a contribution directory</div><div><br></div><div>Placing it in a "contrib" section means accepting it because of "politeness" or insistence of the submitter, but effectively making this useless, because then no library will be able to depend on it, for the :logical-pathname keyword will only be available when the user loads the appropriate extension.</div>

<div><br></div><div>Juanjo</div><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://tream.dreamhosters.com">http://tream.dreamhosters.com</a><br>
</div></div>