On Sat, Jan 28, 2023 at 09:11:41AM -0700, abq@bitrot.link wrote: > tomas wrote: > > I think it's backward compatibility, mainly. Files with no explicit > > lexical binding setting (may) contain code which expects dynamic > > binding and would break. > > As I mentioned, the global value of lexical-binding defaults to nil. Yes, you did mention that. > This is > the case in Emacs 24 through 28, and obviously will be in 29 too. Therefore, > even if the global value were honored in 29 and future versions, files with > no explicit setting would continue to get dynamic binding, as they expect. > They won't break. > > In order to break anything, you would have to do so explicitly, via > (setq-default lexical-binding t). The docs only talk about a buffer-local variable, so I'd guess that the global variable of the same name is simply ignored. Cheers -- t