GNU bug report logs -
#74540
30.0.91; mention special variables in lexbind Info page
Previous Next
Reported by: Mike Kupfer <kupfer <at> rawbw.com>
Date: Tue, 26 Nov 2024 00:53:02 UTC
Severity: normal
Found in version 30.0.91
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#74540: 30.0.91; mention special variables in lexbind Info page
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 74540 <at> debbugs.gnu.org.
--
74540: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74540
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> From: Mike Kupfer <kupfer <at> rawbw.com>
> Date: Mon, 25 Nov 2024 16:52:05 -0800
>
> When I first read up on lexical binding, I didn't realize that I also
> needed to review the documentation for dynamic binding, so that I
> could learn about special variables. I think it would be good for the
> Info page for lexical binding to mention special variables, clarify
> that the specialness also affects new bindings (not just the initial
> defvar/defcustom/defconst), and provide a link to the page for dynamic
> binding (for details about special variables).
>
> I've enclosed a draft patch for your consideration.
Thanks, installed on the emacs-30 branch, and closing the bug.
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
When I first read up on lexical binding, I didn't realize that I also
needed to review the documentation for dynamic binding, so that I
could learn about special variables. I think it would be good for the
Info page for lexical binding to mention special variables, clarify
that the specialness also affects new bindings (not just the initial
defvar/defcustom/defconst), and provide a link to the page for dynamic
binding (for details about special variables).
I've enclosed a draft patch for your consideration.
thanks,
mike
[lexbind-special-vars.patch (text/x-diff, inline)]
user: Mike Kupfer <kupfer <at> rawbw.com>
date: Mon Nov 25 15:37:53 2024 -0800
files: doc/lispref/variables.texi
description:
Mention special variables in lexical binding documentation
* doc/lispref/variables.texi (Lexical Binding): Briefly mention
special variables and their semantics.
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -1096,7 +1096,7 @@
@end example
@noindent
-The @code{let} binding defines a lexical environment in which the
+Here, the @code{let} binding defines a lexical environment in which the
variable @code{x} is locally bound to 0. Within this binding
construct, we define a lambda expression which increments @code{x} by
one and returns the incremented value. This lambda expression is
@@ -1113,6 +1113,12 @@
variable's dynamic binding (i.e., the contents of its symbol's value
cell).
+ Note also that variables may be declared special, in which case they
+will use dynamic binding, even for new bindings such as a @code{let}
+binding. Depending on how the variable is declared, it can be
+special globally, for a single file, or for a portion of a file.
+@xref{Dynamic Binding} for details.
+
@node Dynamic Binding
@subsection Dynamic Binding
This bug report was last modified 228 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.