From unknown Sun Jun 22 07:59:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#51620: add-hook repeatedly adds same function into hook--depth-alist Resent-From: Filipp Gunbin Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 Nov 2021 23:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 51620 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 51620@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.163615480728008 (code B ref -1); Fri, 05 Nov 2021 23:27:02 +0000 Received: (at submit) by debbugs.gnu.org; 5 Nov 2021 23:26:47 +0000 Received: from localhost ([127.0.0.1]:47618 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mj8bf-0007Hg-9l for submit@debbugs.gnu.org; Fri, 05 Nov 2021 19:26:47 -0400 Received: from lists.gnu.org ([209.51.188.17]:44792) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mj8bd-0007HY-Bi for submit@debbugs.gnu.org; Fri, 05 Nov 2021 19:26:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39882) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mj8ba-00043r-VD for bug-gnu-emacs@gnu.org; Fri, 05 Nov 2021 19:26:43 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:34077) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mj8bY-0001ib-My for bug-gnu-emacs@gnu.org; Fri, 05 Nov 2021 19:26:42 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 0E73C3201DA0 for ; Fri, 5 Nov 2021 19:26:36 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 05 Nov 2021 19:26:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= from:to:subject:date:message-id:mime-version:content-type; s= fm1; bh=ZdqU6VqtO8zJ6c6pgla2FW1Ov/GwxSRzw5LKvzN42N8=; b=ILnx0jy8 4GX7pEMIo3Mdr68JxGIxVUSNf9OYvY2v6J1g7mW4xIncTTG5QIqzD4c7LQ9orJVO 5JL1Eamm7yhqx+uBS6bO48DEjxFGmJX6GGrd6eNenXH10RYc55tITY0aBnWwNiJM mpjn+9V7T+t/aZErEF5XOKBsffpVaRcq0sBlHgwYL3jKLgylS1bQQCEzNCn3Taog u/aJSRLrqVwVJ5IvgFRoGlIIwQa2cH9Ge1Z3X6Gp4yoLov0gryqXoE4XtCTwVPra +PxC4roO0rKp3HJmHFiwOV3sgKspc7MwpTAigtGhvkLfjeHi5ORJt501jWL7KuvV ctqAPqtqGq9+Jg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=ZdqU6VqtO8zJ6c6pgla2FW1Ov/Gwx SRzw5LKvzN42N8=; b=EVx/l0PvBAZ6wU5UP9y5R2QAQ0Y8zbi3Yobb+C657Lz6P JD4DRQTkx87CIn2Wt62dBQ/jiXxZcrj/XiLljeMJaP170Qc/E0GAYOqwq+qIcWkU u4961ng9OM5MOAmhxLGd72G9ZSqLyOS3sy8vL/y4NySFETnkAergRsvDbdb9VnNH J4TSoa7saKB+wDxkGP1gcyaEkU51pg4roDdbz0iXjtFgf+meabtYSGvyvHMmeZwO ihU0cbh1j4ktOCvu77kry61nN5yeryjEM1xXWhRcChEDOrh/lCV0+iH2Da1L1XXE 1gE/HrRFGfB7wATLb+YZ3TiMricBXLi8uIvVGuwvg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrtdejgddtlecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufgffffkgggtsehttdertddtre dtnecuhfhrohhmpefhihhlihhpphcuifhunhgsihhnuceofhhguhhnsghinhesfhgrshht mhgrihhlrdhfmheqnecuggftrfgrthhtvghrnhepteekgffgjedujeekveehudetffduff ejuedtveevfeeuvefgieeiueeuleekuddunecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomhepfhhguhhnsghinhesfhgrshhtmhgrihhlrdhfmh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Fri, 5 Nov 2021 19:26:35 -0400 (EDT) From: Filipp Gunbin User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (darwin) Date: Sat, 06 Nov 2021 02:26:32 +0300 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=64.147.123.20; envelope-from=fgunbin@fastmail.fm; helo=wout4-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) I have the following case: in my "javaimp" package I have code which scans java files "in the same project": (defun javaimp--get-directory-classes (dir) (when (file-accessible-directory-p dir) (seq-mapcat #'javaimp--get-file-classes (seq-filter (lambda (file) (not (file-symlink-p file))) (directory-files-recursively dir "\\.java\\'"))))) There're some perfomance problems to fix, so I started with measuring time via M-x benchmark. Surpisingly, I saw that with each run (in a large project) the time increased by 8 seconds or so. Profiling lead me to add-hook and the fix made in bug#46326. In short, javaimp--get-file-classes visits file in temp buffer and uses syntax-ppss to parse Java code. On a large project, this is done many times, and next invocation of javaimp--get-directory-classes does everything again (this is what I wanted to fix, as well as look at fewer things during parsing). So I stumbled into problem which perhaps goes unnoticed in normal file editing, where you don't process tens of thousands of files with syntax-ppss (which calls add-hook) repeatedly. For reference, syntax.el does this: (add-hook 'before-change-functions #'syntax-ppss-flush-cache ;; We should be either the very last function on ;; before-change-functions or the very first on ;; after-change-functions. This is what I get when I run my test: (length (get 'before-change-functions 'hook--depth-alist)) => 58063 (length (get 'before-change-functions 'hook--depth-alist)) => 65303 All elements are `(syntax-ppss-flush-cache . 99)'. A simple reproducer: - $ echo 'print("Hello world!");' > /tmp/hello.py - emacs -Q - C-x C-f /tmp/hello.py - M-: (length (get 'before-change-functions 'hook--depth-alist)), observe number N - revisit the same file via C-x C-v - M-: (length (get 'before-change-functions 'hook--depth-alist)), observe number N+1 - on each revisit the number increments Next, to the code. There was this change in the patch for bug#46326: > (when (or (get hook 'hook--depth-alist) (not (zerop depth))) > ;; Note: The main purpose of the above `when' test is to avoid running > ;; this `setf' before `gv' is loaded during bootstrap. > - (setf (alist-get function (get hook 'hook--depth-alist) > - 0 'remove #'equal) > - depth)) > + (push (cons function depth) (get hook 'hook--depth-alist))) (Probably the comment and the first test in "or" should have been removed with the change, but I'm not suggesting that because I'm suggesting restoring setf) setf with #'eq test would be a better option than push, because it won't repeatedly add the same (as in "eq") element, if we reach this code somehow. In our case we reach this code for each new buffer, because the check is: (unless (member function hook-value) and `before-change-functions' is of course buffer-local. So we keep pushing elements into (get hook 'hook--depth-alist) for each new buffer. And, unrelated to this, I fail to understand why copy-sequence is here in the code further down in add-hook, could someone please explain? (setq hook-value (sort (if (< 0 depth) hook-value (copy-sequence hook-value)) I suggest this one-liner, which fixes the problem for me, however I certainly need someone (Stefan M.?) to look at this. TIA, Filipp diff --git a/lisp/subr.el b/lisp/subr.el index 8ff403e113..2b8b6deeb0 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1868,7 +1868,7 @@ add-hook (when (or (get hook 'hook--depth-alist) (not (zerop depth))) ;; Note: The main purpose of the above `when' test is to avoid running ;; this `setf' before `gv' is loaded during bootstrap. - (push (cons function depth) (get hook 'hook--depth-alist))) + (setf (alist-get function (get hook 'hook--depth-alist) 0) depth)) (setq hook-value (if (< 0 depth) (append hook-value (list function)) In GNU Emacs 28.0.60 (build 4, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.6 (Build 20G165)) of 2021-11-05 built on fgunbin.local Repository revision: d8c9a9dc23e0c6f38c5138cb8fbb4109a5729a35 Repository branch: emacs-28 System Description: macOS 11.6 Configured using: 'configure --enable-check-lisp-object-type --with-file-notification=no' Configured features: ACL GLIB GNUTLS LCMS2 LIBXML2 MODULES NS PDUMPER PNG RSVG THREADS TOOLKIT_SCROLL_BARS XIM ZLIB From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 05 20:02:12 2021 Received: (at control) by debbugs.gnu.org; 6 Nov 2021 00:02:12 +0000 Received: from localhost ([127.0.0.1]:47671 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mj99w-0001wY-8Q for submit@debbugs.gnu.org; Fri, 05 Nov 2021 20:02:12 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:56107) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mj99u-0001wO-Bb for control@debbugs.gnu.org; Fri, 05 Nov 2021 20:02:11 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 8A7253201CBE for ; Fri, 5 Nov 2021 20:02:07 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Fri, 05 Nov 2021 20:02:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= from:to:subject:date:message-id:mime-version:content-type; s= fm1; bh=J9dMSZSLM8R/6aiG+vFfb2R6jd3Pl3JWreE2Wmm8CkQ=; b=FQJVlK3D c5WO2+yRHcqaEhUKJVsHLOkxrl2lP8AfHnNmc2wbeV+/d2jM7uiGJXjlnczTmlmZ 52mckzdVe9pUgPXilj1FLHrM47h9ZEer/ZwQ3swTklKj0PAzIdPT9QVs7Rn0+BZY f23DBjn7hdtTRZSS8irY2eQY9NB3CUxXQB+x/tanUKoD9vFUu0mA8YpANUOWRtSk nTggJN/c7P0D9MAzQUeTIPMFKIxEJTHcKwNnurSHJdUcAUKUFJYyNgeBx++VKFgU 8xHXokkpBGjv1jjrgIkTOGzYApTEM9G2YBhiyD8ChY/quHn+gt9GVMr0hfnUwC78 4FM+mHfmIjKNlQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=J9dMSZSLM8R/6aiG+vFfb2R6jd3Pl 3JWreE2Wmm8CkQ=; b=bzeOldHPey0JSH17zLkiXx9YiOYWWecUMBE51UzQOJrwO 06UQzn7jDlSp+hE5ieiKxWm7tbx1ECBmV6PE9wc0YDV/efBXO4Rde9Bot2nyBIoA 8emrdeaX+ZaHwrfM14FemkChALc+D0nj5L9sxl77tKZavyuWYfpY5s9W3KF4LhqP YZZpKnNjLnX3X46C+C0AhkoQz4CAIRVqPQnAFxS28HwX7eGH1N90YRf6tJOuGhmI Y9Ye7d0PsOh/vGL/f0Q3WsYHeOGH4Fj6tBHLOKwqvcCENTghWaE6z6MsU6NaWLTb Sd1r7sbWme+flUBLRPgyWMXRhx8f5n1TUG1AD6CkA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrtdejgdduhecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfggtgesthdtredttddttd enucfhrhhomhephfhilhhiphhpucfiuhhnsghinhcuoehfghhunhgsihhnsehfrghsthhm rghilhdrfhhmqeenucggtffrrghtthgvrhhnpedvgeeifffgueeugfeuieehueefiefgve evvdegveelleeugfejhfejgfevhfetudenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehfghhunhgsihhnsehfrghsthhmrghilhdrfhhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Fri, 5 Nov 2021 20:02:06 -0400 (EDT) From: Filipp Gunbin To: control@debbugs.gnu.org Subject: control message for bug #51620 Date: Sat, 06 Nov 2021 03:02:03 +0300 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) tags 51620 + patch quit From unknown Sun Jun 22 07:59:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#51620: add-hook repeatedly adds same function into hook--depth-alist Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Nov 2021 00:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51620 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Filipp Gunbin Cc: 51620@debbugs.gnu.org, Stefan Monnier Received: via spool by 51620-submit@debbugs.gnu.org id=B51620.16361576008464 (code B ref 51620); Sat, 06 Nov 2021 00:14:01 +0000 Received: (at 51620) by debbugs.gnu.org; 6 Nov 2021 00:13:20 +0000 Received: from localhost ([127.0.0.1]:47679 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mj9Ki-0002CR-BR for submit@debbugs.gnu.org; Fri, 05 Nov 2021 20:13:20 -0400 Received: from mout.web.de ([212.227.15.14]:36587) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mj9Kf-0002CD-ST for 51620@debbugs.gnu.org; Fri, 05 Nov 2021 20:13:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1636157584; bh=a0R4WYEO9ABnqnLGwNBI7Zc+q2KKvBmUAA3EPcMWbnE=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=Lb1eBHyRHRbECdCDtQns5w1U92RN1QFFvlOv3zsV3x16kxX7XqHAtwU+Fdub9mFkB auqXrNvx7Hx0r/nOtiuqAB0TszzuaQolxHn31Wlhw/1wnh92syFFipwbJzhNC/q7IE Cp9d8w+b1epPfdZFgJ1pjjgZV5VczKc6nkcgm5LM= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([92.208.225.87]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M8C07-1mnqQF0Gqx-005PTS; Sat, 06 Nov 2021 01:13:04 +0100 From: Michael Heerdegen References: Date: Sat, 06 Nov 2021 01:13:02 +0100 In-Reply-To: (Filipp Gunbin's message of "Sat, 06 Nov 2021 02:26:32 +0300") Message-ID: <87r1buf8fl.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:zayhWX4DuSAHrPRz3gO9eyyRWWL07oLatuDeQQvKGXbme1icfw3 wfgh5TBIoe9dQ+7KhCeXHCHb9wuYXOtjOypnODnjA8rapjS2LZlHBIHTedGHWaPj/B/dSUo j97Gc6gtQq1JaA3vAJHt7AA7kLV5lqTEmAK83PEZgXPXI4fU38amjCw2nBOtzTbes5uMnnz RDGws++d2n4fvxXtnYKlQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:XQbggXB0z4w=:6EZk9HuzXiR9NKAyNrCe6M 1mJxXlE7Rt6r8KzDDDkQ9BpSul9mNBw6UzChSLgEb4rWSjW0gTv4PNirJgqHSw352J1+/XwbO XkvKPz3V7RiS9e8YFrSZ0EmrbbvXJ5tnPJuVqrztTjmGb8GvMNBTvSndDDSoLmbo9W0UmK4xG WR0m9WEVieWJc9K2tJcTVkJh/wOuJdRsyS9zo6OQPDFdX+veA6npyzlLipGdWh7qvfRrmj+cb iDsWziBHEWaROu7NgOmz0OpqoYupV5q/SLUCucxZMta5eFgQZkfi+A2kDJDQHs7BUNmAv7idl C/zr+P24Cfu89wb9uIgr8FtymFvmR2dLkazvmtaZbvBhFBlxnJxehJNHfAGvwEBndQFSixaUH Tk4Zv9K1l3t1y22u48LWpTBkoDb8/b8INnbzXu2RBIKkdLFna06ijZG/2o6VWDOujj3ksVqBy bWBBOOnLzKOQhtA+nJTKN5p2UfcCl3yXt804he6sD55gIC16imTfj/WK58KM/g6MDyoZpJ2Hp wBW6wxnb/oOctPeZL+RfX/8lFUACMnVXGSJl7G+GhxYtQeDLVsb785r0b/JQO3fKJ1kB82grb hXP/hYy/hXQ6hdV6FPPL28TH+VEt6eYELAmInxwwd5JRoZvVH0xVxMKCUPhxVsDP+8vKHXm1A 8JQ/hTKGAgCddZxdOkcRCozkyrUR92cslvWDHM9/6O2DtCEnk215GkuXe91k+5ZM9Q4HSes3x 7CrCynX4bK94Y/qSgCM4Y/Zf39GmYCMGNGOYWklJ1pm6pGgqm9Th3kZjXC97G/i+ZFP1pO0Ef xuMvSx9za2ijlop9nQU0msFxYvpZHJ49KSRB+5e6xeKF0ayV37Xoqvty6UD2cPyqZ5XOpO2O2 RBe4M5rANYETSLbPMVQVhOmj4YmmxwlHU4DJpOhKVM/CD+gm3knRmrzmZMUoUSqoGz8e/1S0C uxGtPEShYQoCiIt9kM2uGmhgdzeP5UDPg8OkJjM03nsDlDZ1u8SiPXiYk9dJoMMM/Ih4/f6VO /0u2+XS2kPZhrBsoY55oHWCrD0+qNctgiFJ5kslyqBXvDc90a57Ap+1lD56WttkcLfRgp+YV9 7Jjv8f/pMh1+iQ= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Filipp Gunbin writes: > diff --git a/lisp/subr.el b/lisp/subr.el > index 8ff403e113..2b8b6deeb0 100644 > --- a/lisp/subr.el > +++ b/lisp/subr.el > @@ -1868,7 +1868,7 @@ add-hook > (when (or (get hook 'hook--depth-alist) (not (zerop depth))) > ;; Note: The main purpose of the above `when' test is to avoid running > ;; this `setf' before `gv' is loaded during bootstrap. > - (push (cons function depth) (get hook 'hook--depth-alist))) > + (setf (alist-get function (get hook 'hook--depth-alist) 0) depth)) > (setq hook-value > (if (< 0 depth) > (append hook-value (list function)) So the function would still be compared using `eq' but we would avoid to add dups of equal conses? Looks reasonable to me -- Stefan? TIA, Michael. From unknown Sun Jun 22 07:59:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#51620: add-hook repeatedly adds same function into hook--depth-alist Resent-From: Filipp Gunbin Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Nov 2021 20:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51620 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Michael Heerdegen Cc: 51620@debbugs.gnu.org, Stefan Monnier Received: via spool by 51620-submit@debbugs.gnu.org id=B51620.163623072924194 (code B ref 51620); Sat, 06 Nov 2021 20:33:01 +0000 Received: (at 51620) by debbugs.gnu.org; 6 Nov 2021 20:32:09 +0000 Received: from localhost ([127.0.0.1]:50890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjSMC-0006IA-Jp for submit@debbugs.gnu.org; Sat, 06 Nov 2021 16:32:08 -0400 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:33913) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjSM9-0006Hy-Du for 51620@debbugs.gnu.org; Sat, 06 Nov 2021 16:32:07 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id F2C4232007CF; Sat, 6 Nov 2021 16:32:02 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Sat, 06 Nov 2021 16:32:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= from:to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-type; s=fm1; bh=zTFfZMmkiC254StSq+Yf90IjAE iMjxbDixcq2LBGwxU=; b=DYRdm9TkqCn64AlQZsoim5R6Dfd1XKk5+pKCsND1RR iIVhFPd8YYKyNPC1IvdiNSUNoCz9i52oPZi34f6nMoSJ2iPnEIJrgYCFAOcLKgTO 2GIGf9poG8MnHKc8kn2aWVzllB+Sv5l7xt8c5oZN5siN69N0P3Z+md7+bvazsIAe hq+G9TZiShGjbcI3xHZ7tsa9qx7PK5jJ02m8b3G0U1BHyEJSWoM14XnaoagSZaXC YExq5vxRrtaECMyWdgAxIKYxstzCX0RIitqkTkQothzwVBNpRfTKvJ+xeDaUQwTw uXSZ898BjyeaJWgJdoRNmZLHeDB46uadJcAVYdv+l/2g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=zTFfZM mkiC254StSq+Yf90IjAEiMjxbDixcq2LBGwxU=; b=mxLQkmGh4wv11K0+n/qJ5s C96P+kxT5SdZQrb+l3KyE42uJjRxVOoepTjrYlFIMnfa2NwgwDPjhN7DFXq9o8Ff iEi9QmD46Haz9QnGqJr69eVtDvFVmFxMK1M1LrCJPF99QCyarPsDvXDhXd2NMK73 Jmnvlm9yIRcHa779MELUTP6lj33tKF90NAUjl0yRVzGW0XCrIjAxF3oh515F4cOz 319R0kdQBFfoO6+YH1IjXIszeGElJImTd6RI4CDkH1EAKRvGKXJmbC9c6D9pMlbM 0WtF14sHHSqhHK5fzp0pguimTtUSxZxK6UtaY6YDjMBh9nJx+bgW/P+6zXDTK17w == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrtdekgddufeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufgjfhgffffkgggtsehttdertddtredtnecuhfhrohhmpefhihhlihhp phcuifhunhgsihhnuceofhhguhhnsghinhesfhgrshhtmhgrihhlrdhfmheqnecuggftrf grthhtvghrnhepvdevkeffvdeuvefhuddtjeehkedvueefveettddtveduudfgieffieev ieevhfdtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epfhhguhhnsghinhesfhgrshhtmhgrihhlrdhfmh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 6 Nov 2021 16:32:00 -0400 (EDT) From: Filipp Gunbin In-Reply-To: <87r1buf8fl.fsf@web.de> (Michael Heerdegen's message of "Sat, 06 Nov 2021 01:13:02 +0100") References: <87r1buf8fl.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (darwin) Date: Sat, 06 Nov 2021 23:31:58 +0300 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 06/11/2021 01:13 +0100, Michael Heerdegen wrote: > Filipp Gunbin writes: > >> diff --git a/lisp/subr.el b/lisp/subr.el >> index 8ff403e113..2b8b6deeb0 100644 >> --- a/lisp/subr.el >> +++ b/lisp/subr.el >> @@ -1868,7 +1868,7 @@ add-hook >> (when (or (get hook 'hook--depth-alist) (not (zerop depth))) >> ;; Note: The main purpose of the above `when' test is to avoid running >> ;; this `setf' before `gv' is loaded during bootstrap. >> - (push (cons function depth) (get hook 'hook--depth-alist))) >> + (setf (alist-get function (get hook 'hook--depth-alist) 0) depth)) >> (setq hook-value >> (if (< 0 depth) >> (append hook-value (list function)) > > So the function would still be compared using `eq' but we would avoid to > add dups of equal conses? Looks reasonable to me -- Stefan? Yep, that was the intent. From unknown Sun Jun 22 07:59:43 2025 X-Loop: help-debbugs@gnu.org Subject: bug#51620: control message for bug #51620 References: In-Reply-To: Resent-From: Filipp Gunbin Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 11 Nov 2021 16:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51620 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: control@debbugs.gnu.org Cc: 51620@debbugs.gnu.org Received: via spool by 51620-submit@debbugs.gnu.org id=B51620.16366497346330 (code B ref 51620); Thu, 11 Nov 2021 16:56:02 +0000 Received: (at 51620) by debbugs.gnu.org; 11 Nov 2021 16:55:34 +0000 Received: from localhost ([127.0.0.1]:42109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlDMM-0001e1-7V for submit@debbugs.gnu.org; Thu, 11 Nov 2021 11:55:34 -0500 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:41727) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlDMK-0001do-0T; Thu, 11 Nov 2021 11:55:32 -0500 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 735855C00B9; Thu, 11 Nov 2021 11:55:31 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Thu, 11 Nov 2021 11:55:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= from:to:cc:subject:date:message-id:mime-version:content-type; s= fm1; bh=0gvx5E13pgwacALGrLPvjLggOa0BnpWshL+U2LlY88w=; b=gOSELbUr GIrji3eLpzsPQk9NTlOkQhrYUnDS7XEqartp16drnx2lUGPCtJZ89xtCtp7AC26d 6S3ZxRrs4QJidGW9k/TF25slkssByyFBXvaZUYMiJGcea1LVYxxvsIxiy2iItf1+ ztacjPLSE0eYbNsMcuar+jw9AF1fGLtPQn6XN7MkkYJjwOFfyAZMjR5bEEvmmb4Q oB/1TrKaDSY58HuO/SepY56dddWn7ZXO2YyvVRGsdRSOpiJkPZ8xaROWjr1aYcfT 5tgDBAUdyZW3k5eXR14kSn/gCQkzguTGoy1onySVORMUkRYzZqhPGljiVhUmPKoY PKeQRO4QJT5fSw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=0gvx5E13pgwacALGrLPvjLggOa0Bn pWshL+U2LlY88w=; b=KKmDimv/g2BRCBFCvALCivow7GdRj4v6Q8ue92u7iwlce zK2aw0VoKfBdtSooPPoyK3Uyj6PlJAUFY/EcCMhOgpB1TPuu5hMz7OaJgRkvfhpQ lbwr02mllStuUWCZ5EZAFmiJvdCAohxTby3+ja6/73UACevY7f2ABIaCkZEaofaW pjyLYBJdvReQJN9wCcl9a4XfeplYs0qJZMu4ZZYv0v/WaMyzaX4ZYwugkIXJfyUd MdXombeYgiEw1OLZ022NonPSb4V71EKmLdakb8GMfQgQXFtUnTbCjkpVstW5W1NK 6h20L+TNo6WdJMprroomtADNXT1mkCMDJWPhGuekA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrvddugdelgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfggtgesthdtredttddttd enucfhrhhomhephfhilhhiphhpucfiuhhnsghinhcuoehfghhunhgsihhnsehfrghsthhm rghilhdrfhhmqeenucggtffrrghtthgvrhhnpedvgeeifffgueeugfeuieehueefiefgve evvdegveelleeugfejhfejgfevhfetudenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehfghhunhgsihhnsehfrghsthhmrghilhdrfhhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 11 Nov 2021 11:55:30 -0500 (EST) From: Filipp Gunbin Date: Thu, 11 Nov 2021 19:55:28 +0300 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) close 51620 29.1 quit I've now pushed it in master, and closing this bug.