emacs-devel
[Top][All Lists]
Advanced

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

Re: Most of Elisp lacks lexical-binding: t


From: Stefan Monnier
Subject: Re: Most of Elisp lacks lexical-binding: t
Date: Tue, 05 Feb 2019 09:00:28 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

> And that's not just for Emacs core -- there is a massive quantity of
> Elisp in the ecosystem at large which was not written for lexical
> binding, and still works absolutely fine in current versions of Emacs.
> Such libraries might well no longer have a maintainer (but at present
> not be in any need of one).

Yup.  The path to getting rid of lexical-binding=nil will be long.
Also, in my experience, the older the package the more likely it is to
rely in tricky ways on dynamic scoping (by which I mean that some uses
won't be caught by the compiler warnings).

This needs to be done step by step and there will be many steps.
I proposed some steps a year ago, BTW.  See bug#30078.

> The risk seems rather high to me.  I'm not sure the reward would be
> worth it?  (When the reward would seem to be nothing more than library
> authors being able to omit -*- lexical-binding: t; -*- which, even if
> it looks untidy, isn't exactly an onerous requirement).

For me the issue is that those two settings define two slightly
different languages, and that increases complexity for newcomers (and
for old hats as well: I still regularly find myself writing code that
assumes lexical-binding is non-nil and using it in a context where that
assumption is not valid).


        Stefan




reply via email to

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