GNU bug report logs -
#73886
29.4; Confusing info about void function cells in Emacs Lisp manual
Previous Next
Reported by: Ulrich Müller <ulm <at> gentoo.org>
Date: Sat, 19 Oct 2024 14:39:01 UTC
Severity: normal
Found in version 29.4
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>> > Thanks, I've now updated the documentation, and I'm closing this bug.
>> TBH, I find the new wording still confusing: "It is impossible to
>> distinguish between a function cell that is void and one set to nil."
>> After commit eadf1faa3cb5eea8c25a5166a9a97ebd63525c56 there are no void
>> function cells any more.
> A function that was not defined at all is void.
How 'bout the patch below, which tries to eliminate the notion that
a function cell ever contains "void", reducing "void function" to just
a terminology to describe the nil value in function cells?
Stefan
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index bfb8789d05b..3a6da5c31e6 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1511,10 +1511,6 @@ Function Cells
This returns the object in the function cell of @var{symbol}. It does
not check that the returned object is a legitimate function.
-If the function cell is void, the return value is @code{nil}. It is
-impossible to distinguish between a function cell that is void and one
-set to @code{nil}.
-
@example
@group
(defun bar (n) (+ n 2))
@@ -1533,9 +1529,9 @@ Function Cells
@end defun
@cindex void function cell
- If you have never given a symbol any function definition, we say
-that that symbol's function cell is @dfn{void}. In other words, the
-function cell does not have any Lisp object in it. If you try to call
+ If you have never given a symbol any function definition, its function
+cell contains the default value @code{nil} and we say
+that that symbol's function cell is @dfn{void}. If you try to call
the symbol as a function, Emacs signals a @code{void-function} error.
Unlike with void variables (@pxref{Void Variables}), a symbol's
diff --git a/src/data.c b/src/data.c
index bf83755bff3..904eaf35c1a 100644
--- a/src/data.c
+++ b/src/data.c
@@ -756,7 +756,7 @@ DEFUN ("boundp", Fboundp, Sboundp, 1, 1, 0,
breaking backward compatibility, as some users of fboundp may
expect t in particular, rather than any true value. */
DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0,
- doc: /* Return t if SYMBOL's function definition is neither void nor nil. */)
+ doc: /* Return t if SYMBOL's function definition is not nil. */)
(Lisp_Object symbol)
{
CHECK_SYMBOL (symbol);
@@ -785,7 +785,7 @@ DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0,
doc: /* Make SYMBOL's function definition be nil.
Return SYMBOL.
-If a function definition is nil or void, trying to call a function by
+If a function definition is nil, trying to call a function by
that name will cause a `void-function' error. For more details, see
Info node `(elisp) Function Cells'.
@@ -800,7 +800,7 @@ DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0,
}
DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0,
- doc: /* Return SYMBOL's function definition, or nil if that is void or nil. */)
+ doc: /* Return SYMBOL's function definition. */)
(Lisp_Object symbol)
{
CHECK_SYMBOL (symbol);
This bug report was last modified 261 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.