Subject: Re: [PATCH] profiles: emacs-subdirs: Avoid building list with a loop

From: Thiago Jung Bauermann <[email-masked]>
Date: Sat, 25 Jan 2025 01:16:32 -0300

Liliana Marie Prikler <[email-masked]> writes:

> Am Freitag, dem 24.01.2025 um 20:01 -0300 schrieb Thiago Jung
> Bauermann:
>> 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.
> It's better to describe the bug in code so that folks won't stumble
> over it again.  E.g. "Note: needle may be found multiple times, so
> don't use destructive procedures like nconc."

Good point. I added your suggested note as a comment in the Elisp code.

>> * guix/profiles.scm (emacs-subdirs): Use 'append' rather than
>> 'nconc'.
>>
>> Change-Id: If646b806f24666b5247850d30d2819c7482c130b
>> Fixes: <https://issues.guix.gnu.org/75709>
> You have some horizontal space here to name the bug :)

Indeed. I added a short description.

Thank you for your quick review!
--
Thiago