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

From: Stefan Kangas <[email-masked]>
Date: Tue, 24 Nov 2020 13:35:22 -0800

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.

This just seemed like a small and hopefully uncontroversial step, along
the lines of: "there is no reason to not use "lexical-binding:t" in
these files, so we might as well add it now, which will make the
transition easier in the future".

I would be interested in hearing what you think about the above.