* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
[not found] ` <20191227141919.03F1321537@vcs0.savannah.gnu.org>
@ 2019-12-27 15:58 ` Stefan Monnier
2019-12-27 16:18 ` Dmitry Gutov
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2019-12-27 15:58 UTC (permalink / raw)
To: emacs-devel; +Cc: Dmitry Gutov
Dmitry Gutov [2019-12-27 09:19:18] wrote:
> + (buf (unless remote-id
> + ;; find-buffer-visiting is slow on remote.
> + (xref--find-buffer-visiting file)))
How 'bout using `get-file-buffer` instead, then?
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-27 15:58 ` emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote Stefan Monnier
@ 2019-12-27 16:18 ` Dmitry Gutov
2019-12-27 19:30 ` Stefan Monnier
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2019-12-27 16:18 UTC (permalink / raw)
To: Stefan Monnier, emacs-devel
On 27.12.2019 17:58, Stefan Monnier wrote:
> Dmitry Gutov [2019-12-27 09:19:18] wrote:
>
>> + (buf (unless remote-id
>> + ;; find-buffer-visiting is slow on remote.
>> + (xref--find-buffer-visiting file)))
>
> How 'bout using `get-file-buffer` instead, then?
Good idea. Still slower on remote files, but much faster overall.
Thanks, pushed.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-27 16:18 ` Dmitry Gutov
@ 2019-12-27 19:30 ` Stefan Monnier
2019-12-27 20:19 ` Michael Albinus
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2019-12-27 19:30 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: emacs-devel
>>> + (buf (unless remote-id
>>> + ;; find-buffer-visiting is slow on remote.
>>> + (xref--find-buffer-visiting file)))
>> How 'bout using `get-file-buffer` instead, then?
> Good idea. Still slower on remote files, but much faster overall.
Hmm... why is it slower on remote files? AFAIK it all works locally.
It does go through Tramp for the initial `expand-file-name`, but AFAIK
this shouldn't need to talk to the remote host (unless it has a ~/ or
~<user>/ in the remote part of the name, I guess?).
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-27 19:30 ` Stefan Monnier
@ 2019-12-27 20:19 ` Michael Albinus
2019-12-27 22:06 ` Stefan Monnier
0 siblings, 1 reply; 11+ messages in thread
From: Michael Albinus @ 2019-12-27 20:19 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel, Dmitry Gutov
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> It does go through Tramp for the initial `expand-file-name`, but AFAIK
> this shouldn't need to talk to the remote host (unless it has a ~/ or
> ~<user>/ in the remote part of the name, I guess?).
That's how it is implemented, yes. However, remote file names with a
relative localname part, are also expanded via prepending "~/" to the
localname. For performance reasons it is better to avoid such file names.
> Stefan
Best regards, Michael.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-27 20:19 ` Michael Albinus
@ 2019-12-27 22:06 ` Stefan Monnier
2019-12-28 10:09 ` Michael Albinus
2019-12-28 15:22 ` Dmitry Gutov
0 siblings, 2 replies; 11+ messages in thread
From: Stefan Monnier @ 2019-12-27 22:06 UTC (permalink / raw)
To: Michael Albinus; +Cc: emacs-devel, Dmitry Gutov
>> It does go through Tramp for the initial `expand-file-name`, but AFAIK
>> this shouldn't need to talk to the remote host (unless it has a ~/ or
>> ~<user>/ in the remote part of the name, I guess?).
> That's how it is implemented, yes. However, remote file names with a
> relative localname part, are also expanded via prepending "~/" to the
> localname. For performance reasons it is better to avoid such file names.
In the context of `xref--collect-matches`, I'd expect the file name passed
to `get-file-buffer` to be either fully expanded file names or relative
file names (with a fully expanded `default-directory`), so in that case
`expand-file-name` should presumably "always" return without contacting
the remote host, right?
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-27 22:06 ` Stefan Monnier
@ 2019-12-28 10:09 ` Michael Albinus
2019-12-28 16:53 ` Stefan Monnier
2019-12-28 15:22 ` Dmitry Gutov
1 sibling, 1 reply; 11+ messages in thread
From: Michael Albinus @ 2019-12-28 10:09 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel, Dmitry Gutov
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> It does go through Tramp for the initial `expand-file-name`, but AFAIK
>>> this shouldn't need to talk to the remote host (unless it has a ~/ or
>>> ~<user>/ in the remote part of the name, I guess?).
>> That's how it is implemented, yes. However, remote file names with a
>> relative localname part, are also expanded via prepending "~/" to the
>> localname. For performance reasons it is better to avoid such file names.
>
> In the context of `xref--collect-matches`, I'd expect the file name passed
> to `get-file-buffer` to be either fully expanded file names or relative
> file names (with a fully expanded `default-directory`), so in that case
> `expand-file-name` should presumably "always" return without contacting
> the remote host, right?
Should be, yes. And according to some short tests, Tramp behaves like this.
> Stefan
Best regards, Michael.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-27 22:06 ` Stefan Monnier
2019-12-28 10:09 ` Michael Albinus
@ 2019-12-28 15:22 ` Dmitry Gutov
2019-12-28 16:54 ` Stefan Monnier
2019-12-28 18:58 ` Michael Albinus
1 sibling, 2 replies; 11+ messages in thread
From: Dmitry Gutov @ 2019-12-28 15:22 UTC (permalink / raw)
To: Stefan Monnier, Michael Albinus; +Cc: emacs-devel
On 28.12.2019 0:06, Stefan Monnier wrote:
> so in that case
> `expand-file-name` should presumably "always" return without contacting
> the remote host, right?
Personally, I don't see why file-local-name should ever call
expand-file-name. The caller can do that itself, when necessary.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-28 10:09 ` Michael Albinus
@ 2019-12-28 16:53 ` Stefan Monnier
0 siblings, 0 replies; 11+ messages in thread
From: Stefan Monnier @ 2019-12-28 16:53 UTC (permalink / raw)
To: Michael Albinus; +Cc: emacs-devel, Dmitry Gutov
> Should be, yes. And according to some short tests, Tramp behaves like this.
Thanks for confirming,
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-28 15:22 ` Dmitry Gutov
@ 2019-12-28 16:54 ` Stefan Monnier
2019-12-28 16:58 ` Dmitry Gutov
2019-12-28 18:58 ` Michael Albinus
1 sibling, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2019-12-28 16:54 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Michael Albinus, emacs-devel
>> so in that case `expand-file-name` should presumably "always" return
>> without contacting the remote host, right?
> Personally, I don't see why file-local-name should ever call
> expand-file-name. The caller can do that itself, when necessary.
I think I agree, but I don't see how that relates to the discussion, so
maybe I'm missing something (I can't remember any reference to `file-local-name`).
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-28 16:54 ` Stefan Monnier
@ 2019-12-28 16:58 ` Dmitry Gutov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Gutov @ 2019-12-28 16:58 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Michael Albinus, emacs-devel
On 28.12.2019 18:54, Stefan Monnier wrote:
>>> so in that case `expand-file-name` should presumably "always" return
>>> without contacting the remote host, right?
>> Personally, I don't see why file-local-name should ever call
>> expand-file-name. The caller can do that itself, when necessary.
>
> I think I agree, but I don't see how that relates to the discussion, so
> maybe I'm missing something (I can't remember any reference to `file-local-name`).
Oh, right, sorry.
See the discussion here:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34343#38
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote
2019-12-28 15:22 ` Dmitry Gutov
2019-12-28 16:54 ` Stefan Monnier
@ 2019-12-28 18:58 ` Michael Albinus
1 sibling, 0 replies; 11+ messages in thread
From: Michael Albinus @ 2019-12-28 18:58 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Stefan Monnier, emacs-devel
Dmitry Gutov <dgutov@yandex.ru> writes:
> On 28.12.2019 0:06, Stefan Monnier wrote:
>> so in that case
>> `expand-file-name` should presumably "always" return without contacting
>> the remote host, right?
>
> Personally, I don't see why file-local-name should ever call
> expand-file-name. The caller can do that itself, when necessary.
In the current implementation, file-local-name calls file-remote-p,
which sometimes calls expand-file-name. There are reasons for this, but
for the file-local-name business this is unfortune.
Best regards, Michael.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-12-28 18:58 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20191227141917.13328.16721@vcs0.savannah.gnu.org>
[not found] ` <20191227141919.03F1321537@vcs0.savannah.gnu.org>
2019-12-27 15:58 ` emacs-27 e1e0a7a 2/2: xref--collect-matches: Speed up on remote Stefan Monnier
2019-12-27 16:18 ` Dmitry Gutov
2019-12-27 19:30 ` Stefan Monnier
2019-12-27 20:19 ` Michael Albinus
2019-12-27 22:06 ` Stefan Monnier
2019-12-28 10:09 ` Michael Albinus
2019-12-28 16:53 ` Stefan Monnier
2019-12-28 15:22 ` Dmitry Gutov
2019-12-28 16:54 ` Stefan Monnier
2019-12-28 16:58 ` Dmitry Gutov
2019-12-28 18:58 ` Michael Albinus
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.