[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Async package.el
From: |
Dmitry Gutov |
Subject: |
Re: Async package.el |
Date: |
Tue, 07 Apr 2015 04:19:30 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Thunderbird/36.0 |
On 04/06/2015 05:32 PM, Artur Malabarba wrote:
Yes. I'm fixing it now.
Thank you.
I agree.
I'd also prefer to revert to use the sentence case (non-caps).
b6610d55470c7e835472a581977ab6fad537c8b6 did that change, despite having
the word "refactor" in its message. :P
Yes. I'm still trying to figure out how to do async tests. Currently all
package.el tests use a local directory as the repository, but the async
functions only kick-in for remote repositories.
Should I use GNU Elpa for the tests? Might that cause hydra to
unexpectedly complain due to random connection issues?
I think ideally you'd run a small package archive server locally,
launched with a tiny Python script.
I agree that's annoying and I have some similar plans. We can change the
package-installation logic to first download all files simultaneously,
and then unpack/compile all of them in the proper order. So large
upgrades would have a significant speed improvement.
Right, that should be optimal, but the requires changes are probably
non-trivial.
To take this further (and forgive the negativity), maybe we should
back-pedal on adding the asynchronous interface to downloading package
archives, too. While doing it in parallel is great, refreshing the table
of packages right under the user's nose is bound to create problems.
Here's one:
M-x list-packages, press `i' in the displayed list, wait for the refresh
to be done, see the `I' disappear.
Can you imagine something like Ubuntu Software Center doing this and
updating the packages list while the user's interacting with the
interface? Aside from it being confusing, the more interface elements
there are, the higher are the odds of this kind of update breaking
something.
While `list-packages' is far from complexity of analogous tools, maybe
we should walk in that direction without having to support the
complexity of asynchronously updating the packages list.
The slowness of `list-packages' launch could be tackled in different
ways. We want to have up-to-date information, but we don't have to:
- Update it each time `M-x list-packages' is run. Doing it only once a
day, by default, should be sufficient for most uses. GNU ELPA is updated
less often than that anyway.
- Wait until the user invokes `M-x list-packages' to update it. We could
do it while Emacs is idle. Of course, we user might end up not doing
anything the packages in the current session anyway, so it'll require
some experimenting. Maybe check that `M-x list-packages' was called at
least once since the idle update, and, conversely, still perform the
synchronous update at the beginning of `list-packages' if the archives
haven't been updated for a while.
Both approaches should also lower the packages archives' server load, at
the cost of being slightly less up-to-date.
- Async package.el, Artur Malabarba, 2015/04/06
- Re: Async package.el, Dmitry Gutov, 2015/04/06
- Re: Async package.el, Artur Malabarba, 2015/04/06
- Re: Async package.el,
Dmitry Gutov <=
- Re: Async package.el, Stefan Monnier, 2015/04/07
- Re: Async package.el, Dmitry Gutov, 2015/04/07
- Re: Async package.el, Stefan Monnier, 2015/04/08
- Re: Async package.el, Dmitry Gutov, 2015/04/08
- Re: Async package.el, raman, 2015/04/09
- Re: Async package.el, Rasmus, 2015/04/09
- Re: Async package.el, Artur Malabarba, 2015/04/09
- Re: Async package.el, Artur Malabarba, 2015/04/09
- async message, Ivan Shmakov, 2015/04/09
- Re: async message, raman, 2015/04/10