# HG changeset patch # User Richard M. Stallman # Date 1060132633 0 # Node ID 6a00e88ede7573cc6104b157c8f4a3a92bd34cb5 # Parent b740243a935b1f4968cd20a135fbd43c6759c1a9 (Compiler Errors): Explain with-no-warnings and other ways to suppress warnings. diff -r b740243a935b -r 6a00e88ede75 lispref/compile.texi --- a/lispref/compile.texi Wed Aug 06 01:12:49 2003 +0000 +++ b/lispref/compile.texi Wed Aug 06 01:17:13 2003 +0000 @@ -421,6 +421,42 @@ commands won't find the places they are really used. To do that, you must search for the function names. + You can suppress the compiler warning for calling an undefined +function @var{func} by conditionalizing the function call on a +@code{fboundp} test, like this: + +@example +(if (fboundp '@var{func}) ...(@var{func} ...)...) +@end example + +@noindent +The call to @var{func} must be in the @var{then-form} of the @code{if}, +and @var{func} must appear quoted in the call to @code{fboundp}. +Likewise, you can suppress a compiler warning for an unbound variable +@var{variable} by conditionalizing its use on a @code{boundp} test, +like this: + +@example +(if (boundp '@var{variable}) ...@var{variable}...) +@end example + +@noindent +The reference to @var{variable} must be in the @var{then-form} of the +@code{if}, and @var{variable} must appear quoted in the call to +@code{boundp}. + + You can suppress any compiler warnings using the construct +@code{with-no-warnings}: + +@defmac with-no-warnings body... +In execution, this is equivalent to @code{(progn @var{body}...)}, +but the compiler does not issue warnings for anything that occurs +inside @var{body}. + +We recommend that you use this construct around the smallest +possible piece of code. +@end defun + @node Byte-Code Objects @section Byte-Code Function Objects @cindex compiled function