Subject: bug#36079: unhelpful error message

From: Robert Vollmert <[email-masked]>
Date: Mon, 3 Jun 2019 22:42:09 +0200

Working on Guix, I encountered the following:

Within a guix checkout, I edited gnu/packages/haskell.scm, accidentally
making a Haskell comment:

    (arguments
     `(#:tests? #f)) -- sporadic failure: https://github.com/fpco/streaming-commons/issues/49

Then I tried to keep working on my in-development package, and was able to trace
the `guix build` error back to the following:

$ ./pre-inst-env guild compile ../modules/postgrest.scm
;;; note: source file /home/rob/guix/gnu/packages/haskell.scm
;;;       newer than compiled /home/rob/guix/gnu/packages/haskell.go
;;; note: source file /home/rob/guix/gnu/packages/haskell.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/haskell.go
ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
Syntax error:
unknown location: package: invalid field specifier in form —-

There are number of ways the error output could be improved. Ideally, I’d
like to see the offending line of gnu/packages/haskell.scm pin-pointed,
and/or the start of the enclosing package definition. But if that’s maybe
difficult due to macro expansion issues, at least knowing which file failed
to compile would be great. gnu/packages/haskell.scm does fail to compile
by itself:

$ guild compile gnu/packages/haskell.scm 
ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
Syntax error:
unknown location: package: invalid field specifier in form —-

This is on a pretty up to date Guix install.

$ guild --version
guild (GNU Guile) 2.2.4