GNU bug report logs - #62194
30.0.50; Two Eglot-over-Tramp tests are failing on master, passing on emacs-29

Previous Next

Package: emacs;

Reported by: João Távora <joaotavora <at> gmail.com>

Date: Tue, 14 Mar 2023 23:07:01 UTC

Severity: normal

Found in version 30.0.50

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: <miha <at> kamnitnik.top>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: michael.albinus <at> gmx.de, joaotavora <at> gmail.com, 62194 <at> debbugs.gnu.org
Subject: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on master, passing on emacs-29
Date: Fri, 17 Mar 2023 18:22:14 +0100
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: Michael Albinus <michael.albinus <at> gmx.de>, 62194 <at> debbugs.gnu.org
>> Date: Fri, 17 Mar 2023 17:45:43 +0100
>> From: miha--- via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> Though I do think that if a function that calls a-p-o with
>> JUST-THIS-ONE=nil isn't internal, it should mention that it can run
>> timers in its doc string.
>
> I don't see why: timers can run in Emacs almost anywhere, so
> mentioning that in doc strings of every function makes little sense.

I'm not completely sure how timers work, but

>> But here we are talking about 'expand-file-name' and other functions
>> from tramp-sh-file-name-handler. For these, I disagree that we want them
>> to accept output from other processes and call their filters.
>> 'expand-file-name' and others are used often and, for most of the
>> existence of Emacs, they did not call proc filters. I think it's
>> dangerous to have them do it now.
>
> Process filters can be also called at any time, because they basically
> depend on when the output from a subprocess arrives.  Why would you
> want that to stop while Emacs processes expand-file-name?

From '(elisp) Output from Processes':

   Output from a subprocess can arrive only while Emacs is waiting: when
reading terminal input, in ‘sit-for’ and ‘sleep-for’, in
‘accept-process-output’, and in functions which send data to processes.

From my understanding of process.c, wait_reading_process_output normally
needs to be in the call stack in order for process filters to run.

>> 'expand-file-name' is synchronous, therefore tramp has to make it use
>> accept-process-filter (tell me if there's another way). It can use it in
>> roughly two ways: with JUST-THIS-ONE=t or JUST-THIS-ONE=nil. In the
>> first case, we hit the eglot-over-ssh freeze problem and in the second
>> case, we'll have 'expand-file-name' call timers and process filters,
>> which I explained above why I don't like.
>
> I think you should teach yourself to like that.
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 2 years and 59 days ago.

Previous Next


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