Hi, Marius Bakke <mar...@gnu.org> skribis:
> Ludovic Courtès <l...@gnu.org> skriver: [...] >> A workaround that works with 3.0.7 is swapping the two ‘and’ >> sub-expressions: >> >> diff --git a/modules/shepherd/scripts/herd.scm >> b/modules/shepherd/scripts/herd.scm >> index 106de1e..39d2e34 100644 >> --- a/modules/shepherd/scripts/herd.scm >> +++ b/modules/shepherd/scripts/herd.scm >> @@ -126,8 +126,8 @@ of pairs." >> the daemon via SOCKET-FILE." >> (with-system-error-handling >> (let ((sock (open-connection socket-file)) >> - (action* (if (and (eq? action 'detailed-status) >> - (memq service '(root shepherd))) >> + (action* (if (and (memq service '(root shepherd)) >> + (eq? action 'detailed-status)) >> 'status >> action))) >> ;; Send the command. > > Cc'ing the relevant Guile bug: > > https://bugs.gnu.org/48368 > > See also commit 79be6a985799adc6d663890250f4fb7c12f015b4 on > 'core-updates' that builds with -O1 as a less satisfactory workaround. The bug has been fixed in Guile (will be in 3.0.8), worked around in Shepherd commit a066c5ac05037a6ffad8e4ea3e8de8150869aa8b, and worked around in Guix on ‘core-updates’, so I think we can close it now. Thanks, Ludo’.