From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: if-let/if-let*/and-let/.. Date: Fri, 09 Mar 2018 17:07:44 +0100 Message-ID: <877eql5j1r.fsf@web.de> References: <87mv0crbp3.fsf@web.de> <20180213193126.7ifsybvdx7cnjb4f@logos.localdomain> <87wozgph70.fsf@udel.edu> <87y3jv186x.fsf@web.de> <87sh9t4yrj.fsf@web.de> <877er5e9vx.fsf@web.de> <874llx9riy.fsf@web.de> <87r2oxtff3.fsf@web.de> <87a7vlgqzu.fsf@web.de> <83vae9qf0f.fsf@gnu.org> <87h8psx98a.fsf@web.de> <834llqptbj.fsf@gnu.org> <87d10d5lfl.fsf@web.de> <831sgtw9gi.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1520611615 4327 195.159.176.226 (9 Mar 2018 16:06:55 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 9 Mar 2018 16:06:55 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.91 (gnu/linux) Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Mar 09 17:06:50 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euKXh-00010M-L9 for ged-emacs-devel@m.gmane.org; Fri, 09 Mar 2018 17:06:49 +0100 Original-Received: from localhost ([::1]:46187 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euKZk-0001yV-CX for ged-emacs-devel@m.gmane.org; Fri, 09 Mar 2018 11:08:56 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euKYn-0001wX-1q for emacs-devel@gnu.org; Fri, 09 Mar 2018 11:07:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euKYh-00009J-VV for emacs-devel@gnu.org; Fri, 09 Mar 2018 11:07:57 -0500 Original-Received: from mout.web.de ([212.227.15.3]:50843) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euKYh-00007x-LM; Fri, 09 Mar 2018 11:07:51 -0500 Original-Received: from drachen.dragon ([188.99.169.170]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lex9L-1eJaEo36Nj-00qhTO; Fri, 09 Mar 2018 17:07:45 +0100 In-Reply-To: <831sgtw9gi.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 09 Mar 2018 17:32:45 +0200") X-Provags-ID: V03:K0:IM2MrDJhyTLoOQAwy3VuFr0TAr48lwycZMZTnR2Am96eaJp9gLH a0rXfWWMCmfPmJee5JauixHfWe5/aoH/sXi3ti2tkoXWhOM4opwaqEmr3ajYJsYzauDNvyC m+ETcuK2zTEZa2LsziFtdrw4BeQD+F7o+Y0wusfjB3HCDHmGU/MKDaa9buhUntjNQ9zarlQ uOZnbIxMX3ORyAYJ8MnkA== X-UI-Out-Filterresults: notjunk:1;V01:K0:f/yXD3WGzAI=:r0NKhQK0gK+4smjjkKjfWS lKKK3Jbpa2lWDQn39pPkXdYQyJBF/XgE6rNXKA7GOlqSFqxqkXihmkYaMVAyOJ8646fhkbaLW uw9aQauLVVzAZTYKjViiMtKGyXok8LR6lI3PSaO0d5JhH0uF1J3Ph5CZanHSuEv7FiAqpUUPi yBHNeK1dJ5QTbHA8ODA/JK+tUqJ9+/IYgVuVD49SsKomHMZyFlDzDAjkC3dhg3Hmx87ewMWtU 6e6CS54iDi15JNMKc7uS8m5z0VxvivK0RTx2YuGPPflZsivRVmeYe07hHeCHOcs6f+b+UTICf N+mIW3L0Ss35mufNddqfHzE98zgafsiQDh74+KRXujxzKtmAvawpw7+AmJgK8vmHayNmbLJ0s PbNyAZrrA7RLCvlx26e2u380xz77OCzM2PQ5ge/VscATgTtoQMn6AVCCchx232DSEHRsfxDL6 5bZV8jCiAQ5YLFouaZimysN5ANRtWr9BtyCSi3MQ9Z3a+ug61h41+iGDyCjZsiBXc/Z/ab/Xq L1s5PHLp9bIYcU3kx0sNjm0RHwJi3Ay4l6V2FyCKJbT1uhYQzg+lBMaJLaliEofDhLHhnF1GP mvhiZWKnLjvP+V+pYtyNFKrvbo6kj/IfvDzGPavnu1+3+nacZ8tbvmV/CMvXoTPm2jZNLcFMw 7Gh+a1E3pH061PI4XNAu52pNb84ws8MIck6av7Hebqe/1vJLle5pUcLTuncQx0zlKZCpjr1oT NNG7QRdBJlu2llTlDDbULDAGS6to4HV3juOi04Kv8dhiqdyikpBE3gJzZ7yJfSDRM2S7o/R0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.3 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:223545 Archived-At: Eli Zaretskii writes: > That foo-let did support that case doesn't necessarily mean it has to > support that in the future, nor that we must make that > backward-incompatible immediately. We could simply let foo-let be as > it is today on the release branch and collect more experience before > we make our decision. Does that make sense? This isn't about experience: the old single binding syntax is simply obsolete: (1) (if-let (a (calculate-a)) use-a ...) is the same as (2) (if-let ((a (calculate-a))) use-a ...) The problem is that people still use the syntax (1) in code a lot (since it was once the only valid syntax AFAICT), and `if-let*' interprets a varlist as in (1) in a _different way_. That's why we decided to obsolete if-let. That gave us the compiler warning problem which annoyed many people. We are now going in circles in the discussions for a while. There simply is no optimal solution to that problem. We have to decide what we want, more time won't help. Keeping both names foo-let and foo-let* with very small, illogical semantic differences as we have now would be the worst solution, as Stefan pointed out. My suggested solution (the solution of the commit I had installed and then reverted) was to change `if-let*' for the special case so that it also supports the old interpretation of a varlist as in (1). Then we can make `foo-let' and `foo-let*' synonyms, which is what we want, and also a quite harmless change, since the names `foo-let*' are new in 26.1 and I have checked every individual occurrence of a foo-let* varlist of kind (1) in the Emacs sources and in Gnu Elpa. There are other solutions, of course. I would rather get rid of the old semantic, but that's not possible without creating a large amount of annoyance for a longer time. Michael.