A slight improvement of the analysis code reveals that many of the forms that make an ASDF system impure are actually redundant, as is the case of defpackage forms or perform-after (typically for pushing features), which may be moved into separate lisp files or integrated into existing sources.

;;;
;;; Concept                # of systems  # of forms
;;; ---------------------- ------------  ----------
;;; Total packages:              515
;;; Ok packages:                 173
;;; Impure ASDF files:           342
;;;   Multiple defsystems:       200         400
;;;   Defpackage forms:          266         270
;;;     system package:          246         246
;;;     test package:              7           7
;;;     others:                   17          17
;;;   Defmethod forms:           151         325
;;;     perform after:            28          28
;;;     test operation:           92         123
;;;   Defclass forms:             98         174
;;;   Unknown forms:              37          58
;;;   Eval-when forms:            41          67
;;;


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