[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Default for lexical-binding
From: |
Richard Stallman |
Subject: |
Default for lexical-binding |
Date: |
Tue, 14 Jan 2025 20:40:36 -0500 |
Eventually the default for lexical-binding should become t. But we
should not rush this. We should be kind to people who have used Emacs
Lisp for decades.
The transient effect of an incompatible change is frustration and
sometimes trouble, so when the change is worth making, we should plan
to do it in a way that minimizes the frustration and trouble. Usually
that means doing things step by step.
The first step, I maintain, should be to warn on loading a file that
does not explicitly specifu the value of lexical-binding. This will
not break anything, but it will remind people to add the variable
setting to their old Elisp files. The warning message should
explicitly suggest that the user do this.
The next release, or perhaps the one after, would be the time to
change the variable's default.
With this plan we will have spared most users any problems caused by
the change. They would still have to do a little work, but that is
ok.
That is where we should leave matters. We should never desupport
-*-lexical-binding: nil-*-. Doing so would require users to make
substantial changes in old programs to get them to run again. The
minuscule saving of space in files would not be worth resulting
hassles. The code and documentation of Emacs would hardly get any
simpler, since dynamic variables would still exist and still have to
be documented.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)