reddit / emacs

Parallel Package Installation

bespokey · 2022-06-06 12:28
Is there a way to install packages in parallel and view progress while it is running? The startup experience is bad since there is no progress, and there is no built-in option to download packages in parallel. It's OK to compile the elisp files sequentially but downloading can be performed in parallel.
MitchellMarquez42 · 2022-06-06 14:11
!remindme 3d
RemindMeBot · 2022-06-06 14:11
I will be messaging you in 3 days on [**2022-06-09 14:11:15 UTC**](http://www.wolframalpha.com/input/?i=2022-06-09%2014:11:15%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/emacs/comments/v62ef0/parallel_package_installation/ibd9og4/?context=3) [**CLICK THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2Femacs%2Fcomments%2Fv62ef0%2Fparallel_package_installation%2Fibd9og4%2F%5D%0A%0ARemindMe%21%202022-06-09%2014%3A11%3A15%20UTC) to send a PM to also be reminded and to reduce spam. ^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%20v62ef0) ***** |[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)| |-|-|-|-|
dpassen1 · 2022-06-06 16:05
Perhaps https://github.com/conao3/feather.el would be of use
nv-elisp · 2022-06-06 16:07
Not quite ready yet, but I'm working on an asynchronous elisp package manager. Here is a rough (and somewhat outdated) demo: https://youtu.be/zBftkN2eHh8 It installs the 110 packages in my init file in about a minute.
bespokey · 2022-06-06 19:57
Looks interesting, thanks!
bespokey · 2022-06-06 20:01
That's a big package, definitely fills my needs. Thanks! Why does it use a separate folder for packages instead of the default one? Why did you decide not to advise the built-in function `package-install`?
csemacs · 2022-06-06 21:02
>Not quite ready yet, Repo link, please.
nv-elisp · 2022-06-07 07:06
There is a repo link at the end of that video. I will make an announcement post once the API/features for the program stabilize a bit. Right now, I'm still experimenting.
nv-elisp · 2022-06-07 08:00
> That's a big package, definitely fills my needs. Thanks! Not sure if you mean "big" in terms of scope or size. In either case, it's somewhere in the middle of the pack. Here's a line count comparison of elisp files for various third-party elisp package managers: (("borg" (comment . 113) (code . 1040) (nFiles . 3)) ("quelpa" (comment . 162) (code . 1839) (nFiles . 3)) ("elpaso" (comment . 302) (code . 2079) (nFiles . 10)) ("parcel" (comment . 344) (code . 2665) (nFiles . 12)) ("el-get" (comment . 1529) (code . 6686) (nFiles . 102)) ("straight" (comment . 1218) (code . 6746) (nFiles . 11))) The code base for parcel should get smaller as I refine the design as well. > Why does it use a separate folder for packages instead of the default one? This package manager is meant to be an alternative to package.el. It works similarly to some of the package managers that I've listed above in that it downloads and installs packages directly from their source repositories. This makes it very easy to contribute patches to packages one's installed packages. > Why did you decide not to advise the built-in function package-install? In general, advise is not something I would base a package around. It's fragile and often depends on internal implementation details of another package. Secondly, the package manager I'm working on does not work like package.el conceptually. There has been discussion the Emacs devel archives about extending package.el to work directly with source code repositories more easily, but (to my knowledge) no one has contributed those changes.
bespokey · 2022-06-07 08:34
Thank you for your elaborate reply. I've played with Parcel a bit and noticed it doesn't automatically trigger native compilation on Emacs 28.1. Is there anything to configure to make it compile to native eln files immediately after installation?
nv-elisp · 2022-06-07 14:44
I haven't added that yet. Native comp was designed so that files are asynchronously compiled and reloaded once their el/elc counterparts are loaded. I prefer to let it happen that way, because I have some packages which I do not use every session. That said, it should be possible to add a build step to have compilation happen ahead of time.