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

From: Stefan Monnier <[email-masked]>
Date: Fri, 21 Feb 2025 23:48:16 -0500

>> >> I wrote "I feel like I'm missing something", but I'm starting to think
>> >> that you're the one who missed the fact that the patch I pushed is not
>> >> the one you think.
>> >
>> > No, I'm not missing anything, except some kind of response to those
>> > posts.
>> 
>> Then I'm still missing what is the connection with the patch I pushed.
>
> People suggested various roadmaps forward towards making
> lexical-binding the default, with specific steps to be taken to let
> users adjust to the change easier than in other roadmaps.  In
> response, we haven't produced any roadmap of our own, haven't
> explained how the changes which are actually being installed fit into
> that roadmap, and didn't even say whether we agree or disagree with
> the proposed roadmaps.

No changes are installed.  None of the objections I've seen in this
bug-report were new and they've all been answered before, so I did not
reply because I have nothing new to say about it.

E.g. "why don't we start by warning when we load files
without the lexical-binding cookie?":

    https://lists.gnu.org/r/emacs-devel/2024-05/msg00250.html

> That's what I'm missing, looking at the subject from the POV of those
> people whose posts I mentioned, and that is the connection with the
> patch you installed: what is the place of that patch in the roadmap
> that we intend to use?

It's a *very* small step that lets people try Emacs "as if
lexical-binding was enabled by default" but only if they specifically
ask for it.  Maybe it's part of what you call a "roadmap", but AFAIK
it's not going to bring us much closer because those who'll be tempted
to try it out and most likely those who are interested in the subject so
they likely already converted their code.

> I think we need to answer those questions, for
> the benefit of those people, if not for our own.

I don't have any new answers to those questions.

I do think changing the default to t on `master` (at least on
a temporary basis) might give us some new feedback which may open up
space for new answers.  I've also already said that several times.

But AFAICT you're scared to do that, even though we're talking about the
development version of our code (i.e. something which users should
expect to come with rough edges every once in a while) and it comes
with a trivial one-liner config to restore the previous behavior.

AFAICT the only option left for me is to wait for that fear to subside.
Maybe another 10 years or so will do?

        Stefan