The code in question is (multiple-value-bind (output warnings-p failure-p) (apply #'compile-file source-file :output-file output-file (compile-op-flags operation)) (when warnings-p (case (operation-on-warnings operation) (:warn (warn "~@<COMPILE-FILE warned while performing ~A on ~A.~:>" operation c)) (:error (error 'compile-warned :component c :operation operation)) (:ignore nil))) (when failure-p (case (operation-on-failure operation) (:warn (warn "~@<COMPILE-FILE failed while performing ~A on ~A.~:>" operation c)) (:error (error 'compile-failed :component c :operation operation)) (:ignore nil))) (unless output (error 'compile-error :component c :operation operation))) I don't like that behaviour at all for the following reasons: a) WARNINGS-P is T even if only a style-warning is signaled. OPERATION-ON-WARNINGS is :WARN by default, so a style-warning results in a gratuitous "COMPILE-FILE warned" message. b) If COMPILE-FILE warned, FAILURE-P is T. This means if a warning during compilation is signaled, ASDF will display a "COMPILE-FILE failed" message -- which is technically correct, but only for some obtusive meaning of "failed". I'd rather have something like Slime's compilation statistics: The operation #<COMPILE-OP ...> on #<CL-SOURCE-FILE ...> resulted in N1 style-warnings, N2 warnings, N3 non-fatal errors and 1 fatal error. # iff OUTPUT == NIL The operation failed at creating a fasl file. Aborting.. <..entering debuger..> Or The operation #<COMPILE-OP ...> on #<CL-SOURCE-FILE ...> resulted in N1 style-warnings, N2 warnings, N3 non-fatal errors The operation succeeded at creating a fasl file. Suggestions? -T.