changeset 70969:044c7ca7a4ff

(Coding Conventions): Advise against using eval-after-load in packages. Add an index entry.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 26 May 2006 19:32:02 +0000
parents a26fd6a82aff
children 58d0b772b752
files lispref/tips.texi
diffstat 1 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lispref/tips.texi	Fri May 26 19:12:23 2006 +0000
+++ b/lispref/tips.texi	Fri May 26 19:32:02 2006 +0000
@@ -35,6 +35,7 @@
 @node Coding Conventions
 @section Emacs Lisp Coding Conventions
 
+@cindex coding conventions in Emacs Lisp
   Here are conventions that you should follow when writing Emacs Lisp
 code intended for widespread use:
 
@@ -52,9 +53,9 @@
 @item
 Since all global variables share the same name space, and all
 functions share another name space, you should choose a short word to
-distinguish your program from other Lisp programs.@footnote{The
+distinguish your program from other Lisp programs@footnote{The
 benefits of a Common Lisp-style package system are considered not to
-outweigh the costs.}  Then take care to begin the names of all global
+outweigh the costs.}.  Then take care to begin the names of all global
 variables, constants, and functions in your program with the chosen
 prefix.  This helps avoid name conflicts.
 
@@ -175,7 +176,17 @@
 @item
 Redefining (or advising) an Emacs primitive is discouraged.  It may do
 the right thing for a particular program, but there is no telling what
-other programs might break as a result.
+other programs might break as a result.  In any case, it is a
+maintenance burden because the two packages become highly dependent on
+each other.
+
+@item
+Likewise, avoid using @code{eval-after-load} (@pxref{Hooks for
+Loading}) in libraries and packages.  This feature is meant for
+personal customizations; using it in a Lisp package increases the
+coupling between it and the package mentioned in
+@code{eval-after-load}, and thus makes it harder to maintain the two
+packages independently.
 
 @item
 If a file does replace any of the functions or library programs of