diff options
author | Richard M. Stallman <rms@gnu.org> | 2004-11-16 17:30:48 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2004-11-16 17:30:48 +0000 |
commit | 155cb2e57eb0ae8e874824bcaf733cfe97c4f788 (patch) | |
tree | 4256b0a4d7752336823bb5fae29ee4f8b5c99e47 /lispref/tips.texi | |
parent | 5d645852385218a0252ec29aabf3de28364d3ec5 (diff) | |
download | emacs-155cb2e57eb0ae8e874824bcaf733cfe97c4f788.tar.gz |
(Coding Conventions): Separate defvar and require
methods to avoid warnings. Use require only when there are many
functions and variables from that package.
Diffstat (limited to 'lispref/tips.texi')
-rw-r--r-- | lispref/tips.texi | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/lispref/tips.texi b/lispref/tips.texi index a85147f1d8f..4182260028b 100644 --- a/lispref/tips.texi +++ b/lispref/tips.texi @@ -370,25 +370,34 @@ coherent if all libraries use the same conventions. @item Try to avoid compiler warnings about undefined free variables, by adding -@code{defvar} definitions for these variables. +dummy @code{defvar} definitions for these variables, like this: -Sometimes adding a @code{require} for another package is useful to avoid -compilation warnings for variables and functions defined in that -package. If you do this, often it is better if the @code{require} acts -only at compile time. Here's how to do that: +@example +(defvar foo) +@end example + +Such a definition has no effect except to tell the compiler +not to warn about uses of the variable @code{foo} in this file. + +@item +If you use many functions and variables from a certain file, you can +add a @code{require} for that package to avoid compilation warnings +for them. It is better if the @code{require} acts only at compile +time. Here's how to do this: @example (eval-when-compile - (require 'foo) - (defvar bar-baz)) + (require 'foo)) @end example -If you bind a variable in one function, and use it or set it in another -function, the compiler warns about the latter function unless the -variable has a definition. But often these variables have short names, -and it is not clean for Lisp packages to define such variable names. -Therefore, you should rename the variable to start with the name prefix -used for the other functions and variables in your package. +@item +If you bind a variable in one function, and use it or set it in +another function, the compiler warns about the latter function unless +the variable has a definition. But adding a definition would be +unclean if the variable has a short names, since Lisp packages should +not define short variable names. The right thing to do is to rename +this variable to start with the name prefix used for the other +functions and variables in your package. @item Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the |