GNU bug report logs -
#77883
31.0.50; C-c C-e in *scratch* generates a missing lexical binding cookie warning
Previous Next
Full log
View this message in rfc822 format
> From: Michael Heerdegen <michael_heerdegen <at> web.de>
> Cc: Sean Whitton <spwhitton <at> spwhitton.name>, Stefan Monnier
> <monnier <at> iro.umontreal.ca>, 77883 <at> debbugs.gnu.org
> Date: Fri, 18 Apr 2025 13:12:48 +0200
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > IMO, it's a bug, because "C-x C-e" doesn't generate any such warnings,
> > and lexical-binding is t in *scratch* anyway.
>
> I agree it is a bug.
>
> C-c C-e calls `eval-buffer' which "ignores the current value of the
> `lexical-binding' variable. Instead it will heed any
> -*- lexical-binding: t -*- settings in the buffer, and if there is no such
> setting, the buffer will be evaluated without lexical binding."
>
> Not good in this case.
Is it good in any other case?
I mean, what's the logic behind ignoring the current value of
lexical-binding, but heeding the cookie? let alone defaulting to
dynamic binding if there's no cookie? If the reason is backward
compatibility, I think I'd like to see the details: where would
changing this cause problems?
And note that this aspect of the eval-buffer's behavior is not
documented in the ELisp manual, which is also not a good thing.
This bug report was last modified 16 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.