GNU bug report logs - #50042
26.3; Post-command hooks slow with M-x commands

Previous Next

Package: emacs;

Reported by: sk <at> nomistech.com

Date: Fri, 13 Aug 2021 11:54:01 UTC

Severity: normal

Found in version 26.3

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Simon Katz <sk <at> nomistech.com>
Cc: 50042 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: bug#50042: 26.3; Post-command hooks slow with M-x commands
Date: Sat, 14 Aug 2021 18:36:21 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> Simpler repro:
>
> (add-hook 'post-command-hook
> 	  (lambda ()
> 	    (let ((inhibit-message t))
> 	      (message "foo: %s" this-command))))
> (display-buffer "*Messages*")
>
> M-x previous-line

[...]

> `execute-extended-command' ends with
>
>         (when binding
>           (with-temp-message
>               (format-message "You can run the command `%s' with %s"
>                               function
>                               (if (stringp binding)
>                                   (concat "M-x " binding " RET")
>                                 (key-description binding)))
>             (sit-for (if (numberp suggest-key-bindings)
>                          suggest-key-bindings
>                        2))))))))
>
> So presumably `post-command-hook' isn't run after that timeout has
> completed.

[...]

> Could we yank this out of the flow and run it from a timer (fired
> immediately) instead?

Stefan, I forgot to put you on the CCs here -- I wondered whether you
had any ideas here.  I think lifting this out of
`execute-extended-command' should be possible -- either by doing
something a la

(run-at-time 0 nil (lambda ()
                     (with-temp-message "The binding is foo"
		       (sit-for 1))))

or making `execute-extended-command' set a variable and do the messaging
from the "command loop" after running post-command-hook.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




This bug report was last modified 3 years and 331 days ago.

Previous Next


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