Subject: Re: bug#51143: 29.0.50; Long delay after M-x commandname

From: Eduardo Ochs <[email-masked]>
Date: Tue, 12 Oct 2021 16:05:32 -0300

On Tue, 12 Oct 2021 at 09:56, Lars Ingebrigtsen <[email-masked]> wrote:
>
> But it's run like this:
>
> (while-no-input (execute-extended-command--shorter "find-eev-quick-intro" "find-eev-qui"))
>
> So typing any key should abort it.
>
> I'm not saying we shouldn't make the function shorter, but what's the
> use case where this matters to the user?  You mention it affecting
> `M-x TAB', but as far as I can see, that function is never called when
> doing that?
>
> I tried
>
> M-x debug-on-entry RET execute-extended-command--shorter RET
> M-x TAB
>
> and it wasn't called.  Do you have a complete recipe, starting from
> "emacs -Q", that demonstrates the problem?

Hi Lars,

I commit many mistakes when I type, so I prefer recipes that can be
executed by just typing `C-x C-e' at the right places.

The delay is much longer on emacses with more packages loaded and more
functions defined.

If I try to run `M-x find-eev-quick-intro' by typing

  M-x f i n d - e e v - q TAB RET

in an Emacs28 without -Q then the code in `execute-extended-command'
takes 10 seconds to display the message

  You can run the command `find-eev-quick-intro' with `M-x -q-i'

and _ONLY THEN_ it shows the temporary buffer that
find-eev-quick-intro produces. You're right about this being
interruptible by typing a key - I didn't know that trick - but I'm
used to only choose what to type in those buffers after seeing their
contents, so I'll have retrain myself to type, say, <down>, on such
delays, and for me it's easier to just execute

  (setq extended-command-suggest-shorter nil)

when I start to get bothered by such delays than to retrain myself, so
here's one user - me - and one use case - the one above - in which
this matters... =S

There is a recipe here:

  https://lists.gnu.org/archive/html/help-gnu-emacs/2021-10/msg00261.html

its main line (plus something that I will explain soon) is:

  (execute-extended-command--shorter "find-eev-quick-intro" "find-eev-qui")
  (execute-extended-command--shorter "find-eev-quick-intro" "123456789012")

`execute-extended-command--shorter' only cares about the length of its
second argument, so using "find-eev-qui" in the second argument is
equivalent to using "123456789012".

The discussion about that bug is happening part here and part in
help-gnu-emacs. See:

  https://lists.gnu.org/archive/html/help-gnu-emacs/2021-10/msg00280.html

Cheers,
  E.