GNU bug report logs - #62840
30.0.50; Doc bug: obsolete paragraph in Elisp Ref

Previous Next

Package: emacs;

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


Message #8 received at 62840 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Nick Dokos <ndokos <at> gmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 62840 <at> debbugs.gnu.org
Subject: Re: bug#62840: 30.0.50; Doc bug: obsolete paragraph in Elisp Ref
Date: Sat, 15 Apr 2023 11:39:05 +0300
> From: Nick Dokos <ndokos <at> gmail.com>
> Date: Fri, 14 Apr 2023 13:48:59 -0400
> 
> 
> ---------------------------------------------------------------------------
> 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).

Stefan, any comments?  Should this text be amended, deleted, or
something else?




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.