Subject: Re: bug#39301: imported module (guix build utils) overrides core binding `delete'

From: Ludovic Courtès <[email-masked]>
Date: Sun, 02 Feb 2020 22:14:20 +0100

Hello!

[email-masked] skribis:

> Whenever running "sudo guix system reconfigure /path/to/config.scm I
> get the following warnings:
>
> building
> /gnu/store/vpazjd711byj3jszh7jrk5d8lq51077g-switch-to-system.scm.drv...
> ;;; WARNING: loading compiled file
> /gnu/store/5bd6ywmfcxxa4gvpzg0pdbjwmf24cxkl-module-import-compiled/gnu/build/activation.go
> failed:
> ;;; In procedure load-thunk-from-memory: incompatible bytecode kind
> ;;; compiling

[...]

> building
> /gnu/store/alamdi63ns0ahis93jz1x4cndy4w09gf-install-bootloader.scm.drv...
> WARNING: (guile-user): imported module (guix build utils) overrides
> core binding `delete'
> ;;; WARNING: loading compiled file
> /gnu/store/62gvwndkddaq6203mrisshgiv13kkgcd-module-import-compiled/gnu/build/bootloader.go
> failed:
> ;;; In procedure load-thunk-from-memory: incompatible bytecode kind
> ;;; compiling
> /gnu/store/wamhgn5mhgzf9mgp9gxx3w6jn64hw4yc-module-import/gnu/build/bootloader.scm
> ;;; compiled
> /root/.cache/guile/ccache/3.0-LE-8-4.2/gnu/store/wamhgn5mhgzf9mgp9gxx3w6jn64hw4yc-module-import/gnu/build/bootloader.scm.go
> guix system: bootloader successfully installed on '/boot/efi'
> WARNING: (guile-user): imported module (guix build utils) overrides
> core binding `delete'

All these warnings are harmless and stem from the Guile 2.2/3.0
transition.  Specifically, it comes from the fact that ‘guix system
reconfigure’ evaluates this code with the host Guile (in this case 3.0),
whereas the modules are built for 2.2, which is what the Shepherd
depends on.

The culprit is ‘local-eval’ in (guix scripts system), which simply uses
‘primitive-eval’ to evaluate the code, thus disregarding the Guile
version that should be used.

One possibility would be to instead evaluate the expression in a
separate Guile process for the intended Guile version.

I’m not sure it’s worth it though.  The warnings will hopefully
disappear soon when we upgrade everything to 3.0.

Thoughts?

Ludo’.