separate that they have their own chapter, @ref{Efficiency}.
@menu
-* Diagnostic Messages::
+* Diagnostic Messages::
* Handling of Types::
* Compiler Policy::
* Compiler Errors::
declaration.
@end deffn
+Various details of @emph{how} the compiler messages are printed can be
+controlled via the alist
+@code{sb-ext:*compiler-print-variable-alist*}.
+
+@include var-sb-ext-star-compiler-print-variable-alist-star.texinfo
+
@c <!-- FIXME: How much control over error messages is in SBCL?
@c _ How much should be? How much of this documentation should
@c _ we save or adapt?
@c _ which is useful when debugging macros.
@c _ \end{defvar}
@c _
-@c _ \begin{defvar}{}{error-print-length}
-@c _ \defvarx{error-print-level}
-@c _
-@c _ These variables are the print level and print length used in
-@c _ printing error messages. The default values are \code{5} and
-@c _ \code{3}. If null, the global values of \code{*print-level*} and
-@c _ \code{*print-length*} are used.
-@c _ \end{defvar}
-@c _
@c _ \begin{defmac}{extensions:}{define-source-context}{%
@c _ \args{\var{name} \var{lambda-list} \mstar{form}}}
@c _
@c _
@c _ -->
-
@node Diagnostic Severity
@comment node-name, next, previous, up
@subsection Diagnostic Severity
Any or all type declarations may be believed without runtime
assertions, and assertions that are done may be imprecise.
-Used when @code{(> 0 safety (max speed space compilation-speed)}.
+Used when @code{(< 0 safety (max speed space compilation-speed)}.
@item No Type Checks
All declarations are believed without assertions. Also disables
Ordinarily, when the @code{speed} quality is high, the compiler emits
notes to notify the programmer about its inability to apply various
-optimizations.
-
-Compiler diagnostics (of any severity other than @code{error}:
-@pxref{Diagnostic Severity}) can be silenced by using the
-@code{sb-ext:muffle-conditions} declaration, specifying the type of
-condition that is to be muffled (using an associated
-@code{muffle-warning} restart).
-
-To muffle all compiler notes:
-
-@lisp
-(declaim (sb-ext:muffle-conditions sb-ext:compiler-note))
-@end lisp
-
-Compiler diagnostics can also be muffled in the lexical scope of a
-declaration, and also lexically unmuffled by the use of the
-sb-ext:unmuffle-conditions, for instance:
-
-@lisp
-(defun foo (x)
- (declare (optimize speed) (fixnum x))
- (declare (sb-ext:muffle-conditions sb-ext:compiler-note))
- (values (* x 5) ; no compiler note from this
- (locally
- (declare (sb-ext:unmuffle-conditions sb-ext:compiler-note))
- ;; this one gives a compiler note
- (* x -5))))
-@end lisp
+optimizations. For selective muffling of these notes @xref{Controlling
+Verbosity}.
The value of @code{space} mostly influences the compiler's decision
whether to inline operations, which tend to increase the size of
@c _ In addition to suppressing type checks, \code{0} also suppresses
@c _ argument count checking, unbound-symbol checking and array bounds
@c _ checks.
+@c _ ... and checking of tag existence in RETURN-FROM and GO.
@c _
@c _\item[\code{extensions:inhibit-warnings}] \cindex{inhibit-warnings
@c _ optimization quality}This is a CMU extension that determines how