Subject: bug#74145: 31.0.50; Default lexical-binding to t

From: Mattias Engdegård <[email-masked]>
Date: Sat, 28 Dec 2024 18:40:00 +0100

> I believe the time has come to change the default dialect.

Agreed, the sooner the better. (Sorry about the delay; I'm trying to catch up.)

The compilation warning about missing lexical-binding declaration is still there which makes sense. Eventually it should be removed but it's not urgent to plan for it now.

The patch looks fine. Some very minor comments (that you can ignore):
 
> -  The old dynamic-only Emacs Lisp dialect is still the default in code
> +  The new lexically scoped Emacs Lisp dialect is now the default in code

Maybe do away with the 'new' and 'now' here -- I think the documentation should describe Emacs as it is, and NEWS have the changes.

>  for the old dynamic-only dialect.  When no declaration is present the
> -old dialect is used, but this may change in a future release.
> -The compiler will warn if no declaration is present.
> +new dialect is used.  Support for the old dialect may be removed in
> +a future release.

Well, the compiler still warns, as it should, so this isn't quite accurate.

> +** 'lexical-binding' now defaults to t.
> +The default ELisp dialect is now the lexically scoped dialect.
> +Any code which has not yet been adapted should either be
> +adapted or set 'lexical-binding' to nil explicitly.

Maybe mention that the cookie warning is still there?