From: Dmitry Gutov <dgutov@yandex.ru>
To: bruce.connor.am@gmail.com, emacs-devel <emacs-devel@gnu.org>
Subject: Re: Async package.el
Date: Mon, 06 Apr 2015 16:53:22 +0300 [thread overview]
Message-ID: <55228FD2.3080501@yandex.ru> (raw)
In-Reply-To: <CAAdUY-+-jixVwvyVEcE-PYSxB_Y+DQAjgRATs0Zre+JUQWusdg@mail.gmail.com>
Hi Artur,
On 04/06/2015 01:46 PM, Artur Malabarba wrote:
> This is a heads up that I've pushed some commits that implement
> asynchronicity in package.el. I'll explain implementation details below,
> but I want to list the surface changes first.
One change I've noticed recently, is that the last few times I ran `M-x
list-packages', it didn't display the "new" packages at the top.
Might that be related to the recent changes?
> - For the sake of simplicity, when you hit `x' in the package-menu you
> will no longer get two separate prompts for install/delete. You'll be
> prompted a single time for everything.
I think "INSTALL (xxx-y.z) and DELETE (xxx-z.t)" is needlessly verbose.
It should probably be "Upgrade (xxx to z.t)", with maybe "and delete the
currently installed versions".
> - Most functions which involve downloading data now take an extra
> optional ASYNC argument (some of them also take an additional CALLBACK
> argument). This defaults to nil. If it is t, any downloads involved are
> performed asynchronously (and, if appropriate, CALLBACK is called
> afterwards).
Shouldn't there be some new tests?
> - The only really async function (actually a macro) is
> `package--with-work-buffer-async'. All other functions simply propagate
> their ASYNC argument down to this one. If ASYNC nil, it just defers the
> work back to `package--with-work-buffer'.
I have to say that package upgrading being only partially asynchronous
looks perplexing. You say yes - it starts downloading stuff in the
background - I can move around in the buffer, then suddenly the
background process takes over in a synchronous fashion - I can't move
cursor anymore and just watch some messages in the echo area. The
Compile-Log only pops up at the end.
While parallel downloading sounds good, maybe the overall interface
should still be presented in a synchronous fashion.
> - Archives are refreshed all at the same time (which leads to a
> signficant speed boost if you have several archives configured), so
> there's a new variable `package--downloads-in-progress' to keep track of
> which archive downloads are still ongoing. The function
> `package--update-downloads-in-progress' takes care of controling this
> variable and calling a relevant hook when it's all done.
I think this is the main upside of the latest changes, currently.
> - Package downloads are performed in sequence, because it is generally
> not safe to do them in parallel
Why not? Simply downloading in parallel should be safe. Maybe not all at
once, but 2-4 at a time, especially if they come from different
archives, would be beneficial.
next prev parent reply other threads:[~2015-04-06 13:53 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-06 10:46 Async package.el Artur Malabarba
2015-04-06 13:53 ` Dmitry Gutov [this message]
2015-04-06 14:32 ` Artur Malabarba
2015-04-07 1:19 ` Dmitry Gutov
2015-04-07 21:46 ` Stefan Monnier
2015-04-08 1:49 ` Dmitry Gutov
2015-04-08 13:32 ` Stefan Monnier
2015-04-09 1:49 ` Dmitry Gutov
2015-04-09 14:06 ` raman
2015-04-09 14:22 ` Rasmus
2015-04-09 14:50 ` Artur Malabarba
2015-04-09 14:53 ` Artur Malabarba
2015-04-09 15:19 ` async message Ivan Shmakov
2015-04-10 14:58 ` raman
2015-04-10 1:32 ` Async package.el raman
2015-04-09 18:18 ` Stefan Monnier
2015-04-10 15:00 ` raman
2015-04-12 0:46 ` Artur Malabarba
2015-04-12 3:53 ` Stefan Monnier
2015-04-07 23:26 ` Artur Malabarba
2015-04-08 2:19 ` Dmitry Gutov
2015-04-08 9:43 ` Artur Malabarba
2015-04-08 16:02 ` Dmitry Gutov
2015-04-08 18:39 ` Artur Malabarba
2015-04-09 2:10 ` Dmitry Gutov
2015-04-09 10:14 ` Artur Malabarba
2015-04-09 12:34 ` Dmitry Gutov
2015-04-12 1:38 ` Artur Malabarba
2015-04-07 5:31 ` Daiki Ueno
2015-04-07 9:13 ` Dmitry Gutov
2015-04-07 9:59 ` Artur Malabarba
2015-04-07 11:22 ` Robert Pluim
2015-04-07 12:33 ` Artur Malabarba
2015-04-07 14:29 ` Robert Pluim
2015-04-08 2:21 ` Artur Malabarba
2015-04-07 21:50 ` Stefan Monnier
2015-04-08 5:27 ` Daiki Ueno
2015-04-09 8:38 ` Achim Gratz
2015-04-09 13:09 ` Stefan Monnier
2015-04-07 18:06 ` Stefan Monnier
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55228FD2.3080501@yandex.ru \
--to=dgutov@yandex.ru \
--cc=bruce.connor.am@gmail.com \
--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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).