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
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Section 13.9 "Accessing Function Cell Contents" of the GNU Emacs Lisp
Reference Manual emphasizes the distinction between void and nil
in function cells:
| Note that void is not the same as ‘nil’ or the symbol ‘void’.
| The symbols ‘nil’ and ‘void’ are Lisp objects, and can be stored into
| a function cell just as any other object can be (and ‘void’ can be a
| valid function if you define it with ‘defun’). A void function cell
| contains no object whatsoever.
| You can test the voidness of a symbol's function definition with
| ‘fboundp’. After you have given a symbol a function definition, you
| can make it void once more using ‘fmakunbound’.
Also, for "fboundp":
| This function returns ‘t’ if the symbol has an object in its
| function cell, ‘nil’ otherwise. It does not check that the
| object is a legitimate function.
It seems that the actual behavior does not reflect this, i.e. there
is no distinction between nil and void:
(fmakunbound 'foo)
(fboundp 'foo) ⇒ nil
(fset 'foo nil)
;; according to the manual, the following should return t
;; because nil is a Lisp object:
(fboundp 'foo) ⇒ nil
Is the manual wrong, or am I missing something?
This bug report was last modified 262 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.