guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A new wip-emacs branch


From: Carlo Zancanaro
Subject: Re: A new wip-emacs branch
Date: Thu, 08 Apr 2021 13:17:44 +1000
User-agent: mu4e 1.4.15; emacs 27.2

Hi Leo!

Thanks so much for working to improve Emacs packaging in Guix! I have a question and a comment about your approach on the wip-emacs branch.

On Tue, Apr 06 2021, Leo Prikler wrote:
Emacs now gets its core lisp path from the wrapper rather than the search path and there's a new profile hook adding all top-level subdirectories to a subdirs.el, that gets loaded at startup.

This sounds great in terms of Emacs starting in an already established profile, but one key use case for me is to be able to install new packages without restarting Emacs. Usually I can do this in eshell by running

 $ guix install emacs-magit # shell command
 ...
 $ guix-emacs-autoload-packages # emacs command
 ...

I just tried this in a fresh profile with a Guix built from wip-emacs, but it didn't seem to work. It's possible that I've done something wrong (I'm doing it with time-machine, which adds its own complexities), but are you expecting this to work? It looks like guix-emacs wasn't loaded, and it wasn't on the load path, but I haven't had a chance to investigate further than that.

Extending PATH in the same wrapper as EMACSLOADPATH seems to be a fairly cheap option, however.

I'm not supportive of this, because extending PATH would also change the binaries that are available through Emacs' shells, which I use a lot. This would mean that either (a) the Emacs packages can shadow what I've explicitly installed in my profile, potentially leading to me running unexpected versions of programs, or (b) installing something else in my profile might break something in Emacs because the version has changed. This isn't likely to be a major problem for coreutils and gzip, assuming they're stable enough, but it is a problem in general. In my view either patching the Emacs libraries (to avoid the conflict) or propagating inputs (to expose the potential conflict while building the profile) are better options.

Thanks again!

Carlo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]