GNU bug report logs - #77883
31.0.50; C-c C-e in *scratch* generates a missing lexical binding cookie warning

Previous Next

Package: emacs;

Reported by: Sean Whitton <spwhitton <at> spwhitton.name>

Date: Fri, 18 Apr 2025 02:37:06 UTC

Severity: normal

Merged with 78206

Found in version 31.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 77883 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca, spwhitton <at> spwhitton.name
Subject: Re: bug#77883: 31.0.50; C-c C-e in *scratch* generates a missing
 lexical binding cookie warning
Date: Fri, 18 Apr 2025 15:13:40 +0300
> 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.