summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Jung Bauermann <bauermann@kolabnow.com>2025-01-25 01:14:08 -0300
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2025-01-28 20:25:30 +0100
commitf9b1e548c95a115e2bb143d0f4b1632a600f32da (patch)
tree336e2ac33c83f5e237c083b3fa63735133f65139
parent97fb1887ad10000c067168176c504274e29e4430 (diff)
profiles: emacs-subdirs: Avoid building circular lists.
This is a follow-up to e9b13294700de7082ee23aa6e1c17b4a8c8828ec. If the EMACSNATIVELOADPATH environment variable (by mistake) has duplicated paths, Emacs fails to start up with a message along the lines of List contains a loop: ("$HOME/.guix-profile/lib/emacs/native-site-lisp" […] . #2) To prevent this issue in the face of possibly duplicated search path elements, use non-destructive methods where possible. * guix/profiles.scm (emacs-subdirs): Use 'append' rather than 'nconc'. Change-Id: If646b806f24666b5247850d30d2819c7482c130b Fixes: Emacs "List contains a loop" <https://issues.guix.gnu.org/75709> Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r--guix/profiles.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 87b9543ac01..fb4dbc5bd07 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1230,8 +1230,12 @@ MANIFEST. Single-file bundles are required by programs such as Git and Lynx."
(setq native-comp-eln-load-path
(mapcan (lambda (dir)
(if (equal dir needle)
- (nconc ',native-comp-dirs
- (list dir))
+ ;; Note: needle may be found
+ ;; multiple times, so don't use
+ ;; destructive procedures like
+ ;; nconc.
+ (append ',native-comp-dirs
+ (list dir))
(list dir)))
native-comp-eln-load-path))))
port)