emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Declaring 'lexical-binding: nil' obsolete


From: Po Lu
Subject: Re: Declaring 'lexical-binding: nil' obsolete
Date: Sun, 26 Sep 2021 09:20:54 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Stefan Kangas <stefan@marxist.se> writes:

> I'm sure that we will review those parts of the documentation in due
> time.  But the "blanket" (not sure why you add this word) obsoletion is
> precisely about discouraging the use of the 'lexical-binding:nil'
> dialect of Emacs Lisp.

Obsoletion is not discouragement!  Making something obsolete puts it on
the path to removal.

> If you read my proposal carefully, I hope it is clear that this
> obsoletion mostly just entails our strong recommendation.  Support for
> 'lexical-binding:nil' will need to be there for the foreseeable future.

Yes, but why would it need to be the subject of a byte-compiler warning?
Adding a warning to the byte compiler will only cause more confusion,
because the documentation doesn't suggest lexical binding in particular.

New authors of third-party code who have learned Emacs Lisp from the
Eintr will be even more confused, because the byte-compiler is directly
behaving in a way inconsistent with the documentation they learned from.

Meanwhile, if the byte compiler is left alone while the documentation is
updated to reflect the new recommendations, the situation will not be as
confusing.

> I do not include removing this feature in the plan I propose, and this
> is not by accident.

But why does the NEWS entry you have proposed include:

    Third-party code will need to be changed to support
    'lexical-binding:t' to run properly on Emacs in the future.

> (Note that we already have a warning in the mode-line.)

Perhaps it should be made more noticable, at least the first time it is
shown?  The way it is now, most people will consider it a warning, only
an indicator.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]