Subject: Re: bug#68568: transient.el interns potentially enormous symbols as commands

From: João Távora <[email-masked]>
Date: Sun, 21 Jan 2024 08:10:33 +0000

On Sun, Jan 21, 2024 at 7:29 AM Psionic K <[email-masked]> wrote:
>
> > long descriptions of infix commands
>
> That's a user choice btw.  Anyone can make long symbols through a

Not sure what you mean by "user".  I'm a "user" of GPTel, but
I didn't make those long description.  GPTel uses those descriptions
and, I think, reasonably.

> variety of means that are out of control of any package.

Sure, but that package shouldn't gratuitously have that choice
(questionable as it may be -- I think it's not) wreak havoc everywhere
else in Emacs.  This is what happens with transient's interning
of such symbols

> definitely take alternative routes to avoid creating long symbols in
> transient.

I'd rather not bother transient-using packages with code complications.
GPTel's interface is fine as it is.

> 200 and how many instances?

About 8 or 9, all transient's.  Doesn't matter because the greediness of the
flex matching algorithm, which was designed for short symbols,
eventually picks up on a pattern which is highly likely to appear in
the extremely long tail of the enormous symbol

So my usual searches like M-x vc SPC always where I expect to see
"vc" commands turn up some silly transient command, useless and
unwanted in that context.

> > transient.el works just fine with make-symbol instead of intern.
>
> It sounds like you have a patch ready for the upstream.  Bon appetit:
> https://github.com/magit/transient

I take it you still can't think of a good reason why those symbols
should be internet.  OK.  Created a PR. I hope this gets fixed
quickly over here at the downstream.  This is not something easy
to monkey-patch around.

João