all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Phil Sainty <psainty@orcon.net.nz>
To: emacs-devel@gnu.org
Subject: Re: Introducing thread-safe Tramp
Date: Wed, 25 Jul 2018 23:54:23 +1200	[thread overview]
Message-ID: <e74e8124-0105-ac37-a08a-f8101f884308@orcon.net.nz> (raw)
In-Reply-To: <874lgn8x6l.fsf@gmx.de>

On 25/07/18 21:46, Michael Albinus wrote:
> Drew Adams <drew.adams@oracle.com> writes:
>> My a priori objection is the use of a prefix arg to indicate that
>> you want a separate thread.  I would prefer that users specify this
>> intention in some other way, and that we reserve the use of a
>> prefix arg for something else (future).
>
> I don't understand your reservation. 40+ years of Emacs, and there
> was no need yet for a prefix argument of find-file. I would be
> surprised if it happens next time.

At first glance I would lean towards Drew's viewpoint on the basis
that it seems to me that there may be a benefit in having a *common*
interface for saying "do a thing asynchronously" -- for all manner of
things which support that (now or in the future).  find-file may never
have acquired a prefix arg, but other commands which may support
asynchronous execution in the future might already use prefix args,
in which case there would end up being inconsistencies in how the
user invoked async behaviour for any given command.

The analog that springs to my mind is the command `append-next-kill'
(bound to C-M-w), which can be invoked in order to "Cause following
command, if it kills, to add to previous kill."

Acting asynchronously might be such a generic requirement that maybe
it makes sense to implement some similar facility to say "Cause the
following command, if it can act asynchronously, to do so."

We might have a user option meaning "commands should act asynchronously
if possible" which, at least in the early days, might be set to nil by
default; but invoking the "run the next command asynchronously" command
could bind that variable as non-nil for the duration of the following
command.

Then if it was a convention that functions implementing optional async
behaviour did so conditional on this variable, we could gain the
desired outcome not only for `find-file' but for anything else in the
future which implemented such support.

Individual libraries might implement their own additional user options
to enable users to specify default async behaviour for particular sets
of commands implemented by the library in question (e.g. `find-file'
and friends), and/or users could use advice to bind the "use async
behaviour" variable for specific commands if they wanted it for some
things but not others.

Ultimately I can envisage that async-supporting commands which are
initially synchronous-by-default may in the future end up being
asynchronous-by-default once this functionality is better established,
and so tying prefix arguments to such functionality now may end up
seeming short-sighted in the future?


-Phil




  reply	other threads:[~2018-07-25 11:54 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-23 15:58 Introducing thread-safe Tramp Michael Albinus
2018-07-23 16:06 ` Eli Zaretskii
2018-07-23 16:11   ` Michael Albinus
2018-07-23 16:37     ` Eli Zaretskii
2018-07-23 16:55       ` Michael Albinus
2018-07-24  8:25 ` Ken Raeburn
2018-07-24 12:52   ` Michael Albinus
2018-07-24 13:20     ` martin rudalics
2018-07-25  9:51       ` Michael Albinus
2018-07-25 14:44         ` Eli Zaretskii
2018-07-25 17:32           ` Eli Zaretskii
2018-07-25 17:53             ` Michael Albinus
2018-07-26  7:56             ` martin rudalics
2018-07-26  8:14               ` Michael Albinus
2018-07-26  9:02                 ` martin rudalics
2018-07-26 17:24               ` Eli Zaretskii
2018-07-24 15:06     ` Drew Adams
2018-07-25  9:46       ` Michael Albinus
2018-07-25 11:54         ` Phil Sainty [this message]
2018-07-25 12:14           ` Andreas Schwab
2018-07-25 13:02           ` Michael Albinus
2018-07-25 13:31             ` Robert Pluim
2018-07-27 15:05               ` Michael Albinus
2018-08-01 16:27                 ` Robert Pluim
2018-08-01 21:28                   ` Michael Albinus
2018-07-27 19:04         ` Filipp Gunbin
2018-07-27 19:42           ` Michael Albinus
2018-07-28  0:14             ` Filipp Gunbin
2018-07-28  7:01               ` Eli Zaretskii
2018-07-28  9:48             ` Michael Albinus
2018-07-29 18:29               ` Drew Adams
2018-07-30  8:44                 ` Michael Albinus
2018-07-30 14:23                   ` Eli Zaretskii
2018-08-04 12:47                     ` Michael Albinus
2018-08-04 12:49                       ` Michael Albinus
2018-08-04 15:00                         ` Eli Zaretskii
2018-08-04 15:12                           ` Michael Albinus
2018-08-04 15:43                             ` Eli Zaretskii
2018-08-04 15:58                               ` Michael Albinus
2018-08-04 16:11                                 ` Eli Zaretskii
2018-08-04 16:18                                   ` Michael Albinus
2018-08-04 16:58                                     ` Eli Zaretskii
2018-08-04 17:29                                       ` Michael Albinus
2018-08-04 18:34                                         ` Eli Zaretskii
2018-08-05  9:51                                           ` Michael Albinus
2018-08-05 15:06                                             ` Eli Zaretskii
2018-08-06 10:54                                               ` Michael Albinus
2018-08-06 14:55                                                 ` Drew Adams
2018-08-06 15:25                                                   ` C-x & (was: Introducing thread-safe Tramp) Michael Albinus
2018-08-06 17:59                                                     ` Drew Adams
2018-08-06 19:17                                                       ` C-x & Michael Albinus
2018-08-06 20:57                                                         ` Drew Adams
2018-08-06 23:16                                                           ` Drew Adams
2018-08-07  7:05                                                             ` Michael Albinus
2018-08-07  7:01                                                           ` Michael Albinus
2018-08-06 15:48                                                   ` Introducing thread-safe Tramp Stefan Monnier
2018-08-06 15:24                                                 ` Eli Zaretskii
2018-08-06 15:29                                                   ` C-x & (was: Introducing thread-safe Tramp) Michael Albinus
2018-08-06 18:32                                                 ` Introducing thread-safe Tramp Filipp Gunbin
2018-08-07 14:20                                                   ` Michael Albinus
2018-08-07 14:53                                                     ` Stephen Berman
2018-08-07 15:02                                                       ` Robert Pluim
2018-08-07 15:06                                                         ` Stephen Berman
2018-08-07 16:00                                                           ` Michael Albinus
2018-08-07 15:58                                                         ` Michael Albinus
2018-08-07 15:33                                                       ` Drew Adams
2018-08-07 16:01                                                         ` Michael Albinus
2018-08-07 16:12                                                         ` Drew Adams
2018-08-07 16:18                                                           ` Michael Albinus
2018-08-07 15:56                                                       ` Michael Albinus
2018-08-07 16:24                                                         ` Eli Zaretskii
2018-08-07 16:30                                                           ` Michael Albinus
2018-08-07 15:56                                                     ` Eli Zaretskii
2018-08-07 16:09                                                       ` Michael Albinus
2018-08-07 16:23                                                         ` Drew Adams
2018-08-07 16:46                                                           ` Drew Adams
2018-08-07 16:54                                                             ` Michael Albinus
2018-08-07 17:11                                                             ` Eli Zaretskii
2018-08-08  8:18                                                           ` Michael Albinus
2018-08-08 19:01                                                     ` Filipp Gunbin
2018-08-08 20:52                                                       ` Stefan Monnier
2018-08-08 20:54                                                         ` Drew Adams
2018-08-04 15:42                         ` Drew Adams
2018-08-04 15:56                           ` Michael Albinus
2018-08-04 16:16                             ` Drew Adams
2018-08-04 17:36                               ` Michael Albinus
2018-08-04 22:41                                 ` Drew Adams
2018-08-05 10:03                                   ` Michael Albinus
2018-08-04 16:08                           ` Eli Zaretskii
     [not found]                         ` <<7c28f9d8-e2bb-4778-ab92-92707f12718f@default>
     [not found]                           ` <<837el6t8r3.fsf@gnu.org>
2018-08-04 16:27                             ` Drew Adams
2018-08-04 16:59                               ` Eli Zaretskii
2018-08-05  1:59                               ` Richard Stallman
2018-08-05 10:07                                 ` Michael Albinus
2018-08-06  1:20                                   ` Richard Stallman
2018-08-05 15:36                                 ` Drew Adams
2018-08-06  4:21                                   ` Howard Melman
2018-08-06  4:39                                     ` Werner LEMBERG
2018-08-06  8:07                                     ` Michael Albinus
2018-08-06 13:50                                       ` Clément Pit-Claudel
2018-08-06 14:57                                         ` Drew Adams
2018-08-06 14:52                                       ` Drew Adams
2018-08-06 15:52                                         ` Howard Melman
2018-08-06 15:46                                     ` Stefan Monnier
2018-07-27 21:08           ` Eli Zaretskii
2018-07-28  0:24             ` Filipp Gunbin
2018-07-28  9:02               ` Michael Albinus
2018-07-27 19:19         ` Dmitry Gutov
2018-07-27 19:32           ` Michael Albinus
2018-07-27 19:40             ` Yuri Khan
2018-07-27 19:43               ` Michael Albinus
2018-07-27 20:09                 ` Yuri Khan
2018-07-27 21:15                   ` Eli Zaretskii
2018-07-28  9:11                     ` Michael Albinus
2018-07-28  9:57                       ` Eli Zaretskii
2018-07-28 10:04                         ` Michael Albinus
2018-07-27 22:57             ` Dmitry Gutov
2018-07-27 22:59         ` Dmitry Gutov
2018-07-28  9:18           ` Michael Albinus
2018-07-28  9:36             ` Dmitry Gutov
2018-07-28  9:51               ` Michael Albinus
2018-07-28  9:59 ` Dmitry Gutov
2018-07-28 10:13   ` Michael Albinus
2018-07-28 22:20     ` Dmitry Gutov
2018-07-29  9:54       ` Michael Albinus
2018-08-08 16:49         ` Dmitry Gutov

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=e74e8124-0105-ac37-a08a-f8101f884308@orcon.net.nz \
    --to=psainty@orcon.net.nz \
    --cc=emacs-devel@gnu.org \
    /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.