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

Previous Next

Package: guix;

Reported by: myglc2 <myglc2 <at> gmail.com>

Date: Sun, 31 Jul 2016 21:12:01 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: ludo <at> gnu.org (Ludovic Courtès)
To: myglc2 <myglc2 <at> gmail.com>
Cc: 24120 <at> debbugs.gnu.org
Subject: bug#24120: ERROR: In procedure struct-ref: Argument 1 out of range: 10
Date: Mon, 01 Aug 2016 10:20:46 +0200
[Message part 1 (text/plain, inline)]
Hello,

myglc2 <myglc2 <at> gmail.com> skribis:

> g1 <at> 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’.

[Message part 2 (text/x-patch, inline)]
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)"		\

This bug report was last modified 8 years and 293 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.