On 10/15/10 Oct 15 -9:45 AM, Nikodemus Siivola wrote:
On 15 October 2010 17:27, Faré <fahree@gmail.com> wrote:
Well, if you want to use this feature, you win the right to: 1- remove the cerror from asdf.lisp 2- test that it actually does what you expect 3- document it (or have someone else document it) 4- commit it (or have me commit it) as asdf 2.137 (or whatever is the number)
Ok, I'll put this on my TODO: I think :DEPENDS-ON ((:FEATURES ...)) would be a nice way to indicate that something is eg. only meant for SBCL on Linux, or whatever.
I'm going a little by memory, but IIRC the officially approved way of doing this in ASDF is very cumbersome. You indicate a features-based dependency and then you have to set up an error-handler (well, effectively an error handler), using :if-component-dep-fails to say "and if this dependency fails, ignore it." This is difficult to write and yields system dependencies that, IMO, are unnecessarily difficult to understand. Personally, I always use the officially deprecated and non-declarative #+ approach which yields system definitions that are readable by any CL programmer. I note, btw, that if-component-dep-fails is not documented in the defsystem grammar, nor is it used in an example, further enhancing the obscurity of this construct ;-) Best, r