I know there are bug reports in launchpad, and that this has been expelled from 2.0 as of not urgent fix, but seems the latest changes have broken it beyond fix.

I was playing with the following system (yes, I know the syntax is wrong), to make :feature at some point more useful but a simple experiment reveals that the structure dependency is being pushed into the list returned by COMPONENT-DEPENDS-ON and that this list causes an error in COMPONENT-SELF-DEPENDENCIES.

(defsystem :foo
  :components
  ((:file "foo1" :depends-on ((:feature :foo-method1)))
   (:file "foo2" :depends-on ((:feature (not :foo-method1))))))

* (asdf:load-system :foo)
[...]
; file: /Users/jjgarcia/devel/asdf-decl/examples/feature/../../asdf.lisp
(CERROR "Continue nonetheless."
        "Congratulations, you're the first ever user of FEATURE dependencies! Please contact the asdf-devel mailing-list.")
0] (continue)

debugger invoked on a TYPE-ERROR:
  The value (:FEATURE :FOO-METHOD1)
  is not of type
    (OR (VECTOR CHARACTER) (VECTOR NIL) BASE-STRING SYMBOL CHARACTER).

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(STRING= "foo1" (:FEATURE :FOO-METHOD1))[:EXTERNAL]
0]

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com