Subject: Guix 0.16.0-8 FTBFS: ">>= (bind) used outside of 'with-monad'"

From: Mark H Weaver <[email-masked]>
Date: Wed, 16 Jan 2019 18:33:35 -0500

In the most recent evaluation of 'master' on hydra.gnu.org (eval 110393,
corresponding to git commit 5327e912a8a477e472da9ec03c99cdedcc04af75),
the 'guix' package failed to build on x86_64, with the following error:

--8<---------------cut here---------------start------------->8---
guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))
--8<---------------cut here---------------end--------------->8---

I suspect that this error is non-deterministic, so I restarted the build
after saving a copy of the failed build log.  See below for the tail of
the build log.

      Mark

--8<---------------cut here---------------start------------->8---
  LOAD     gnu/tests/security-token.scm
  LOAD     gnu/tests/ssh.scm
  LOAD     gnu/tests/version-control.scm
  LOAD     gnu/tests/virtualization.scm
  LOAD     gnu/tests/web.scm
  LOAD     guix/ssh.scm
  LOAD     guix/scripts/copy.scm
  LOAD     guix/store/ssh.scm
  LOAD     guix/scripts/offload.scm
  LOAD     guix/store/database.scm
  LOAD     guix/store/deduplication.scm
  LOAD     guix/config.scm
  LOAD     guix/tests.scm
  LOAD     guix/tests/http.scm
  GUILEC   guix/base16.go
  GUILEC   guix/base32.go
  GUILEC   guix/base64.go
  GUILEC   guix/ci.go
  GUILEC   guix/cpio.go
  GUILEC   guix/docker.go
  GUILEC   guix/records.go
  GUILEC   guix/pki.go
  GUILEC   guix/progress.go
  GUILEC   guix/combinators.go
  GUILEC   guix/memoization.go
  GUILEC   guix/utils.go
  GUILEC   guix/sets.go
  GUILEC   guix/modules.go
  GUILEC   guix/download.go
  GUILEC   guix/discovery.go
  GUILEC   guix/git-download.go
  GUILEC   guix/hg-download.go
  GUILEC   guix/swh.go
  GUILEC   guix/monads.go
  GUILEC   guix/monad-repl.go
In system/base/compile.scm:
   183:32 19 (compile-fold (#<procedure compile-tree-il (x e opts)>) …)
In ice-9/boot-9.scm:
   2312:4 18 (save-module-excursion #<procedure 15c77ec0 at language…>)
In language/scheme/compile-tree-il.scm:
    31:15 17 (_)
In ice-9/psyntax.scm:
  1234:22 16 (expand-top-sequence ((define* (hg-fetch ref # # …) …)) …)
In ice-9/boot-9.scm:
   222:17 15 (map1 (#<procedure 160f9720 at ice-9/psyntax.scm:1151:…>))
In ice-9/psyntax.scm:
  1409:12 14 (_)
  2260:30 13 (_ _ _ _)
  1882:14 12 (_ _ _ _ () () ())
  1945:21 11 (_ _ _)
  1696:61 10 (parse _ _ _ _ _ _ _)
In ice-9/boot-9.scm:
   222:17  9 (map1 (((("placeholder" placeholder) ("l-2c…" . #) …) …)))
In ice-9/psyntax.scm:
  1612:33  8 (parse (((("placeholder" placeholder) ((#) . #) …) . #)) …)
  1348:32  7 (syntax-type (#<syntax >>=> #<syntax (package->deri…> …) …)
  1559:32  6 (expand-macro #<procedure 1493fa00 at ice-9/eval.scm:3…> …)
I  GUILEC   guix/gexp.go
n ice-9/boot-9.scm:
   752:25  5 (dispatch-exception _ _ _)
   751:25  4 (dispatch-exception 1 syntax-error (>>= ">>= (bind) …" …))
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guix build compile) 5f58c0>) # (…)))
In ice-9/boot-9.scm:
    GUILEC   guix/profiles.go
  829:9  2 (catch #t #<procedure 14ab9120 at ice-9/eval.scm:330:1…> …)
In ice-9/eval.scm:
   293:34  1 (_ #(#(#(#<directory (guix build compile) 5f58c0> …)) #))
In unknown file:
           0 (make-stack #t)
ice-9/eval.scm:293:34: Syntax error:
guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))
random seed for tests: 1547587378

Some deprecated features have been used.  Set the environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information.  Set it to "no" to suppress
this message.
make[2]: *** [Makefile:5574: make-go] Error 1
make[2]: Leaving directory '/tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source'
make[1]: *** [Makefile:4655: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source'
make: *** [Makefile:3271: all] Error 2
Backtrace:
           4 (primitive-load "/gnu/store/lz5zwvd999nw24qv0vnia608iaz…")
In ice-9/eval.scm:
   191:35  3 (_ _)
In srfi/srfi-1.scm:
   863:16  2 (every1 #<procedure 823420 at /gnu/store/gfprsx2m62cvq…> …)
In /gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/gnu-build-system.scm:
   799:28  1 (_ _)
In /gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/utils.scm:
    616:6  0 (invoke _ . _)

/gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/utils.scm:616:6: In procedure invoke:
Throw to key `srfi-34' with args `(#<condition &invoke-error [program: "make" arguments: ("-j" "8") exit-status: 2 term-signal: #f stop-signal: #f] 5d3b80>)'.
builder for `/gnu/store/gxb0dhg3zifxc9mjl8pmdra1w13nnk0p-guix-0.16.0-8.7ba2b27.drv' failed with exit code 1
@ build-failed /gnu/store/gxb0dhg3zifxc9mjl8pmdra1w13nnk0p-guix-0.16.0-8.7ba2b27.drv - 1 builder for `/gnu/store/gxb0dhg3zifxc9mjl8pmdra1w13nnk0p-guix-0.16.0-8.7ba2b27.drv' failed with exit code 1
--8<---------------cut here---------------end--------------->8---