Fix compilation when *PRINT-CASE* is :DOWNCASE
[iolib.git] / src / base / asdf.lisp
blob03676cdbf3d5bbd61fd6126ae47d909c6a14f865
1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
2 ;;;
3 ;;; --- ASDF component classes
4 ;;;
6 (defpackage :iolib.asdf
7 (:use :common-lisp))
8 (in-package :iolib.asdf)
10 (defclass :iolib-muffled-source-file (asdf:cl-source-file) ())
12 (macrolet ((with-muffled-output (&body body)
13 `(handler-bind
14 (#+sbcl (sb-int:package-at-variance #'muffle-warning))
15 ,@body)))
16 (defmethod asdf:perform :around ((o asdf:compile-op)
17 (c :iolib-muffled-source-file))
18 (with-muffled-output
19 (with-standard-io-syntax
20 (let (;; Compilation fails because of CFFI types that
21 ;; can't be printed readably, so bind to NIL
22 (*print-readably* nil)
23 (*readtable* (copy-readtable)))
24 (call-next-method)))))
26 (defmethod asdf:perform :around ((o asdf:load-op)
27 (c :iolib-muffled-source-file))
28 (with-muffled-output
29 (with-standard-io-syntax
30 (let (;; See above
31 (*print-readably* nil)
32 (*readtable* (copy-readtable)))
33 (call-next-method)))))
35 (defmethod asdf:perform :around ((o asdf:load-source-op)
36 (c :iolib-muffled-source-file))
37 (with-muffled-output
38 (with-standard-io-syntax
39 (let (;;See above
40 (*print-readably* nil)
41 (*readtable* (copy-readtable)))
42 (call-next-method))))))
44 #+scl
45 (eval-when (:compile-toplevel :load-toplevel :execute)
46 ;; SCL 1.3.9.1 doesn't allow superclasses to be keywords
47 ;; Fix suggested by DTC
48 (defun clos::legal-class-name-p (x) (and x (symbolp x))))
50 (defclass :iolib-source-file (:iolib-muffled-source-file) ())