Subject: Re: [bug#44075] [PATCH] gnu: Add make-glibc-locales-collection.

From: Miguel Ángel Arruga Vivas <[email-masked]>
Date: Mon, 19 Oct 2020 15:17:54 +0200

Hi Efraim,

I've been taking a look into your patch.  One issue are the comments
about utf8 and UTF-8, as the issue is already explained in
make-glibc[-utf8]-locales.

Other point is:

Efraim Flashner <[email-masked]> writes:
> +(define* (make-glibc-locales-collection
> +           glibc
> +           #:optional (locales
> +                        '(list "en_US.utf8" "en_US.ISO-8859-1")))
> (... Removed for clarity ...)
> +             ,locales)

I would have used list there like (list ,@locales) or '(,@locales), this
looks a bit odd to my eyes at least.  I'd expect this kind of calling code:

(let ((locales '("de_CH.utf8" ... "de_DE.utf8"))
      (my-glibc ...))
  (make-glibc-locales-collection myglibc locales))

Enforcing an extra quotation for no real reason on the calling site, as
strings are self-evaluating objects, and the use of the symbol list,
whose meaning depends on other context of execution, doesn't seem
necessary.  Even worse, my example would raise an error as "de_CH.utf8"
is not a procedure.

What do you think about replacing make-glibc-utf8-locales with a call of
the new function (using that code) ensuring that the generated
derivation stays the same for that case (i.e. it's optimized for the
UTF-8 case)?

Happy hacking!
Miguel