;; and a mechanism for controlling same at compile time
"MUFFLE-CONDITIONS" "UNMUFFLE-CONDITIONS"
+ ;; and one for controlling same at runtime
+ "*MUFFLED-WARNINGS*"
+
;; extended declarations..
"FREEZE-TYPE" "INHIBIT-WARNINGS"
"MAYBE-INLINE"
(format stream "Returning from STEP")))
#!+sb-doc
(:documentation "Condition signaled when STEP returns."))
-
+\f
+;;; A knob for muffling warnings, mostly for use while loading files.
+(defvar *muffled-warnings* nil
+ "A type that ought to specify a subtype of WARNING. Whenever a warning
+is signaled, if the warning if of this type, it will be muffled.")
\f
;;;; restart definitions
;;; associated with Condition
(defvar *condition-restarts* ())
-(defvar *handler-clusters* nil)
+(defun initial-handler-clusters ()
+ `(((warning . ,#'(lambda (warning)
+ (when (typep warning
+ (locally
+ (declare (special sb!ext:*muffled-warnings*))
+ sb!ext:*muffled-warnings*))
+ (muffle-warning warning)))))))
+
+(defvar *handler-clusters* (initial-handler-clusters))
(defstruct (restart (:copier nil) (:predicate nil))
(name (missing-arg) :type symbol :read-only t)
;; --njf, 2006-07-15
(let* ((*current-thread* thread)
(*restart-clusters* nil)
- (*handler-clusters* nil)
+ (*handler-clusters* (sb!kernel::initial-handler-clusters))
(*condition-restarts* nil)
(sb!impl::*deadline* nil)
(sb!impl::*step-out* nil)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.18.10"
+"1.0.18.11"