Mercurial > emacs
changeset 52139:6a00e88ede75
(Compiler Errors): Explain with-no-warnings
and other ways to suppress warnings.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 06 Aug 2003 01:17:13 +0000 |
parents | b740243a935b |
children | e00701b0e24f |
files | lispref/compile.texi |
diffstat | 1 files changed, 36 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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