From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.devel Subject: Re: master b72f885: Make dlet work like let, not let* Date: Tue, 3 Aug 2021 17:21:14 +0200 Message-ID: <74C5058D-AF5C-4F1A-8D08-251935A69693@acm.org> References: <83wnp5m9i5.fsf@gnu.org> <9DE2F5D1-A89A-4357-9E46-268F697D8260@acm.org> <837dh2mz57.fsf@gnu.org> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34190"; mail-complaints-to="usenet@ciao.gmane.io" Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 03 17:21:59 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mAwEv-0008hO-VZ for ged-emacs-devel@m.gmane-mx.org; Tue, 03 Aug 2021 17:21:57 +0200 Original-Received: from localhost ([::1]:40068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mAwEu-0001DX-Pg for ged-emacs-devel@m.gmane-mx.org; Tue, 03 Aug 2021 11:21:56 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mAwEO-0000To-3r for emacs-devel@gnu.org; Tue, 03 Aug 2021 11:21:24 -0400 Original-Received: from mail175c50.megamailservers.eu ([91.136.10.185]:54966 helo=mail50c50.megamailservers.eu) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mAwEL-0006uR-Gl; Tue, 03 Aug 2021 11:21:23 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1628004076; bh=44roHCDlK2ep5WhjuFdVwHgQSv0hDavdrVQrWZo0Yn4=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=kHzF54sglf8X8w4bcnIHmIhpAYN95jo8dkm93lNNT1BSRFZlozDykLZzuJbPZcvGc eo5ZiUS8cqGRyzkt6HtpL9/FB1NO32mVEwvKqkanZ/8Rp06Jnlk/YojHVU9Uj3QQj/ fZxi8eVhQCdh8quc7D3PPf2kcBdNHyypSzVNVVH4= Feedback-ID: mattiase@acm.or Original-Received: from [192.168.0.4] (c188-150-171-71.bredband.tele2.se [188.150.171.71]) (authenticated bits=0) by mail50c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 173FLE25014502; Tue, 3 Aug 2021 15:21:16 +0000 In-Reply-To: <837dh2mz57.fsf@gnu.org> X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F18.61095EEC.007C, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=YJ7hNiOx c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8 a=tGBeK0IdJRExPqdkTn0A:9 a=CjuIK1q_8ugA:10 a=_FVE-zBwftR9WsbkzFJk:22 X-Origin-Country: SE Received-SPF: softfail client-ip=91.136.10.185; envelope-from=mattiase@acm.org; helo=mail50c50.megamailservers.eu X-Spam_score_int: -11 X-Spam_score: -1.2 X-Spam_bar: - X-Spam_report: (-1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:271986 Archived-At: 3 aug. 2021 kl. 15.33 skrev Eli Zaretskii : > People out there use Emacs 28 for a long time, so of course there is a > compatibility problem, albeit a smaller one than if we have already > had released Emacs with dlet. Of course, but that's not really a compatibility promise but merely = being nice, which we of course try to be but I'm quite sure that our = esteemed Emacs 28 users understand that we didn't give them an iron-clad = guarantee. The change itself is also low-risk: it's an esoteric function and I've = found no use of it anywhere outside the Emacs tree -- I did search. = Furthermore, even inside Emacs all uses were found to be insensitive to = the let/let* binding semantics. However you do raise a good point. For incompatible changes in official = releases we have etc/NEWS, but nothing really like it for things that we = just broke on master. Perhaps it would be useful to have a document = tracking these things so that everyone doesn't have to read every git = diff to understand what is going on? `etc/NEWS.development`, say? > Could you please tell what were the reasons that led you to make this > change? Because I don't really understand the motivation. Is it just > the name that lacks the '*' part, or is it something else? Well sort of: if someones finds out about a construct named `dlet`, it's = just natural to assume that it binds like `let`, not like `let*`. = (Supporting evidence: two local macros on the pattern `something-dlet*` = were in use. One of the has now been renamed.) There is also the possibility of someone finding it useful to have a = version with `let`-like binding (which is a more fundamental operation, = after all). What would such a macro be called? `dlet*` would be = terrible. Furthermore, the subtle difference in semantics can lead to even subtler = bugs: a dependency that is overlooked may not actually cause trouble = until much later. Consider (dlet ((case-fold-search t) (my-dynamic-variable EXPR) ...something that requires both bindings above...) If the programmer thought in `let` terms and didn't consider the effects = of case-fold-search on EXPR, he wouldn't have thought to test it with = input that would exercise such a dependency.