Subject: bug#55857: Odd Shepherd message on 'guix system reconfigure': (map (# ?) ?)

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 14 Jun 2022 12:22:46 -0400

Hi Ludovic,

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Maxim Cournoyer <[email-masked]> skribis:
>
>> The following message is shown when reconfiguring Guix System:
>>
>> shepherd: Evaluating user expression (and (defined? (quote transient?)) (map (# ?) ?)).
>>
>> It doesn't seem intended for end users to see; at least I have no clue
>> what it's supposed to tell me :-).
>
> The question marks are HORIZONTAL ELLIPSIS not being displayed properly
> because ‘guix’ is not running under a UTF-8 locale.
>
> The message is produced by shepherd as a response to an expression that
> ‘guix system reconfigure’ tells it to evaluate, in (gnu services herd).
> And all this happens as part of the live service upgrade mechanism.
>
> Admittedly, this particular message is not something one cares about as
> a user, but it seemed safer to print messages shepherd might send during
> that operation.

Perhaps what we need is a proper logging infrastructure?  The above
message could be flagged as a 'debug' level message.  stdout/stderr
would only get to see the 'info' or higher level messages, the rest
would be logged only to syslog, keeping the user interface clean.  I
know such a logging mechanism exists in Guile-Lib, as the (logging
logger) module [0].

What do you think?

Thanks,

Maxim

[0]  https://www.nongnu.org/guile-lib/doc/ref/logging.logger/