bug#81514: 32.0.50; Eglot messages progress reporter shows errors
Stéphane Marks <[email protected]> Wed, 5 Aug 2026 16:08:21 +0200
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <CAN+1HbrXid7ExRHVTKWJ3Dn4KHiQ81H_SkpwSK2Xx61nNZDWSw@mail.gmail.com> |
On Wed, Aug 5, 2026 at 10:05 AM Sean Whitton <[email protected]> wrote: > Stéphane Marks [05/Aug 3:56pm +02] wrote: > > On Wed, Aug 5, 2026 at 7:34 AM Sean Whitton <[email protected]> > > wrote: > > > >> João Távora [05/Aug 12:19pm +01] wrote: > >> > On Wed, Aug 5, 2026, 12:15 João Távora <[email protected]> wrote: > >> > > >> >> Afaik, while Eglot had its shortcomings in its usage of progress > >> >> reporters, now hopefully fixed, the real trigger for this regression > >> was a > >> >> backward incompatible change in progress reporters. Presumably > Stéphane > >> 's > >> >> patch addresses that. If you don't install it, it could be that other > >> Elisp > >> >> code out there making similar poor usage of reporters as Eglot did > until > >> >> now will start breaking. > >> >> > >> > > >> > [ Sorry sent too early.] > >> > > >> > ...anyway, could be a risk worth taking for the general improvement of > >> > things, or not. Maintenance policy call... In any case, if so, it > should > >> be > >> > listed under backward incompatible Lisp changes. > >> > >> Thanks, though I don't think I yet see what's backwards incompatible > >> about it. I'd like to know exactly what this is trying to fix and how. > >> > > > > The one-line patch fixes the cases where a progress-reporter-update > caller > > does not follow the strict API that UPDATE-TEXT is a string, or when > > missing, VALUE should be a string. The now fixed eglot call to > > progress-reporter-update using the numeric interface with a non-numeric > > (pulsing) reporter tickled the type mismatch. Our fix below is a > defensive > > fix should other progress reporter calls make the same mistake and will > > prevent signaling an error in innocuous situations such as the eglot case > > that was caught by a keen-eyed eglot user. > > > > - (setq update-text (concat (if update-text " " "") update-text)) > > + (setq update-text (if update-text (format " %s" update-text) "")) > > You and João seem to disagree about the status of this fix. He thinks > it's an incompatible change, you think it's innocuous. Is that right? > Do you think it's not an incompatible change? > It is 100% compatible except that now emacs-31 will not signal if a call to progress-reporter-update uses the numeric calling convention for a non-numeric progress reporter. Joao's changes are independent of these and are defensive in their own right now establishing a numeric progress reporter from the outset, leaving the subsequent progress-reporter-update numeric calling conventions in place, and also correctly calling progress-reporter-done which was missing from eglot.