Robert Goldman rpgoldman@sift.info writes:
On 10/15/10 Oct 15 -12:15 PM, Nikodemus Siivola wrote:
On 15 October 2010 20:03, Robert Goldman rpgoldman@sift.info wrote:
Right. But, honestly, I find
(:module "ports" :components ( #+sbcl (:file "sbcl") #+ccl (:file "ccl")) ...)
a lot easier to read...
Sure -- but it makes system-introspection limited to the implementation you are currently using.
I get it, but the value of such introspection seems, at the moment, primarily conjectural, but the bewilderment of :if-component-dep-fails is certain.
Not really.
For example, documentation generators use ASD files to as documentation root. It would be better if they could gather and document the various implementation specific parts without playing game with the lisp reader.
So a nice syntax/semantics like that proposed by Daniel would be beneficial, and could perhaps slighly promote the development of an ecology of static analysis tools.
Actually, I also see that the manual says that :if-component-dep-fails may be broken (see the object model section).
...of course, if ASDF had comething like
(:module "ports" :components (:file "sbcl" :when (feature :sbcl)) (:file "ccl" :when (feature :ccl)))
then we'd be pretty close to best of both worlds
Agreed. This is clearly The Right Thing. Pretty much anyone looking at this will know what it is intended to mean whereas, IMO, the :if-component-dep-fails looks like an error-handler....
I think this is related to the fact that the feature "dependency" here is really not, intuitively, acting like a dependency (which is expected always to succeed).
Call it CCI for "Conditionnal Component Inclusion". I like better Daniel's syntax too.