From: Stelian Ionescu Date: Mon, 21 Jan 2013 20:05:25 +0000 (+0100) Subject: Replace IOLIB-SOURCE-FILE class with :AROUND-COMPILE wrapper X-Git-Tag: v0.8.0~16 X-Git-Url: https://repo.or.cz/w/iolib.git/commitdiff_plain/481a97a32a689deb0cc3f8704f1f466199449092 Replace IOLIB-SOURCE-FILE class with :AROUND-COMPILE wrapper --- diff --git a/src/base/asdf.lisp b/src/base/asdf.lisp dissimilarity index 89% index 59d14e9..f64f7c2 100644 --- a/src/base/asdf.lisp +++ b/src/base/asdf.lisp @@ -1,54 +1,22 @@ -;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*- -;;; -;;; --- ASDF component classes -;;; - -(defpackage :iolib.asdf - (:use :common-lisp) - #+sb-package-locks - (:lock t)) -(in-package :iolib.asdf) - -(defclass :iolib-muffled-source-file (asdf:cl-source-file) ()) - -(macrolet ((with-muffled-output (&body body) - `(handler-bind - (#+sbcl (sb-int:package-at-variance #'muffle-warning)) - ,@body))) - (defmethod asdf:perform :around ((o asdf:compile-op) - (c :iolib-muffled-source-file)) - (with-muffled-output - (with-standard-io-syntax - (let (;; Compilation fails because of CFFI types that - ;; can't be printed readably, so bind to NIL - (*print-readably* nil) - (*readtable* (copy-readtable))) - (call-next-method))))) - - (defmethod asdf:perform :around ((o asdf:load-op) - (c :iolib-muffled-source-file)) - (with-muffled-output - (with-standard-io-syntax - (let (;; See above - (*print-readably* nil) - (*readtable* (copy-readtable))) - (call-next-method))))) - - (defmethod asdf:perform :around ((o asdf:load-source-op) - (c :iolib-muffled-source-file)) - (with-muffled-output - (with-standard-io-syntax - (let (;;See above - (*print-readably* nil) - (*readtable* (copy-readtable))) - (call-next-method)))))) - -#+scl -(eval-when (:compile-toplevel :load-toplevel :execute) - ;; SCL 1.3.9.1 doesn't allow superclasses to be keywords - ;; Fix suggested by DTC - (defun clos::legal-class-name-p (x) (and x (symbolp x)))) - -(defclass :iolib-source-file (:iolib-muffled-source-file) - () - (:default-initargs :encoding :utf-8)) +;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*- +;;; +;;; --- ASDF component classes +;;; + +(defpackage :iolib.asdf + (:use :common-lisp) + (:export #:compile-wrapper) + #+sb-package-locks + (:lock t)) +(in-package :iolib.asdf) + +(defun compile-wrapper (continuation) + (let (;; Compilation fails because of CFFI types that + ;; can't be printed readably, so bind to NIL + (*print-readably* nil) + (*readtable* (copy-readtable)) + (asdf/lisp-build:*uninteresting-compiler-conditions* + '(#+sbcl sb-int:package-at-variance)) + (asdf/lisp-build:*uninteresting-loader-conditions* + '(#+sbcl sb-int:package-at-variance))) + (funcall continuation))) diff --git a/src/iolib-grovel.asd b/src/iolib-grovel.asd index 595eb18..6d76daf 100644 --- a/src/iolib-grovel.asd +++ b/src/iolib-grovel.asd @@ -30,7 +30,7 @@ :author "Dan Knapp " :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:alexandria :cffi :iolib.asdf :iolib.conf) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :licence "MIT" :pathname "grovel/" :components diff --git a/src/iolib.asd b/src/iolib.asd index d0d1327..1bac532 100644 --- a/src/iolib.asd +++ b/src/iolib.asd @@ -8,7 +8,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:iolib.base :iolib.multiplex :iolib.streams :iolib.sockets) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "iolib/" :components ((:file "pkgdcl"))) diff --git a/src/iolib.base.asd b/src/iolib.base.asd index 012f292..74232e1 100644 --- a/src/iolib.base.asd +++ b/src/iolib.base.asd @@ -7,7 +7,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:alexandria) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "new-cl/" :components ((:file "conduits") @@ -35,7 +35,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:iolib.common-lisp :alexandria :split-sequence) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "base/" :components ((:file "pkgdcl") diff --git a/src/iolib.conf.asd b/src/iolib.conf.asd index c7cdc97..3e65829 100644 --- a/src/iolib.conf.asd +++ b/src/iolib.conf.asd @@ -6,7 +6,7 @@ :version (:read-file-form "../version.lisp-expr") :licence "MIT" :defsystem-depends-on (:iolib.asdf) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "conf/" :components ((:file "pkgdcl") diff --git a/src/iolib.multiplex.asd b/src/iolib.multiplex.asd index 8aaae59..89f6561 100644 --- a/src/iolib.multiplex.asd +++ b/src/iolib.multiplex.asd @@ -8,7 +8,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:iolib.base :iolib.syscalls :cffi) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "multiplex/" :components ((:file "pkgdcl") diff --git a/src/iolib.os.asd b/src/iolib.os.asd index 7d4961f..2457a7d 100644 --- a/src/iolib.os.asd +++ b/src/iolib.os.asd @@ -8,7 +8,7 @@ :defsystem-depends-on (:iolib.asdf :iolib.conf :iolib-grovel) :depends-on (:iolib.base :iolib-grovel :iolib.syscalls :iolib.streams :iolib.pathnames) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "os/" :components ((:file "pkgdcl") diff --git a/src/iolib.pathnames.asd b/src/iolib.pathnames.asd index e67ea4a..f3bc819 100644 --- a/src/iolib.pathnames.asd +++ b/src/iolib.pathnames.asd @@ -7,7 +7,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:iolib.base :iolib.syscalls) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "pathnames/" :components ((:file "pkgdcl") diff --git a/src/iolib.sockets.asd b/src/iolib.sockets.asd index 2dc0a94..c482651 100644 --- a/src/iolib.sockets.asd +++ b/src/iolib.sockets.asd @@ -10,7 +10,7 @@ :depends-on (:iolib.base :iolib.syscalls :iolib.streams :babel :cffi :iolib-grovel :bordeaux-threads :idna) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "sockets/" :components ((:file "pkgdcl") diff --git a/src/iolib.streams.asd b/src/iolib.streams.asd index 3d0d31c..ff4e82b 100644 --- a/src/iolib.streams.asd +++ b/src/iolib.streams.asd @@ -7,7 +7,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:iolib.base :iolib.multiplex :cffi) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "streams/gray/" :components ((:file "pkgdcl") diff --git a/src/iolib.syscalls.asd b/src/iolib.syscalls.asd index ec4b094..b10b64b 100644 --- a/src/iolib.syscalls.asd +++ b/src/iolib.syscalls.asd @@ -7,7 +7,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf :iolib-grovel) :depends-on (:trivial-features :cffi :iolib.base :iolib-grovel) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "syscalls/" :components ((:file "pkgdcl") diff --git a/src/iolib.trivial-sockets.asd b/src/iolib.trivial-sockets.asd index 365b12e..a28a949 100644 --- a/src/iolib.trivial-sockets.asd +++ b/src/iolib.trivial-sockets.asd @@ -8,7 +8,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.asdf :iolib.conf) :depends-on (:iolib.base :iolib.sockets) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :pathname "sockets/" :components ((:file "trivial-sockets"))) diff --git a/tests/iolib-tests.asd b/tests/iolib-tests.asd index 39686f8..aaa33de 100644 --- a/tests/iolib-tests.asd +++ b/tests/iolib-tests.asd @@ -7,7 +7,7 @@ :licence "MIT" :defsystem-depends-on (:iolib.base) :depends-on (:fiveam :iolib :iolib.pathnames) - :default-component-class :iolib-source-file + :around-compile "iolib.asdf:compile-wrapper" :components ((:file "pkgdcl") (:file "defsuites" :depends-on ("pkgdcl"))