Re: ASDF: alternative system configurations

Christophe Rhodes <[email protected]>
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
james anderson <[email protected]> writes:

> not the original question, but take a situation where i have four system
> components a,b,c,d and for the purposes of compiling the system the depandancy is
>
>        a
>       / \
>       b c
>       \ /
>        d
>
> which means that the builder needs to specify either a and b, or a and c to
> build. on the other hand, when it comes to documenting or releasing, one would
> like to specify a and b and c and not have to worry about what
> conditionalization has done to the effective expression of the system structure.

Again, a late response; I've only just begun pushing the boundaries of
"normal" asdf use; (untested):

(defsystem foo
  :components 
  ((:file "a")
   (:module "bar"
      :depends-on "a"
      :components
      ((:file "b" :in-order-to (compile-op (feature :use-b)))
       (:file "c" :in-order-to (compile-op (feature :use-c))))
      :if-component-dep-fails :try-next)
   (:file "d" :depends-on "bar")))

And I think you can probably play the same trick as in my mail to
Nikodemus with subclassing asdf:cl-source-file and an :around method
to avoid the (ab)use of *FEATURES*.

Cheers,

Christophe

[ PS: James, your mail system appears not to talk to mine; I don't
  know why.  On the assumption that it talks to sourceforge, just to
  let you know that I've had reasonable success in compiling cl-xml
  under released versions of sbcl; not having any application for it,
  though, I'm at a bit of a loss as to how to test it. ]
-- 
http://www-jcsu.jesus.cam.ac.uk/~csr21/       +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%")    (pprint #36rJesusCollegeCambridge)


-------------------------------------------------------
This SF.net email is sponsored by:  Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.