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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24120 in the body.
You can then email your comments to 24120 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#24120; Package guix. (Sun, 31 Jul 2016 21:12:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to myglc2 <myglc2 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 31 Jul 2016 21:12:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: myglc2 <myglc2 <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: ERROR: In procedure struct-ref: Argument 1 out of range: 10
Date: Sun, 31 Jul 2016 17:09:12 -0400
building guix from git checkout on GuixSD using guix pull.

Please see details below.

Commentary: In bug#23973 'make clean-go' fixed this error. Am I missing
something?

PS: posted similar bugs twice over the last 2 days via gmane, which is
swallowing my bug-guix posts, but not other ones. If gmane ever lets
loose, it may be a duplicate or triplicate for which I am _Sorry_ in
advance !-)

Version info:

g1 <at> g1 ~/src$ ./mkguix.sh
+ cd /home/g1/src/guix
+ git log -n 1 --oneline
2fa66f4 gnu: mutt: Update to 1.6.2.
+ git describe
v0.10.0-2062-g2fa66f4
+ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
+ stat /home/g1/.config/guix/latest
+ grep File:
  File: ‘/home/g1/.config/guix/latest’ -> ‘/gnu/store/xi604iz72jfmjd4r9sa9aif48a1jk2mz-guix-latest’
+ guix --version
guix (GNU Guix) 20160731.20
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guix environment guix

make attempt:

g1 <at> g1 ~/src/guix [env]$ make clean-go
*** output flushed ***
g1 <at> g1 ~/src/guix [env]$ ./bootstrap
*** output flushed ***
g1 <at> g1 ~/src/guix [env]$ ./configure --localstatedir=/var
*** output flushed ***
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
  LOAD     (guix hash)
  LOAD     (guix pk-crypto)
  LOAD     (guix pki)
  LOAD     (guix combinators)
  LOAD     (guix utils)
  LOAD     (guix sets)
  LOAD     (guix download)
;;; note: source file ./guix/packages.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/guix/packages.scm.go
  LOAD     (guix git-download)
  LOAD     (guix hg-download)
  LOAD     (guix monads)
  LOAD     (guix monad-repl)
  LOAD     (guix gexp)
  LOAD     (guix profiles)
;;; note: source file ./guix/profiles.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/guix/profiles.scm.go
  LOAD     (guix serialization)
  LOAD     (guix nar)
  LOAD     (guix derivations)
  LOAD     (guix grafts)
  LOAD     (guix gnu-maintenance)
  LOAD     (guix upstream)
  LOAD     (guix licenses)
  LOAD     (guix graph)
  LOAD     (guix cve)
  LOAD     (guix zlib)
  LOAD     (guix build-system)
  LOAD     (guix build-system ant)
  LOAD     (guix build-system cmake)
  LOAD     (guix build-system emacs)
  LOAD     (guix build-system glib-or-gtk)
  LOAD     (guix build-system gnu)
  LOAD     (guix build-system haskell)
  LOAD     (guix build-system perl)
  LOAD     (guix build-system python)
  LOAD     (guix build-system waf)
  LOAD     (guix build-system r)
  LOAD     (guix build-system ruby)
  LOAD     (guix build-system trivial)
  LOAD     (guix ftp-client)
  LOAD     (guix http-client)
  LOAD     (guix gnupg)
  LOAD     (guix elf)
  LOAD     (guix store)
  LOAD     (guix cvs-download)
  LOAD     (guix svn-download)
  LOAD     (guix ui)
  LOAD     (guix build ant-build-system)
  LOAD     (guix build download)
  LOAD     (guix build cmake-build-system)
  LOAD     (guix build emacs-build-system)
  LOAD     (guix build git)
  LOAD     (guix build hg)
  LOAD     (guix build glib-or-gtk-build-system)
  LOAD     (guix build gnu-build-system)
  LOAD     (guix build gnu-dist)
  LOAD     (guix build perl-build-system)
  LOAD     (guix build python-build-system)
  LOAD     (guix build r-build-system)
  LOAD     (guix build ruby-build-system)
  LOAD     (guix build waf-build-system)
  LOAD     (guix build haskell-build-system)
  LOAD     (guix build store-copy)
  LOAD     (guix build utils)
  LOAD     (guix build union)
  LOAD     (guix build profiles)
  LOAD     (guix build pull)
  LOAD     (guix build rpath)
  LOAD     (guix build cvs)
  LOAD     (guix build svn)
  LOAD     (guix build gremlin)
  LOAD     (guix build emacs-utils)
  LOAD     (guix build graft)
  LOAD     (guix build bournish)
  LOAD     (guix search-paths)
  LOAD     (guix packages)
  LOAD     (guix import utils)
  LOAD     (guix import gnu)
  LOAD     (guix import snix)
  LOAD     (guix import cabal)
  LOAD     (guix import cran)
  LOAD     (guix import hackage)
  LOAD     (guix import elpa)
  LOAD     (guix scripts)
;;; note: source file ./guix/scripts.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/guix/scripts.scm.go
  LOAD     (guix scripts download)
  LOAD     (guix scripts build)
  LOAD     (guix scripts archive)
;;; note: source file ./gnu/packages.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages.scm.go
  LOAD     (guix scripts import)
  LOAD     (guix scripts package)
;;; note: source file ./guix/scripts/package.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/guix/scripts/package.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
;;; note: source file ./gnu/packages/flex.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/flex.scm.go
;;; note: source file ./gnu/packages/bison.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/bison.scm.go
;;; note: source file ./gnu/packages/linux.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/linux.scm.go
;;; note: source file ./gnu/packages/admin.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/admin.scm.go
;;; note: source file ./gnu/packages/databases.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/databases.scm.go
;;; note: source file ./gnu/packages/gnome.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/gnome.scm.go
;;; note: source file ./gnu/packages/python.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/python.scm.go
;;; note: source file ./gnu/packages/xorg.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/xorg.scm.go
;;; note: source file ./gnu/packages/image.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/image.scm.go
;;; note: source file ./gnu/packages/ssh.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/ssh.scm.go
;;; note: source file ./gnu/packages/protobuf.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/protobuf.scm.go
;;; note: source file ./gnu/packages/qt.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/qt.scm.go
;;; Failed to autoload guile-2.0 in (gnu packages guile):
;;; ERROR: In procedure struct-ref: Argument 1 out of range: 10
  LOAD     (guix scripts gc)
  LOAD     (guix scripts hash)
  LOAD     (guix scripts pull)
  LOAD     (guix scripts substitute)
  LOAD     (guix scripts authenticate)
  LOAD     (guix scripts refresh)
;;; note: source file ./gnu/packages/commencement.scm
;;;       newer than compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/src/guix/gnu/packages/commencement.scm.go
Backtrace:
In ice-9/boot-9.scm:
2789: 19 [#<procedure 12116e0 at ice-9/boot-9.scm:2777:4 (name #:optional autoload version #:key ensure)> # ...]
3065: 18 [try-module-autoload (guix scripts refresh) #f]
2401: 17 [save-module-excursion #<procedure 30711b0 at ice-9/boot-9.scm:3066:17 ()>]
3085: 16 [#<procedure 30711b0 at ice-9/boot-9.scm:3066:17 ()>]
In unknown file:
   ?: 15 [primitive-load-path "guix/scripts/refresh" ...]
In /home/g1/.config/guix/latest/guix/scripts/refresh.scm:
  23: 14 [#<procedure 44baaa0 ()>]
In ice-9/boot-9.scm:
2951: 13 [define-module* (guix scripts refresh) #:filename ...]
2926: 12 [resolve-imports (((guix ui)) ((guix hash)) ((guix scripts)) ...)]
2864: 11 [resolve-interface (gnu packages commencement) #:select ...]
2789: 10 [#<procedure 12116e0 at ice-9/boot-9.scm:2777:4 (name #:optional autoload version #:key ensure)> # ...]
3065: 9 [try-module-autoload (gnu packages commencement) #f]
2401: 8 [save-module-excursion #<procedure 30751b0 at ice-9/boot-9.scm:3066:17 ()>]
3085: 7 [#<procedure 30751b0 at ice-9/boot-9.scm:3066:17 ()>]
In unknown file:
   ?: 6 [primitive-load-path "gnu/packages/commencement" ...]
In ice-9/eval.scm:
 453: 5 [eval # ()]
 387: 4 [eval # ()]
 387: 3 [eval # #]
 387: 2 [eval # #]
 393: 1 [eval # #]
In unknown file:
   ?: 0 [memoize-variable-access! #<memoized gnu-make> #<directory # 382b240>]

ERROR: In procedure memoize-variable-access!:
ERROR: Unbound variable: gnu-make
Makefile:4851: recipe for target 'make-go' failed
make[2]: *** [make-go] Error 1
make[2]: Leaving directory '/home/g1/src/guix'
Makefile:3997: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/g1/src/guix'
Makefile:2626: recipe for target 'all' failed
make: *** [all] Error 2
g1 <at> g1 ~/src/guix [env]$ exit
exit
g1 <at> g1 ~/src$ exit
exit

Process shell exited abnormally with code 2




Information forwarded to bug-guix <at> gnu.org:
bug#24120; Package guix. (Mon, 01 Aug 2016 08:21:01 GMT) Full text and rfc822 format available.

Message #8 received at 24120 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: myglc2 <myglc2 <at> gmail.com>
Cc: 24120 <at> debbugs.gnu.org
Subject: Re: 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)"		\

Information forwarded to bug-guix <at> gnu.org:
bug#24120; Package guix. (Mon, 01 Aug 2016 14:11:01 GMT) Full text and rfc822 format available.

Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):

From: myglc2 <myglc2 <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: Re: bug#24120: ERROR: In procedure struct-ref: Argument 1 out of
 range: 10
Date: Mon, 01 Aug 2016 10:08:16 -0400
ludo <at> gnu.org (Ludovic Courtès) writes:

> “rm -rf ~/.cache/guile/ccache” would solve the problem, but could you
> instead try the attached patch and see if it solves the problem?

The patch works, Thank you! - George





Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Mon, 01 Aug 2016 21:25:02 GMT) Full text and rfc822 format available.

Notification sent to myglc2 <myglc2 <at> gmail.com>:
bug acknowledged by developer. (Mon, 01 Aug 2016 21:25:02 GMT) Full text and rfc822 format available.

Message #16 received at 24120-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: myglc2 <myglc2 <at> gmail.com>
Cc: 24120-done <at> debbugs.gnu.org
Subject: Re: bug#24120: ERROR: In procedure struct-ref: Argument 1 out of
 range: 10
Date: Mon, 01 Aug 2016 23:23:54 +0200
myglc2 <myglc2 <at> gmail.com> skribis:

> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> “rm -rf ~/.cache/guile/ccache” would solve the problem, but could you
>> instead try the attached patch and see if it solves the problem?
>
> The patch works, Thank you! - George

Pushed as d92e23dc9dcc90f2fbf2c956201ae194d6d31742, thanks!

Ludo'.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 30 Aug 2016 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 241 days ago.

Previous Next


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