From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Mendler Newsgroups: gmane.emacs.bugs Subject: bug#47992: [External] : bug#47992: 27; 28; Phase out use of `equal` in `add-hook`, `remove-hook` Date: Sun, 25 Apr 2021 12:33:17 +0200 Message-ID: <3e43f9f4-68c1-a797-8bd6-8394d5512ac1@daniel-mendler.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30527"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "47992@debbugs.gnu.org" <47992@debbugs.gnu.org>, "jakanakaevangeli@chiru.no" To: Drew Adams , Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Apr 25 12:34:12 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1lac5c-0007pa-EQ for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 25 Apr 2021 12:34:12 +0200 Original-Received: from localhost ([::1]:56762 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lac5b-0000dt-4n for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 25 Apr 2021 06:34:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lac5S-0000dn-Vn for bug-gnu-emacs@gnu.org; Sun, 25 Apr 2021 06:34:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58745) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lac5R-0000LJ-RB for bug-gnu-emacs@gnu.org; Sun, 25 Apr 2021 06:34:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lac5R-0004TJ-Mq for bug-gnu-emacs@gnu.org; Sun, 25 Apr 2021 06:34:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Daniel Mendler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 25 Apr 2021 10:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47992 X-GNU-PR-Package: emacs Original-Received: via spool by 47992-submit@debbugs.gnu.org id=B47992.161934681317151 (code B ref 47992); Sun, 25 Apr 2021 10:34:01 +0000 Original-Received: (at 47992) by debbugs.gnu.org; 25 Apr 2021 10:33:33 +0000 Original-Received: from localhost ([127.0.0.1]:42058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lac4y-0004SZ-Pd for submit@debbugs.gnu.org; Sun, 25 Apr 2021 06:33:33 -0400 Original-Received: from server.qxqx.de ([178.63.65.180]:44283 helo=mail.qxqx.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lac4v-0004SI-EE for 47992@debbugs.gnu.org; Sun, 25 Apr 2021 06:33:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de; s=mail1392553390; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=YptK6Q+cYbrxG/JAx49OTqjHcZBcmZfl4ndbpbN/8bo=; b=Sz6nmKLyPoa5wPSA6XqwZNKymG oLfs7/6/JYI+ODuYszp5/Q6kTv24DfawJsBsl0R0JrjYVwj50x4wv+dZWBMdse4hByRezE9OhEiZ8 fLLQTEFvhamV/4RgJKjO5Aiw2SCM+ftr9zEkDs9Be+zEdK99GeMkP6WVMWggj3eink3o=; In-Reply-To: Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:204858 Archived-At: On 4/25/21 6:57 AM, Drew Adams wrote: > As for my opinion on the proposed change: I haven't > seen a good argument for using `eq' instead of `equal' > to test for equality in `add|remove-hook' (in the code: > `memq' instead of `member'). > > I gave good arguments for continuing to use `equal'. > Emacs users use the Elisp interpreter interactively, > and they do use lambda forms with `add|remove-hook', > even though that's not a great idea. `eq' doesn't > cut the mustard at all, for such use. > > Barring a good argument for using `eq', I'm not in > favor of such a change. Given a good argument, I > might change my mind. Clear enough? Drew, it seems to you don't read the arguments which have been made and just stick to your opinion of "not applying changes". You argue that `equal` is better since the user can then add/remove literally written lambdas interactively. We both agree that this is not a recommended or reasonable usage of the hook functionality. I argue that `eq` is better if you use `add/remove-hook` in a perfectly valid way, adding cyclic/large closures programmatically. This is an accepted practice, since we add closures in `minibuffer-with-setup-hook` and at other places. Furthermore it is a significantly more important use case than the interactive use case you put forward as argument. Now we can stay with the borked semantics of `add/remove-hook` and continue to use `equal` to cater for your example and require all the reasonable programmatic usages of `add/remove-hook` to go through the totally unnecessary symbol indirection. I don't see how your argument holds up here. Daniel