bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24120: ERROR: In procedure struct-ref: Argument 1 out of range: 10


From: Ludovic Courtès
Subject: bug#24120: ERROR: In procedure struct-ref: Argument 1 out of range: 10
Date: Mon, 01 Aug 2016 10:20:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hello,

myglc2 <address@hidden> skribis:

> address@hidden ~/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)"                \

reply via email to

[Prev in Thread] Current Thread [Next in Thread]