From 76865de3a6158dbf61317766877e49dc25e7ccdf Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 22 May 2004 21:58:24 +0000 Subject: [PATCH] Minor cleanups. --- lispref/compile.texi | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/lispref/compile.texi b/lispref/compile.texi index a201a225379..6c28708bdf1 100644 --- a/lispref/compile.texi +++ b/lispref/compile.texi @@ -171,6 +171,10 @@ the actual byte-code; each character in it is an instruction or an operand of an instruction. The vector contains all the constants, variable names and function names used by the function, except for certain primitives that are coded as special instructions. + +If the argument to @code{byte-compile} is a @code{lambda} expression, +it returns the corresponding compiled code, but does not store +it anywhere. @end defun @deffn Command compile-defun &optional arg @@ -232,7 +236,8 @@ recompilation if a @samp{.elc} file exists but is older than the When a @samp{.el} file has no corresponding @samp{.elc} file, @var{flag} says what to do. If it is @code{nil}, this command ignores these files. If @var{flag} is 0, it compiles them. If it is neither -@code{nil} nor 0, it asks the user whether to compile each such file. +@code{nil} nor 0, it asks the user whether to compile each such file, +and asks about each subdirectory as well. Interactively, @code{byte-recompile-directory} prompts for @var{directory} and @var{flag} is the prefix argument. @@ -293,8 +298,8 @@ in the file. @item If you alter the compiled file (such as by compiling a new version), -then further access to documentation strings in this file will give -nonsense results. +then further access to documentation strings in this file will +probably give nonsense results. @end itemize If your site installs Emacs following the usual procedures, these @@ -365,8 +370,8 @@ longer load the remaining function definitions not already loaded. @item If you alter the compiled file (such as by compiling a new version), -then trying to load any function not already loaded will yield nonsense -results. +then trying to load any function not already loaded will usually yield +nonsense results. @end itemize These problems will never happen in normal circumstances with @@ -391,9 +396,10 @@ that are set up for dynamic function loading. @end defvar @defun fetch-bytecode function -This immediately finishes loading the definition of @var{function} from -its byte-compiled file, if it is not fully loaded already. The argument -@var{function} may be a byte-code function object or a function name. +If @var{function} is a byte-code function object, this immediately +finishes loading the byte code of @var{function} from its +byte-compiled file, if it is not fully loaded already. Otherwise, +it does nothing. It always returns @var{function}. @end defun @node Eval During Compile @@ -440,7 +446,7 @@ 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 +function @var{func} by conditionalizing the function call on an @code{fboundp} test, like this: @example @@ -468,14 +474,17 @@ The reference to @var{variable} must be in the @var{then-form} of the You can suppress any compiler warnings using the construct @code{with-no-warnings}: -@defmac with-no-warnings body... +@c This is implemented with a defun, but conceptually it is +@c a special form. + +@defspec 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 defmac +@end defspec @node Byte-Code Objects @section Byte-Code Function Objects @@ -578,7 +587,8 @@ name of an existing buffer. Then the output goes there, at point, and point is left before the output. The argument @var{object} can be a function name, a lambda expression -or a byte-code object. +or a byte-code object. If it is a lambda expression, @code{disassemble} +compiles it and disassembles the resulting compiled code. @end deffn Here are two examples of using the @code{disassemble} function. We -- 2.39.5