From: Richard M. Stallman Date: Wed, 6 Aug 2003 01:17:13 +0000 (+0000) Subject: (Compiler Errors): Explain with-no-warnings X-Git-Tag: ttn-vms-21-2-B4~9157 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/fe45b975b94bccc550eafc37b160bdd8695e8d46 (Compiler Errors): Explain with-no-warnings and other ways to suppress warnings. --- diff --git a/lispref/compile.texi b/lispref/compile.texi index 583454efe7..5ce8c45ee9 100644 --- a/lispref/compile.texi +++ b/lispref/compile.texi @@ -421,6 +421,42 @@ defined are always ``located'' at the end of the file, so these 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