Subject: bug#75817: closed (Re: [bug#75817] [PATCH v2] profiles: emacs-subdirs: Avoid building list with a loop)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 03 Feb 2025 20:25:04 +0000

Your bug report

#75817: [PATCH] profiles: emacs-subdirs: Avoid building list with a loop

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
75817: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75817
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#75817] [PATCH v2] profiles: emacs-subdirs: Avoid building list with a loop
From: Liliana Marie Prikler <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: [email-masked], [email-masked], Thiago Jung Bauermann <[email-masked]>
Date: Mon, 03 Feb 2025 21:24:23 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Am Montag, dem 03.02.2025 um 20:40 +0100 schrieb Ludovic Courtès:
> Hey Liliana,
> 
> Ludovic Courtès <[email-masked]> skribis:
> 
> > Liliana Marie Prikler <[email-masked]> skribis:
> > 
> > > > Looking forward to applying this fix (exwm wouldn’t start this
> > > > morning).
> > > > :-)
> > > Welp, I just found out the hard way there is no jobset for emacs-
> > > team…  Should we add one or just directly push to master?
> > 
> > There was one but it was deactivated; I’ve now reactivated it.
> > 
> >   https://ci.guix.gnu.org/jobset/emacs-team
> 
> Could you please merge it if that’s OK?
> 
> I think it’s a real problem to keep Emacs broken when we have a fix
> and substitutes.
Ahh, my bad.  It was already merged as
f9b1e548c95a115e2bb143d0f4b1632a600f32da, but I forgot to close the
bug.

Cheers

Subject: [PATCH] profiles: emacs-subdirs: Avoid building list with a loop
From: Thiago Jung Bauermann <[email-masked]>
To: [email-masked]
Cc: Liliana Marie Prikler <[email-masked]>, Thiago Jung Bauermann <[email-masked]>
Date: Fri, 24 Jan 2025 20:01:35 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

If the EMACSNATIVELOADPATH environment variable (by mistake) has duplicated
paths, Emacs fails to load with:

  $ emacs
  List contains a loop:
  ("/home/user/.guix-profile/lib/emacs/native-site-lisp"
   "/gnu/store/…-emacs-lsp-mode-9.0.0/lib/emacs/native-site-lisp"
   "/home/user/.guix-profile/lib/emacs/native-site-lisp"
   "/home/user/.guix-profile/lib/emacs/native-site-lisp"
   "/gnu/store/…-emacs-lsp-mode-9.0.0/lib/emacs/native-site-lisp" . #2)
  $ echo $?
  255

A git bisect in Guix to find when the problem was introduced arrived at
commit e9b13294700d ("profiles: emacs-subdirs: Also expand
native-comp-eln-load-path.").

Fix the problem by applying Liliana's suggestion of changing 'nconc' to
'append' in the Elisp code written to subdirs.el.

* guix/profiles.scm (emacs-subdirs): Use 'append' rather than 'nconc'.

Change-Id: If646b806f24666b5247850d30d2819c7482c130b
Fixes: <https://issues.guix.gnu.org/75709>
Suggested-by: Liliana Marie Prikler <[email-masked]>
---
 guix/profiles.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index 87b9543ac01f..63b2a08a48d4 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1230,8 +1230,8 @@ (define build
                         (setq native-comp-eln-load-path
                               (mapcan (lambda (dir)
                                         (if (equal dir needle)
-                                            (nconc ',native-comp-dirs
-                                                   (list dir))
+                                            (append ',native-comp-dirs
+                                                    (list dir))
                                             (list dir)))
                                       native-comp-eln-load-path))))
                    port)