Subject: Re: bug#44854: [PATCH] Add lexical-binding cookie to autoload files

From: Eli Zaretskii <[email-masked]>
Date: Wed, 25 Nov 2020 17:02:52 +0200

> From: Stefan Kangas <[email-masked]>
> Date: Tue, 24 Nov 2020 13:35:22 -0800
> Cc: [email-masked], [email-masked]
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > I guess I'm asking how is this a step on that journey.  Can you
> > elaborate?
> 
> [ In the interest of full disclosure, I had a brief private discussion
>   with Stefan M about this.  I can only speak for myself, but I will
>   share my clarified thinking based on his input. ]
> 
> I believe that if we want to have lexical-binding by default, we will at
> some point need to begin issuing byte-compiler warnings for files that
> do not explicitly say one of "-*- lexical-binding:t -*- or
> "-*- lexical-binding:nil -*-".
> 
> This warning would need to be there for a period of time likely to be at
> least as long as the time span we usually allow before removing any
> obsolete feature.  Probably even longer.
> 
> Only after such a time period with the warning can we think about using
> "lexical-binding:t" as the default.  At that point, any library that has
> not yet been converted will hopefully use "lexical-binding:nil".
> 
> Now, the above idea would involve changing all of our own files to use
> one of the above.  Possibly proposing this change in this manner is
> putting the horse ahead of the cart.  But I was still undecided on
> whether or not this was worth bringing up for general discussion on
> emacs-devel for Emacs 28.

See, this plan is not something that was even discussed, let alone
decided upon.  When discussing such plans in private email, please
consider the effect of that on people who didn't participate in those
discussions: they see steps being taken without the goal being clearly
announced and agreed upon.

I think before we make steps in this direction (as opposed to just
switching more and more Lisp files to lexical-binding, where there's
code that could benefit from that), we should actually discuss on
emacs-devel and agree that this is our practical intention in the near
future.

Personally, it is not clear to me that we want to switch to
lexical-binding by default in Emacs 28.  And even if we are, it is
entirely not clear that we need to mark all files with some value of
lexical-binding as a prerequisite to doing so.

> This just seemed like a small and hopefully uncontroversial step

Well, you see that it isn't.