From: Stefan Monnier <monnier@iro.umontreal.ca>
To: emacs-devel@gnu.org
Subject: Re: lexical-binding questions
Date: Tue, 15 May 2012 22:05:36 -0400 [thread overview]
Message-ID: <jwvehqk288n.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87d3656og5.fsf@gnu.org> ("Johan Bockgård"'s message of "Wed, 16 May 2012 00:59:06 +0200")
>>>> (setq lexical-binding t)
>>>> (let ((nil 0)) nil) => 0
>> Anyway, I guess nil and t should be marked as special-variable-p, if for
>> no other reason than because they are pretty damn special.
> The problem also applies to keyword symbols.
Indeed, except it's a lot less likely that people will try to let-bind
a keyword symbol (it happens to me several times a year to choose `t'
for a variable name, only to find it doesn't work, but I never suffered
from that problem with a keyword symbol).
> I was thinking
> if (!NILP (lexenv) && SYMBOLP (var)
> + && !SYMBOL_CONSTANT_P (var)
> && !XSYMBOL (var)->declared_special
> && NILP (Fmemq (var, Vinternal_interpreter_environment)))
> /* Lexically bind VAR by adding it to the lexenv alist. */
> lexenv = Fcons (Fcons (var, tem), lexenv);
It would be more efficient to set declared_special on keyword symbols.
Stefan
prev parent reply other threads:[~2012-05-16 2:05 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-05 6:30 lexical-binding questions Thierry Volpiatto
2012-05-05 6:45 ` Thierry Volpiatto
2012-05-05 8:16 ` BEGIN_SRC..END_SRC (was: lexical-binding questions) Eli Zaretskii
2012-05-05 8:39 ` BEGIN_SRC..END_SRC Tom Rauchenwald
2012-05-05 8:54 ` BEGIN_SRC..END_SRC Eli Zaretskii
2012-05-05 13:38 ` BEGIN_SRC..END_SRC Bastien
2012-05-05 17:02 ` BEGIN_SRC..END_SRC Eli Zaretskii
2012-05-06 16:03 ` BEGIN_SRC..END_SRC Bastien
2012-05-06 16:46 ` BEGIN_SRC..END_SRC Eli Zaretskii
2012-05-06 17:03 ` BEGIN_SRC..END_SRC Lars Magne Ingebrigtsen
2012-05-05 14:35 ` BEGIN_SRC..END_SRC Drew Adams
2012-05-05 15:10 ` BEGIN_SRC..END_SRC Antoine Levitt
2012-05-05 15:57 ` BEGIN_SRC..END_SRC Drew Adams
2012-05-05 17:00 ` BEGIN_SRC..END_SRC Peter Münster
2012-05-05 17:35 ` BEGIN_SRC..END_SRC Drew Adams
2012-05-05 21:38 ` BEGIN_SRC..END_SRC John Wiegley
2012-05-07 2:25 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-07 6:23 ` BEGIN_SRC..END_SRC Miles Bader
2012-05-07 9:37 ` BEGIN_SRC..END_SRC Thien-Thi Nguyen
2012-05-06 14:17 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-05 15:48 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-05 16:43 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-05 17:12 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-07 8:57 ` BEGIN_SRC..END_SRC Julien Danjou
2012-05-07 9:46 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-05 17:36 ` BEGIN_SRC..END_SRC Drew Adams
2012-05-05 19:48 ` BEGIN_SRC..END_SRC Martyn Jago
2012-05-05 20:00 ` BEGIN_SRC..END_SRC Drew Adams
2012-05-07 5:44 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-07 14:23 ` BEGIN_SRC..END_SRC Wolfgang Jenkner
2012-05-08 4:08 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-08 7:37 ` BEGIN_SRC..END_SRC Bastien
2012-05-08 11:41 ` BEGIN_SRC..END_SRC Juanma Barranquero
2012-05-08 12:17 ` BEGIN_SRC..END_SRC Stefan Monnier
2012-05-08 14:32 ` BEGIN_SRC..END_SRC Andreas Röhler
2012-05-09 1:23 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-09 17:31 ` BEGIN_SRC..END_SRC Stefan Monnier
2012-05-09 0:47 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-09 3:50 ` BEGIN_SRC..END_SRC Miles Bader
2012-05-09 11:35 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-09 12:23 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-09 13:43 ` BEGIN_SRC..END_SRC Lars Magne Ingebrigtsen
2012-05-09 14:57 ` BEGIN_SRC..END_SRC Eric Schulte
2012-05-09 17:08 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-09 16:06 ` BEGIN_SRC..END_SRC Eric Schulte
2012-05-09 18:20 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-09 16:30 ` BEGIN_SRC..END_SRC Eric Schulte
2012-05-09 18:44 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-10 7:44 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-10 7:28 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-10 7:59 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-10 12:35 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-10 13:28 ` BEGIN_SRC..END_SRC Yann Hodique
2012-05-10 13:51 ` BEGIN_SRC..END_SRC Miles Bader
2012-05-15 3:30 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-10 15:21 ` BEGIN_SRC..END_SRC Davis Herring
2012-05-15 3:56 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-10 9:02 ` BEGIN_SRC..END_SRC René Kyllingstad
2012-05-10 13:05 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-10 13:55 ` BEGIN_SRC..END_SRC René Kyllingstad
2012-05-15 3:52 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-16 14:00 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-09 13:52 ` BEGIN_SRC..END_SRC Tassilo Horn
2012-05-09 17:44 ` BEGIN_SRC..END_SRC Tassilo Horn
2012-05-09 17:33 ` BEGIN_SRC..END_SRC Stefan Monnier
2012-05-09 4:45 ` BEGIN_SRC..END_SRC Eli Zaretskii
2012-05-09 6:28 ` BEGIN_SRC..END_SRC Tassilo Horn
2012-05-09 9:30 ` BEGIN_SRC..END_SRC Peter Münster
2012-06-08 0:20 ` BEGIN_SRC..END_SRC Lars Magne Ingebrigtsen
2012-05-09 17:36 ` BEGIN_SRC..END_SRC Stefan Monnier
2012-05-10 0:56 ` BEGIN_SRC..END_SRC Miles Bader
2012-05-16 14:51 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-16 13:05 ` BEGIN_SRC..END_SRC Eric Schulte
2012-05-16 15:17 ` plain-text markdown handler for Gnus (was: BEGIN_SRC..END_SRC) Ted Zlatanov
2012-05-16 14:21 ` plain-text markdown handler for Gnus Eric Schulte
2012-05-16 16:29 ` Ted Zlatanov
2012-05-06 14:15 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-06 14:18 ` BEGIN_SRC..END_SRC Lennart Borgman
2012-05-06 14:33 ` BEGIN_SRC..END_SRC Alan Mackenzie
2012-05-06 14:43 ` BEGIN_SRC..END_SRC Lennart Borgman
2012-05-06 18:57 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-06 23:20 ` BEGIN_SRC..END_SRC Lennart Borgman
2012-05-07 2:21 ` BEGIN_SRC..END_SRC Ted Zlatanov
2012-05-07 9:56 ` BEGIN_SRC..END_SRC Lennart Borgman
2012-05-07 11:04 ` BEGIN_SRC..END_SRC Stephen J. Turnbull
2012-05-05 13:29 ` lexical-binding questions Stefan Monnier
2012-05-05 17:59 ` Thierry Volpiatto
2012-05-06 0:08 ` Miles Bader
2012-05-06 2:43 ` Stefan Monnier
2012-05-06 6:00 ` Thierry Volpiatto
2012-05-05 13:26 ` Stefan Monnier
2012-05-05 15:57 ` Thierry Volpiatto
2012-05-07 15:19 ` Stefan Monnier
2012-05-07 15:39 ` Drew Adams
2012-05-15 6:40 ` egnarts-ms
2012-05-15 13:55 ` Stefan Monnier
2012-05-14 3:57 ` egnarts-ms
2012-05-14 4:55 ` Stefan Monnier
2012-05-14 17:09 ` Johan Bockgård
2012-05-15 17:54 ` egnarts-ms
2012-05-15 20:14 ` Stefan Monnier
2012-05-15 22:59 ` Johan Bockgård
2012-05-16 2:05 ` Stefan Monnier [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvehqk288n.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).