Plaster

commonlisp
(defclass sicl-file (asdf/lisp-action:cl-source-file) ()) (defmethod perform ((o asdf/lisp-action:load-source-op) (c sicl-file)) (sicl:load (first (input-files o c)))) (defmethod perform ((o asdf/lisp-action:load-op) (c sicl-file)) (sicl:load (first (input-files o c)))) (defmethod perform ((o asdf/lisp-action:compile-op) (c sicl-file)) (sicl:compile-file (first (input-files o c)) :output-file (first (output-files o c)))) (import 'sicl-file '#:asdf/interface) ;;;; Usage per-file: ;; (asdf:defsystem foo ;; :components ((:sicl-file "bar"))) ;;;; Usage per-system: ;; (asdf:defsystem foo ;; :components ((:file "bar")) ;; :default-component-class 'sicl-file) ;;;; Or globally: ;; (setf asdf/parse-defsystem:*default-component-class* 'sicl-file)