[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Remote asynchronous processes

From: Philippe Vaucher
Subject: Re: Remote asynchronous processes
Date: Tue, 14 Apr 2020 14:34:37 +0200

>     One idea to change the situation is, to remove all sanity checks
>     from
>     make-process.
>     This would improve performance significantly. The drawback is,
>     that
>     Tramp does not perform convenience checks, like password handling.
>     start-file-process would not be changed, and it behaves like
>     before.
> I'm not clear on make-process vs start-file-process usage, but I
> assume the former is used by API developers and the later is called by
> TRAMP, so we still get the sanity checks for normal TRAMP usage?

Currently, they behave similar (start-file-process is just a wrapper
around make-process in Tramp). I propose to change this.

I see.

But that's not the point of my proposal. If we change make-process such a
way that it calls the command directly, we will gain a performace
boost. Philipp Stephani has shown some figures in the discussion
mentioned above. Maybe he can explain more detailed which kind of
performance requirements he has in mind, and the use case(s).

However, we will loose features of remote asynchronous processes. At
least (and not comprehensive), processes started via make-process

- are not checked for passwords or other interactive dialogues
- do not not support multi-hops anymore
- cannot be killed via interrupt-process (??? I'm not sure)
- do not tell the remote tty
- ...

Processes started via start-file-process won't change their behavior.

So basically what you need to know is how `make-process` is used in the wild. If that helps, magit only uses `start-file-process` and never `make-process`.

You could try to grep other common libraries to see, on the ones I follow the only reference to `make-process` I found was in counsel's `counsel--call` doc string, to mention it uses the same arguments list (but never actually calls it).

A simple way would be to grep all MELPA libraries, try to ask @purcell or @tarsius on github (I cc'ed tarsius here).

Kind regards,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]