[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)" \
- bug#24120: ERROR: In procedure struct-ref: Argument 1 out of range: 10,
Ludovic Courtès <=