Subject: Re: bug#36511: extraneous recompiles of scm files while editing gnu/packages/

From: Robert Vollmert <[email-masked]>
Date: Fri, 12 Jul 2019 09:38:18 +0200

One further data-point, not immediately related to the recompile spam,
but to the proposed work-around when working within the guix repository:

The suggestion was that the default workflow should be to compile the
scheme files using `make`. That does avoid the recompile spam, but:

- adding a scheme file requires going through
  1. edit Makefile.am
  2. call bootstrap
  3. call configure, remembering the mystery localstatedir argument
  4. call make, waiting through documentation and nix-daemon compiles

- I get random mysterious documentation builds throughout. E.g. just now:

$ make
make  all-recursive
make[1]: Entering directory '/home/rob/guix'
Making all in po/guix
make[2]: Entering directory '/home/rob/guix/po/guix'
make[2]: Leaving directory '/home/rob/guix/po/guix'
Making all in po/packages
make[2]: Entering directory '/home/rob/guix/po/packages'
make[2]: Leaving directory '/home/rob/guix/po/packages'
make[2]: Entering directory '/home/rob/guix'
Updating ./doc/version.texi
Updating ./doc/version-de.texi
Updating ./doc/version-es.texi
Updating ./doc/version-fr.texi
Updating ./doc/version-ru.texi
Updating ./doc/version-zh_CN.texi
  CXX      nix/nix-daemon/guix_daemon-nix-daemon.o
[…]
  CXXLD    guix-daemon
  GEN      scripts/guix
Compiling Scheme modules...
[ 12%] LOAD     guix/build-system/elm.scm
;;; note: source file ./guix/config.scm
;;;       newer than compiled /home/rob/guix/guix/config.go
;;; note: source file ./guix/config.scm
;;;       newer than compiled /home/rob/guix/guix/config.go
[ 25%] LOAD     guix/build/elm-build-system.scm
guix/build/elm-build-system.scm:127:1: missing closing parenthesis

## call make again with no edits

$ make
make  all-recursive
make[1]: Entering directory '/home/rob/guix'
Making all in po/guix
make[2]: Entering directory '/home/rob/guix/po/guix'
make[2]: Leaving directory '/home/rob/guix/po/guix'
Making all in po/packages
make[2]: Entering directory '/home/rob/guix/po/packages'
make[2]: Leaving directory '/home/rob/guix/po/packages'
make[2]: Entering directory '/home/rob/guix'
  MAKEINFO doc/guix.info
  MAKEINFO doc/guix.de.info
  MAKEINFO doc/guix.es.info
  MAKEINFO doc/guix.fr.info
  MAKEINFO doc/guix.ru.info
./doc/guix.ru.texi:913: warning: accent command `@,' must not be followed by whitespace
Wide character in warn at /gnu/store/yrgwwr35l01qvnlqgr6d4wbwky3b1d74-profile/bin/makeinfo line 720.
./doc/guix.ru.texi:3881: warning: `.' or `,' must follow @xref, not д
  MAKEINFO doc/guix.zh_CN.info
Compiling Scheme modules...
[ 12%] LOAD     guix/build-system/elm.scm
;;; note: source file ./guix/config.scm
;;;       newer than compiled /home/rob/guix/guix/config.go
;;; note: source file ./guix/config.scm
;;;       newer than compiled /home/rob/guix/guix/config.go
[ 25%] LOAD     guix/build/elm-build-system.scm
guix/build/elm-build-system.scm:127:1: missing closing parenthesis

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:5765: make-go] Error 1
make[2]: Leaving directory '/home/rob/guix'
make[1]: *** [Makefile:4836: all-recursive] Error 1
make[1]: Leaving directory '/home/rob/guix'
make: *** [Makefile:3226: all] Error 2

Let me know if these should be considered separate bugs worth filing.