Subject: Re: bug#30078: 27.0.50; Use lexical-binding for M-:

From: Noam Postavsky <[email-masked]>
Date: Fri, 12 Jan 2018 15:33:25 -0500

On Fri, Jan 12, 2018 at 3:03 PM, Eli Zaretskii <[email-masked]> wrote:
>> From: Stefan Monnier <[email-masked]>
>> Cc: [email-masked], [email-masked]
>> Date: Fri, 12 Jan 2018 14:06:41 -0500
>>
>> >> > Please, not in *scratch*.  Setting variables and then evaluating forms
>> >> > that use them is very useful there.
>> >> I'm not sure how the two sentences are connected:
>> >> Setting lexical-binding to t in *scratch* won't prevent setting
>> >> variables and evaluating forms that use them.
>> > For some value of "prevent", surely?  Dynamically-bound variables will
>> > no longer work as they did before, right?
>>
>> No, they'll work pretty much as before.
>
> Then you are saying that turning on lexical-binding in *scratch* will
> change nothing at all?  I very much doubt that, and my witness are all
> those packages that broke due to lexical-binding and needed minor
> fixes.

Top-level `setq's would be unaffected (because the lexical environment
at the top level is empty). Lexical binding only changes what `let'
does, for undeclared variables.
(okay, not *just* `let', it also affects `lambda')