(:documentation"A method to be called around the PERFORM'ing of actions that apply thecompile-time side-effects of file (i.e., COMPILE-OP or LOAD-SOURCE-OP). This method can be usedto setup readtables and other variables that control reading, macroexpanding, and compiling, etc.Note that it will NOT be called around the performing of LOAD-OP."))

warnings-file&restrest)outputs;; Allow for extra outputs that are not of type warnings-file;; The way we do it is kludgy. In ASDF4, output-files shall not be positional.(declare(ignorerest))(whenwarnings-file(unless(equal(pathname-typewarnings-file)(warnings-file-type))(setfwarnings-filenil)))

(when(and*warnings-file-type*(not(builtin-system-pc)));; The most correct way to do it would be to use:;; (traverse-sub-actions o c :other-systems nil :keep-operation 'compile-op :keep-component 'cl-source-file);; but it's expensive and we don't care too much about file order or ASDF extensions.(loop:forsub:in(sub-componentsc:type'cl-source-file):nconc(remove-if-not'warnings-file-p(output-filesosub)))))

(with-upgradability()(defmethodaction-description((oprepare-source-op)(ccomponent))(formatnil(compatfmt"~@<loading source for dependencies of ~3i~_~A~@:>")c))(defmethodinput-files((oprepare-source-op)(ssystem))(if-let(it(system-source-files))(listit)))(defmethodperform((oprepare-source-op)(ccomponent))nil))