Replace IOLIB-SOURCE-FILE class with :AROUND-COMPILE wrapper
authorStelian Ionescu <sionescu@cddr.org>
Mon, 21 Jan 2013 20:05:25 +0000 (21 21:05 +0100)
committerStelian Ionescu <sionescu@cddr.org>
Mon, 21 Jan 2013 20:14:13 +0000 (21 21:14 +0100)
13 files changed:
src/base/asdf.lisp
src/iolib-grovel.asd
src/iolib.asd
src/iolib.base.asd
src/iolib.conf.asd
src/iolib.multiplex.asd
src/iolib.os.asd
src/iolib.pathnames.asd
src/iolib.sockets.asd
src/iolib.streams.asd
src/iolib.syscalls.asd
src/iolib.trivial-sockets.asd
tests/iolib-tests.asd

dissimilarity index 89%
index 59d14e9..f64f7c2 100644 (file)
@@ -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)))
index 595eb18..6d76daf 100644 (file)
@@ -30,7 +30,7 @@
   :author "Dan Knapp <dankna@accela.net>"
   :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
index d0d1327..1bac532 100644 (file)
@@ -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")))
 
index 012f292..74232e1 100644 (file)
@@ -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")
index c7cdc97..3e65829 100644 (file)
@@ -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")
index 8aaae59..89f6561 100644 (file)
@@ -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")
index 7d4961f..2457a7d 100644 (file)
@@ -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")
index e67ea4a..f3bc819 100644 (file)
@@ -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")
index 2dc0a94..c482651 100644 (file)
@@ -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")
index 3d0d31c..ff4e82b 100644 (file)
@@ -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")
index ec4b094..b10b64b 100644 (file)
@@ -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")
index 365b12e..a28a949 100644 (file)
@@ -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")))
index 39686f8..aaa33de 100644 (file)
@@ -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"))