all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Albinus <michael.albinus@gmx.de>
To: Philippe Vaucher <philippe.vaucher@gmail.com>
Cc: Philipp Stephani <p.stephani2@gmail.com>,
	Emacs developers <emacs-devel@gnu.org>
Subject: Re: Remote asynchronous processes
Date: Tue, 14 Apr 2020 11:03:23 +0200	[thread overview]
Message-ID: <87sgh6zbfo.fsf@gmx.de> (raw)
In-Reply-To: <CAGK7Mr6HtGjkz+W18Y64UMxZK8M9vtrj8kF4DODTJfaOS1MdRQ@mail.gmail.com> (Philippe Vaucher's message of "Mon, 13 Apr 2020 22:32:38 +0200")

Philippe Vaucher <philippe.vaucher@gmail.com> writes:

> Hello,

Hi Philippe,

>     One of the reasons is, that Tramp opens first a shell on the
>     remote
>     host, performs sanity checks, and runs the command after that.
>     Well, I
>     cannot change this in general; the sanity checks have been added
>     due to
>     feedback from users.
>
> It'd be great to have the list of checks that are done and the reasons
> to see if they still make sense nowadays. Maybe these checks were
> added to safe-guard against silly terminals/implementations but can be
> ignored in recent times.

I've started with such an analysis on the Tramp mailing list, see thread
starting at
<https://lists.gnu.org/archive/html/tramp-devel/2020-03/msg00000.html>. This
work is continued with more fine-tuning, but this isn't the topic of
*this* discussion.

>     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.

> If you ask _my_ preferences I'd remove the sanity checks and require
> sane terminals, maybe offer some tramp-sane-terminal-p that could run
> the sanity checks for debugging. That or cache the sanity checks so
> you only run them once on the initial connection but never later on. I
> understand my position is probably not everyone's position tho :-)

Tramp is intended to work on most remote systems which run a bournish
shell. It does not know in advance the properties of that shell, so it
runs the sanity checks. Tramp caches the properties as much as possible
already.

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.

> Kind regards,
> Philippe

Best regards, Michael.



  reply	other threads:[~2020-04-14  9:03 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-13 10:19 Remote asynchronous processes Michael Albinus
2020-04-13 20:32 ` Philippe Vaucher
2020-04-14  9:03   ` Michael Albinus [this message]
2020-04-14 12:34     ` Philippe Vaucher
2020-04-14 14:28       ` Michael Albinus
2020-08-04 17:00       ` Philipp Stephani
2020-04-14 14:48     ` Stefan Monnier
2020-04-14 15:30       ` Michael Albinus
2020-08-04 17:01       ` Philipp Stephani
2020-08-04 16:56     ` Philipp Stephani
2020-08-04 17:35       ` Michael Albinus
2020-08-10 14:42         ` Philipp Stephani
2020-05-06 11:59 ` Michael Albinus
2020-08-04 16:48 ` Philipp Stephani
2020-08-04 17:31   ` Michael Albinus
2020-08-10 14:56     ` Philipp Stephani
  -- strict thread matches above, loose matches on Subject: below --
2020-07-29 16:58 Felipe Lema
2020-07-31 10:22 ` Michael Albinus
2020-08-04 12:27   ` Michael Albinus
2020-08-04 16:06     ` Felipe Lema
2020-08-06 19:08     ` Sean Whitton
2020-08-09  7:22       ` Michael Albinus
2020-08-09 14:47         ` Philipp Stephani
2020-08-09 17:06           ` Michael Albinus
2020-08-12 10:46         ` Michael Albinus
2020-08-21 22:28           ` Sean Whitton
2020-08-07 16:28   ` Philipp Stephani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sgh6zbfo.fsf@gmx.de \
    --to=michael.albinus@gmx.de \
    --cc=emacs-devel@gnu.org \
    --cc=p.stephani2@gmail.com \
    --cc=philippe.vaucher@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.