GNU bug report logs -
#62840
30.0.50; Doc bug: obsolete paragraph in Elisp Ref
Previous Next
Reported by: Nick Dokos <ndokos <at> gmail.com>
Date: Fri, 14 Apr 2023 17:50:01 UTC
Severity: normal
Found in version 30.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
---------------------------------------------------------------------------
Emacs Lisp Reference manual, Chapter "Variables", Section "Lexical
Binding" says:
--8<---------------cut here---------------start------------->8---
...
(Internally, the lexical environment is an alist of symbol-value
pairs, with the final element in the alist being the symbol ‘t’ rather
than a cons cell. Such an alist can be passed as the second argument to
the ‘eval’ function, in order to specify a lexical environment in which
to evaluate a form. *Note Eval::. Most Emacs Lisp programs, however,
should not interact directly with lexical environments in this way; only
specialized programs like debuggers.)
...
--8<---------------cut here---------------end--------------->8---
I don't know if the structure of the lexical environment was ever really
relevant: it seems to be an internal detail that should not have found
its way into the documentation in the first place, but that's guessing
on my part.
The important thing is that it does not seem to be the case any longer:
the `t' is present at the end of the lexical environment in Emacs 28.2:
(let ((foo 233)) (lambda (x) (* x foo))) ==> (closure ((foo . 233) t) (x) (* x foo))
but it is no longer present in current upstream:
(let ((foo 233)) (lambda (x) (* x foo))) ==> (closure ((foo . 233)) (x) (* x foo))
so the above paragraph needs modification (if not outright excision).
--
Nick
This bug report was last modified 2 years and 92 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.