From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Lexical binding: why? Date: Tue, 28 May 2019 13:58:38 -0400 Message-ID: References: <20190528100850.GA5296@ACM> <20190528134451.GB5296@ACM> <20190528174127.GC5296@ACM> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="30098"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue May 28 19:59:03 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hVgNL-0007jA-Dy for ged-emacs-devel@m.gmane.org; Tue, 28 May 2019 19:59:03 +0200 Original-Received: from localhost ([127.0.0.1]:40481 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVgNK-0003Bb-4s for ged-emacs-devel@m.gmane.org; Tue, 28 May 2019 13:59:02 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:47746) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVgNB-0003BW-6e for emacs-devel@gnu.org; Tue, 28 May 2019 13:58:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hVgN4-0002Ex-PE for emacs-devel@gnu.org; Tue, 28 May 2019 13:58:48 -0400 Original-Received: from [195.159.176.226] (port=42548 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hVgN4-0002DE-IX for emacs-devel@gnu.org; Tue, 28 May 2019 13:58:46 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1hVgN1-0007HX-Ot for emacs-devel@gnu.org; Tue, 28 May 2019 19:58:43 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:8aHXC2uw8bcIucbO1GDmNyCaFmc= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:237117 Archived-At: > I was thinking more of a bug, since fixed, in older versions of the > lexical-binding code. Purely hypothetically at the moment, of course. > But this code is surely not so simple that bugs can be ruled out. Oh, so it's a hypothetical need. > For consistency with other features, which can all be enabled > conditionally, surely lexical-binding should also be conditionally > enablable in a reasonable way. Based on the 7 years of experience since Emacs-24.1 was released, I think YAGNI is a good reason not to bother trying to implement it. Especially since: if the file's content really does work when lexical-binding is nil, then a simple workaround for the lack of this feature is to keep using lexical-binding=nil until the problematic version(s) are not supported any more and you can set lexical-binding=t unconditionally. While I do hope we'll be able to drop support for lexical-binding=nil in some distant future, "distant" is an import characterization. I'd be amazed if this happened before 2030. Stefan