Hello, myglc2 <[email protected]> skribis:
> g1@g1 ~/src/guix [env]$ make > make all-recursive > make[1]: Entering directory '/home/g1/src/guix' > Making all in po/guix > make[2]: Entering directory '/home/g1/src/guix/po/guix' > make[2]: Leaving directory '/home/g1/src/guix/po/guix' > Making all in po/packages > make[2]: Entering directory '/home/g1/src/guix/po/packages' > make[2]: Leaving directory '/home/g1/src/guix/po/packages' > make[2]: Entering directory '/home/g1/src/guix' > Compiling Scheme modules... > LOAD (guix base32) > LOAD (guix base64) > LOAD (guix cpio) > LOAD (guix records) > LOAD (guix gcrypt) > ;;; note: source file ./guix/config.scm > ;;; newer than compiled > /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/guix/config.scm.go [...] > ;;; note: source file ./gnu/packages/perl.scm > ;;; newer than compiled > /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/perl.scm.go > ;;; Failed to autoload canonical-package in (gnu packages base): > ;;; ERROR: In procedure struct-ref: Argument 1 out of range: 10 The problem is that ~/.cache/guile contains .go files that get loaded and take precedence over the code being compiled (probably these files exist because you used C-c C-k in Geiser or something similar). However, some of these files are stale and expect a different ABI, hence the error. “rm -rf ~/.cache/guile/ccache” would solve the problem, but could you instead try the attached patch and see if it solves the problem? Thanks, Ludo’.
diff --git a/Makefile.am b/Makefile.am index d18e330..1f01465 100644 --- a/Makefile.am +++ b/Makefile.am @@ -402,11 +402,13 @@ CLEANFILES = \ # there that are newer than the local .scm files (for instance because the # user ran 'make install' recently). When that happens, we end up loading # those previously-installed .go files, which may be stale, thereby breaking -# the whole thing. +# the whole thing. Likewise, set 'XDG_CACHE_HOME' to avoid loading possibly +# stale files from ~/.cache/guile/ccache. %.go: make-go ; @: make-go: $(MODULES) guix/config.scm guix/tests.scm $(AM_V_at)echo "Compiling Scheme modules..." ; \ unset GUILE_LOAD_COMPILED_PATH ; \ + XDG_CACHE_HOME=/nowhere \ host=$(host) srcdir="$(top_srcdir)" \ $(top_builddir)/pre-inst-env \ $(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)" \
