Mercurial > hg > xemacs-beta
diff man/internals/internals.texi @ 3094:ad2f4ae9895b
[xemacs-hg @ 2005-11-26 11:45:47 by stephent]
Xft merge. <87k6ev4p8q.fsf@tleepslib.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Sat, 26 Nov 2005 11:46:25 +0000 |
parents | 0ae46b360391 |
children | 971e3c687f18 |
line wrap: on
line diff
--- a/man/internals/internals.texi Fri Nov 25 22:51:38 2005 +0000 +++ b/man/internals/internals.texi Sat Nov 26 11:46:25 2005 +0000 @@ -5114,10 +5114,15 @@ be derived from the name of the symbol using the same rules as for Lisp primitives. Such variables allow the C code to check whether a particular @code{Lisp_Object} is equal to a given symbol. Symbols are -Lisp objects, so these variables may be passed to Lisp primitives. (An -alternative to the use of @samp{Q...} variables is to call the +Lisp objects, so these variables may be passed to Lisp primitives. (A +tempting alternative to the use of @samp{Q...} variables is to call the @code{intern} function at initialization in the -@code{vars_of_@var{module}} function, which is hardly less efficient.) +@code{vars_of_@var{module}} function. But this does not +@code{staticpro} the symbol, which in theory could get uninterned, and +then garbage collected while you're not looking. You could +@code{staticpro} yourself, but in a production XEmacs @code{intern} and +@code{staticpro} is all that @code{DEFSYMBOL} does, while in a debugging +XEmacs it also does some error-checking, which you normally want.) @strong{Convention}: Global variables whose names begin with @samp{V} are variables that contain Lisp objects. The convention here is that