From e8b3dca6b7dc88a992dce8df387880c0fdda9b4f Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau Date: Thu, 31 May 2012 14:35:38 -0400 Subject: [PATCH] Add and use asdf-condition-control. --- asdf-condition-control.asd | 11 +++++++++++ asdf-condition-control.lisp | 18 ++++++++++++++++++ driver.lisp | 1 + xcvb.asd | 4 ++-- 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 asdf-condition-control.asd create mode 100644 asdf-condition-control.lisp diff --git a/asdf-condition-control.asd b/asdf-condition-control.asd new file mode 100644 index 0000000..ebf5011 --- /dev/null +++ b/asdf-condition-control.asd @@ -0,0 +1,11 @@ +;;; -*- mode: lisp -*- +(in-package :asdf) + +(defsystem :asdf-condition-control + :author ("Francois-Rene Rideau") + :maintainer "Francois-Rene Rideau" + :licence "MIT" + :description "Condition control for ASDF" + :long-description "Using XCVB's condition control for ASDF" + :depends-on ((:version :asdf "2.019") :xcvb-driver) + :components ((:file "asdf-condition-control"))) diff --git a/asdf-condition-control.lisp b/asdf-condition-control.lisp new file mode 100644 index 0000000..cb866c0 --- /dev/null +++ b/asdf-condition-control.lisp @@ -0,0 +1,18 @@ +#+xcvb (module (:build-depends-on ("/asdf" "/xcvb/driver"))) + +(in-package :asdf) + +(defmethod perform :around ((o compile-op) (c cl-source-file)) + (declare (ignorable o c)) + (xcvb-driver:with-controlled-compiler-conditions () + (call-next-method))) + +(defmethod perform :around ((o load-op) (c cl-source-file)) + (declare (ignorable o c)) + (xcvb-driver:with-controlled-loader-conditions () + (call-next-method))) + +(defmethod perform :around ((o load-source-op) (c cl-source-file)) + (declare (ignorable o c)) + (xcvb-driver:with-controlled-loader-conditions () + (call-next-method))) diff --git a/driver.lisp b/driver.lisp index 92e0548..597b0f0 100644 --- a/driver.lisp +++ b/driver.lisp @@ -221,6 +221,7 @@ but before the entry point is called.") (defvar *uninteresting-load-conditions* (append + '("Overwriting already existing readtable ~S.") ;; from named-readtables #+clisp '(clos::simple-gf-replacing-method-warning)) "Additional conditions that may be skipped while loading. type symbols, predicates or strings") diff --git a/xcvb.asd b/xcvb.asd index 97ce6dd..225c828 100644 --- a/xcvb.asd +++ b/xcvb.asd @@ -15,7 +15,7 @@ (let ((old-ver (asdf-version))) (load-system :asdf) - (let ((min "2.20.18") + (let ((min "2.21") (ver (asdf-version))) (unless (or (version-satisfies old-ver "2.014.8") ; first version to do magic upgrade (equal ver old-ver)) @@ -46,7 +46,7 @@ :long-description "an eXtensible Component Verifier and Builder for Lisp. XCVB provides a scalable system to build large software in Lisp, featuring deterministic separate compilation and enforced locally-declared dependencies." - :defsystem-depends-on (:asdf :xcvb-driver :xcvb-bootstrap) + :defsystem-depends-on (:asdf :xcvb-driver :xcvb-bootstrap :asdf-condition-control) :depends-on (:asdf :xcvb-driver :lambda-reader :fare-utils :fare-mop :fare-memoization :command-line-arguments