Subject: Re: [bug#72183] [PATCH] gnu: guile: Update to 3.0.10.

From: "Thompson, David" <[email-masked]>
Date: Fri, 19 Jul 2024 18:07:17 -0400

Hey Ludo,

On Fri, Jul 19, 2024 at 4:40 PM Ludovic Courtès <[email-masked]> wrote:
>
> Hey,
>
> I temporarily reverted the commits that upgrade Guile and adjust Hoot in
> 31244f5cefae4c14a1a5d441dc3b3626b5f32abc so we can investigate the issue
> below (which broke ‘guix pull’) without pressure.

Oh no, sorry! I ran 'guix pull' after pushing these commits and didn't
experience issues so I thought all was well. :(

> Turns out ‘guile-3.0-latest’ is used to build Guix itself (via ‘guix
> pull’, but also the ‘guix’ package) and this cause a failure of
> guix-cli-core.drv:

How about using guile-3.0 for Guix so that future Guile updates can be
done without fear?

> The expressions leading to this internal compiler error are:
>
>   (bytevector->hash-data (sha256 (string->utf8 s))
>                          #:key-type (key-type public-key))
>
> and:
>
>   (bytevector->hash-data sha256
>                          #:key-type (key-type public-key))
>
> This sounds like a compiler bug, possibly related to Guile commit
> f95bf6921e13799abca6a0a13087609c42baba6b.
>
> Note that ‘bytevector->hash-data’ comes from Guile-Gcrypt, which was
> itself still compiled with 3.0.9.  So there’s a possibility that the bug
> comes with this particular combination as is exhibited by cross-module
> inlining.

Yup, that certainly sounds like what is happening here. Cross-module
inlining + the new keyword args optimization.

Sorry for breaking 'guix pull'. I thought I had scoped the changes
down to a safe level. :(

- Dave