~ruther/guix-local

f9b1e548c95a115e2bb143d0f4b1632a600f32da — Thiago Jung Bauermann 1 year, 4 months ago 97fb188
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>
1 files changed, 6 insertions(+), 2 deletions(-)

M guix/profiles.scm
M guix/profiles.scm => guix/profiles.scm +6 -2
@@ 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)