On Mon, Jan 30, 2023 at 02:32:58PM +0200, Eli Zaretskii wrote: > > Date: Sun, 29 Jan 2023 20:53:30 -0700 > > From: abq@bitrot.link > > Cc: emacs-devel@gnu.org > > > > On 2023-01-28 23:54, Eli Zaretskii wrote: > > > Wasn't that already explained? What happens if you say > > > > > > (setq-default lexical-binding t) > > > > > > and then load a Lisp file that expects dynamic-binding by default? > > > > Then it breaks! > > We want to avoid such a breakage. It is year 2023 out there, but > there's still gobs of code that assumes dynamic binding. Moreover, I still fail to understand why this is useful. Files with no binding declaration have most probably been writen at a time where dynamic binding was the only option [1]. So it does make sense to treat them as if there were a "lexical-binding: f" declaration in them. Everything else would be breaking the interface contract. You better not do that (this would be the same as changing the meaning of `+' for old programs: what for?) This means that the variable `lexical-binding' is always locally bound, so its global binding is meaningless. Cheers -- t