[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#77883: 31.0.50; C-c C-e in *scratch* generates a missing lexical bin
From: |
Stefan Monnier |
Subject: |
bug#77883: 31.0.50; C-c C-e in *scratch* generates a missing lexical binding cookie warning |
Date: |
Fri, 18 Apr 2025 09:16:18 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> 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?
I can't remember how we ended up with this, but I strongly suspect it
has to do with the use of `eval-buffer` in `load-with-code-conversion`,
which is the most common use of `eval-buffer` (in dynamic counts, not
static counts, of course).
Stefan
bug#77883: 31.0.50; C-c C-e in *scratch* generates a missing lexical binding cookie warning, Sean Whitton, 2025/04/18