From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#48584: 28.0.50; Incorrect hook ordering between local and global hooks with depth Date: Tue, 25 May 2021 22:07:45 +0200 Message-ID: <871r9uefvy.fsf@gnus.org> References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32047"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 48584@debbugs.gnu.org To: Philipp Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue May 25 22:08:17 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 1lldLd-00089E-8u for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 25 May 2021 22:08:17 +0200 Original-Received: from localhost ([::1]:50684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lldLb-0007Db-UD for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 25 May 2021 16:08:15 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43644) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lldLO-0007DB-Ka for bug-gnu-emacs@gnu.org; Tue, 25 May 2021 16:08:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:35431) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lldLO-0003e1-2x for bug-gnu-emacs@gnu.org; Tue, 25 May 2021 16:08:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lldLN-0002uK-TQ for bug-gnu-emacs@gnu.org; Tue, 25 May 2021 16:08:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 May 2021 20:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48584 X-GNU-PR-Package: emacs Original-Received: via spool by 48584-submit@debbugs.gnu.org id=B48584.162197327811166 (code B ref 48584); Tue, 25 May 2021 20:08:01 +0000 Original-Received: (at 48584) by debbugs.gnu.org; 25 May 2021 20:07:58 +0000 Original-Received: from localhost ([127.0.0.1]:46977 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lldLK-0002u2-0I for submit@debbugs.gnu.org; Tue, 25 May 2021 16:07:58 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:49298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lldLG-0002tm-Pq for 48584@debbugs.gnu.org; Tue, 25 May 2021 16:07:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: 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=h+JW82ZQ1Xl/tVyVd3q6I71+7+5A38gf41IPvGkYQKo=; b=pHTSXQrFd0rt9DAjs84IZueEF+ m6J8zDEWmKsr3J/oCC3BaWmfi+GGno0yVX/aqOfDBLs/6z0zoHf7DxnpkD+LOYmcHFcqPAFTMohbS uQfzdVKn7GIIgT0j/+QQYvJz0Poz2c90Bw4v7TBt8Nfqnr5bcKOidGS3R9SQ+KP2ri9o=; Original-Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lldL8-0004fK-15; Tue, 25 May 2021 22:07:48 +0200 X-Now-Playing: Satomimagae's _awa_: "Hono" In-Reply-To: (Philipp's message of "Sat, 22 May 2021 13:21:21 +0200") 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:207251 Archived-At: Philipp writes: > Evaluate these forms: > > (add-hook 'my-hook (lambda () (message "Outer")) 20) > (with-temp-buffer > (add-hook 'my-hook (lambda () (message "Inner")) 10 :local) > (run-hooks 'my-hook)) > > Then in the *Messages* buffer, "Inner" appears *after* "Outer" even > though the local function's depth is lower than the global one's. Looking at the code, the order is computed by `add-hook' by stashing data in the symbol plist of my-hook, but the hook function is then pushed onto either the local or the global version of the variable. So the ordering isn't global -- it's one ordering for the local and one for the global, and `run-hooks' doesn't say anything about what order the local and global values are run in? (The global value is run when `t' appears in the local value.) So... I don't see any obvious way to fix this, and perhaps we should just document that the order is undefined when you have both local and global hooks with the same name. Any opinions? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no