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

From: Stefan Monnier <[email-masked]>
Date: Sat, 13 Jan 2018 13:05:58 -0500

>> No, they'll work pretty much as before.
> Then you are saying that turning on lexical-binding in *scratch* will
> change nothing at all?

Not nothing at all, but the two languages are *very* similar and the
differences rarely show up in a single expression.

My gut feeling is that the main risk to bump into an undesirable
behavior is something like

   (let ((foopkg-var t))
     (foopkg-fun arg1 arg2))

where foopkg is not yet loaded and foopkg-fun is autoloaded: Emacs will
only be told that `foopkg-var` is a dynamic-variable once the
`foopkg-fun` call causes `foopkg` to be loaded, so Emacs will mistakenly
use lexical scoping for the let binding because at that it still knows
nothing about `foopkg-var`.

        Stefan