GNU bug report logs - #79305
31.0.50; MODE-set-explicitly change caused regressions in bind-map

Previous Next

Package: emacs;

Reported by: Aaron Jensen <aaronjensen <at> gmail.com>

Date: Sun, 24 Aug 2025 22:19:01 UTC

Severity: normal

Found in version 31.0.50

Full log


Message #47 received at 79305 <at> debbugs.gnu.org (full text, mbox):

From: "Aaron Jensen" <aaronjensen <at> gmail.com>
To: "Stefan Monnier" <monnier <at> iro.umontreal.ca>
Cc: Justin Burkett <justin <at> burkett.cc>, Jonas Bernoulli <jonas <at> bernoul.li>,
 79305 <at> debbugs.gnu.org, Sean Whitton <spwhitton <at> spwhitton.name>
Subject: Re: bug#79305: 31.0.50; MODE-set-explicitly change caused
 regressions in bind-map
Date: Wed, 03 Sep 2025 23:00:51 +0000
[Message part 1 (text/plain, inline)]
On Wed, Sep 03, 2025 at 3:43 PM, Stefan Monnier < monnier <at> iro.umontreal.ca > wrote:

> 
> 
>> 
>> 
>> ;; Common sequence for both tests (identical order):
>> ;; - New buffer
>> ;; - Do NOT touch the per-buffer mode var (it is naturally nil here)
>> ;; - Enable Evil locally (hook fires while per-buffer mode is still nil)
>> 
>> 
>> 
>> ;; Scenario 1: Broken path misses install due to requiring buffer-local
>> mode
>> (remove-hook 'evil-local-mode-hook #'repro-broken-install)
>> (remove-hook 'evil-local-mode-hook #'repro-fixed-install)
>> (add-hook 'evil-local-mode-hook #'repro-broken-install)
>> 
>> 
>> 
>> (with-temp-buffer
>> (evil-local-mode 1)
>> (repro-log "BROKEN installed? %S" (repro-installed-p)))
>> 
>> 
> 
> 
> 
> I don't understand the intention behind this test: a temp buffer is not
> expected to be exposed to the user, so the specific way `evil-mode`
> behaves in it doesn't seem very relevant.
> 
> 
> 
> 

You can try it interactively, but the steps are a little different. If you comment everything below the scenario 1 hooks and then run:

emacs -Q -l scripts/repro-evil-local-override-race.el

Then M-x evil-mode

Then C-x C-f somefile

Then SPC x

It will not invoke the binding.

If you then comment the Scenario 1 hooks and comment the Scenario 2 hooks and try the same thing, SPC x will be bound.

> 
> 
> 
> Also, the `repro-override-mode` is not enabled in that buffer, so IIUC the
> `repro-key` binding should not be active, so it would be a bug if
> 
> 
> 
> (repro-installed-p) to returned non-nil, right?
> 
> 
> 
> 

It's globalized and is enabled via:

(global-repro-override-mode 1)

Globalized minor modes are the problematic thing here.

Aaron
[Message part 2 (text/html, inline)]

This bug report was last modified 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.