extraneous recompiles of scm files while editing gnu/packages/

  • Open
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Robert Vollmert
Owner
unassigned
Submitted by
Robert Vollmert
Severity
normal
R
R
Robert Vollmert wrote on 5 Jul 2019 16:22
(address . bug-guix@gnu.org)
D55C0687-357F-4DDE-9251-55C557E2D455@vllmrt.net
I’ve just been working on a local guix clone, tried building a package
which failed, but not after lots of the usual “newer than compiled”
messages, but fine, I pulled a while earlier and hadn’t rebuilt. But then,
after editing just a few lines in a single file (gnu/packages/haskell.scm),
the following happened, which seems wrong:

rob@garp ~/guix$ nano gnu/packages/haskell.scm
rob@garp ~/guix$ ./pre-inst-env guix build ghc-ansi-wl-pprint
;;; note: source file /home/rob/guix/guix/ui.scm
;;; newer than compiled /home/rob/guix/guix/ui.go
;;; note: source file /home/rob/guix/guix/ui.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/ui.go
;;; note: source file /home/rob/guix/guix/store.scm
;;; newer than compiled /home/rob/guix/guix/store.go
;;; note: source file /home/rob/guix/guix/store.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/store.go
;;; note: source file /home/rob/guix/guix/store.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/guix/store.scm.go
;;; note: source file /home/rob/guix/guix/build/syscalls.scm
;;; newer than compiled /home/rob/guix/guix/build/syscalls.go
;;; note: source file /home/rob/guix/guix/build/syscalls.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/build/syscalls.go
;;; note: source file /home/rob/guix/guix/build/syscalls.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/guix/build/syscalls.scm.go
;;; note: source file /home/rob/guix/guix/derivations.scm
;;; newer than compiled /home/rob/guix/guix/derivations.go
;;; note: source file /home/rob/guix/guix/derivations.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/derivations.go
;;; note: source file /home/rob/guix/guix/derivations.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/guix/derivations.scm.go
;;; note: source file /home/rob/guix/guix/grafts.scm
;;; newer than compiled /home/rob/guix/guix/grafts.go
;;; note: source file /home/rob/guix/guix/grafts.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/grafts.go
;;; note: source file /home/rob/guix/guix/grafts.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/guix/grafts.scm.go
;;; note: source file /home/rob/guix/guix/profiles.scm
;;; newer than compiled /home/rob/guix/guix/profiles.go
;;; note: source file /home/rob/guix/guix/profiles.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/profiles.go
;;; note: source file /home/rob/guix/guix/build/download.scm
;;; newer than compiled /home/rob/guix/guix/build/download.go
;;; note: source file /home/rob/guix/guix/build/download.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/build/download.go
;;; note: source file /home/rob/guix/guix/build/download.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/guix/build/download.scm.go
;;; note: source file /home/rob/guix/gnu/packages.scm
;;; newer than compiled /home/rob/guix/gnu/packages.go
;;; note: source file /home/rob/guix/gnu/packages.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages.go
;;; note: source file /home/rob/guix/guix/download.scm
;;; newer than compiled /home/rob/guix/guix/download.go
;;; note: source file /home/rob/guix/guix/download.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/download.go
;;; note: source file /home/rob/guix/guix/download.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/guix/download.scm.go
;;; note: source file /home/rob/guix/gnu/packages/perl.scm
;;; newer than compiled /home/rob/guix/gnu/packages/perl.go
;;; note: source file /home/rob/guix/gnu/packages/perl.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/perl.go
;;; note: source file /home/rob/guix/gnu/packages/compression.scm
;;; newer than compiled /home/rob/guix/gnu/packages/compression.go
;;; note: source file /home/rob/guix/gnu/packages/compression.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/compression.go
;;; note: source file /home/rob/guix/gnu/packages/admin.scm
;;; newer than compiled /home/rob/guix/gnu/packages/admin.go
;;; note: source file /home/rob/guix/gnu/packages/admin.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/admin.go
;;; note: source file /home/rob/guix/guix/build-system/python.scm
;;; newer than compiled /home/rob/guix/guix/build-system/python.go
;;; note: source file /home/rob/guix/guix/build-system/python.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/guix/build-system/python.go
;;; note: source file /home/rob/guix/gnu/packages/bash.scm
;;; newer than compiled /home/rob/guix/gnu/packages/bash.go
;;; note: source file /home/rob/guix/gnu/packages/bash.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/bash.go
;;; note: source file /home/rob/guix/gnu/packages/guile.scm
;;; newer than compiled /home/rob/guix/gnu/packages/guile.go
;;; note: source file /home/rob/guix/gnu/packages/guile.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/guile.go
;;; note: source file /home/rob/guix/gnu/packages/algebra.scm
;;; newer than compiled /home/rob/guix/gnu/packages/algebra.go
;;; note: source file /home/rob/guix/gnu/packages/algebra.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/algebra.go
;;; note: source file /home/rob/guix/gnu/packages/check.scm
;;; newer than compiled /home/rob/guix/gnu/packages/check.go
;;; note: source file /home/rob/guix/gnu/packages/check.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/check.go
;;; note: source file /home/rob/guix/gnu/packages/linux.scm
;;; newer than compiled /home/rob/guix/gnu/packages/linux.go
;;; note: source file /home/rob/guix/gnu/packages/linux.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/linux.go
;;; note: source file /home/rob/guix/gnu/packages/audio.scm
;;; newer than compiled /home/rob/guix/gnu/packages/audio.go
;;; note: source file /home/rob/guix/gnu/packages/audio.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/audio.go
;;; note: source file /home/rob/guix/gnu/packages/crypto.scm
;;; newer than compiled /home/rob/guix/gnu/packages/crypto.go
;;; note: source file /home/rob/guix/gnu/packages/crypto.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/crypto.go
;;; note: source file /home/rob/guix/gnu/packages/imagemagick.scm
;;; newer than compiled /home/rob/guix/gnu/packages/imagemagick.go
;;; note: source file /home/rob/guix/gnu/packages/imagemagick.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/imagemagick.go
;;; note: source file /home/rob/guix/gnu/packages/python-xyz.scm
;;; newer than compiled /home/rob/guix/gnu/packages/python-xyz.go
;;; note: source file /home/rob/guix/gnu/packages/python-xyz.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/python-xyz.go
;;; note: source file /home/rob/guix/gnu/packages/databases.scm
;;; newer than compiled /home/rob/guix/gnu/packages/databases.go
;;; note: source file /home/rob/guix/gnu/packages/databases.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/databases.go
;;; note: source file /home/rob/guix/gnu/packages/icu4c.scm
;;; newer than compiled /home/rob/guix/gnu/packages/icu4c.go
;;; note: source file /home/rob/guix/gnu/packages/icu4c.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/icu4c.go
;;; note: source file /home/rob/guix/gnu/packages/image.scm
;;; newer than compiled /home/rob/guix/gnu/packages/image.go
;;; note: source file /home/rob/guix/gnu/packages/image.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/image.go
;;; note: source file /home/rob/guix/gnu/packages/tls.scm
;;; newer than compiled /home/rob/guix/gnu/packages/tls.go
;;; note: source file /home/rob/guix/gnu/packages/tls.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/tls.go
;;; note: source file /home/rob/guix/gnu/packages/web.scm
;;; newer than compiled /home/rob/guix/gnu/packages/web.go
;;; note: source file /home/rob/guix/gnu/packages/web.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/web.go
;;; note: source file /home/rob/guix/gnu/packages/gtk.scm
;;; newer than compiled /home/rob/guix/gnu/packages/gtk.go
;;; note: source file /home/rob/guix/gnu/packages/gtk.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/gtk.go
;;; note: source file /home/rob/guix/gnu/packages/gl.scm
;;; newer than compiled /home/rob/guix/gnu/packages/gl.go
;;; note: source file /home/rob/guix/gnu/packages/gl.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/gl.go
;;; note: source file /home/rob/guix/gnu/packages/llvm.scm
;;; newer than compiled /home/rob/guix/gnu/packages/llvm.go
;;; note: source file /home/rob/guix/gnu/packages/llvm.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/llvm.go
;;; note: source file /home/rob/guix/gnu/packages/python-compression.scm
;;; newer than compiled /home/rob/guix/gnu/packages/python-compression.go
;;; note: source file /home/rob/guix/gnu/packages/python-compression.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/python-compression.go
;;; note: source file /home/rob/guix/gnu/packages/maths.scm
;;; newer than compiled /home/rob/guix/gnu/packages/maths.go
;;; note: source file /home/rob/guix/gnu/packages/maths.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/maths.go
;;; note: source file /home/rob/guix/gnu/packages/xorg.scm
;;; newer than compiled /home/rob/guix/gnu/packages/xorg.go
;;; note: source file /home/rob/guix/gnu/packages/xorg.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/xorg.go
;;; note: source file /home/rob/guix/gnu/packages/gstreamer.scm
;;; newer than compiled /home/rob/guix/gnu/packages/gstreamer.go
;;; note: source file /home/rob/guix/gnu/packages/gstreamer.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/gstreamer.go
;;; note: source file /home/rob/guix/gnu/packages/video.scm
;;; newer than compiled /home/rob/guix/gnu/packages/video.go
;;; note: source file /home/rob/guix/gnu/packages/video.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/video.go
;;; note: source file /home/rob/guix/gnu/packages/music.scm
;;; newer than compiled /home/rob/guix/gnu/packages/music.go
;;; note: source file /home/rob/guix/gnu/packages/music.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/music.go
;;; note: source file /home/rob/guix/gnu/packages/game-development.scm
;;; newer than compiled /home/rob/guix/gnu/packages/game-development.go
;;; note: source file /home/rob/guix/gnu/packages/game-development.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/game-development.go
;;; 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
;;; note: source file /home/rob/guix/gnu/packages/haskell.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix/gnu/packages/haskell.scm.go
;;; note: source file /home/rob/guix/gnu/packages/haskell-check.scm
;;; newer than compiled /home/rob/guix/gnu/packages/haskell-check.go
;;; note: source file /home/rob/guix/gnu/packages/haskell-check.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/haskell-check.go
;;; note: source file /home/rob/guix/gnu/packages/haskell-crypto.scm
;;; newer than compiled /home/rob/guix/gnu/packages/haskell-crypto.go
;;; note: source file /home/rob/guix/gnu/packages/haskell-crypto.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/haskell-crypto.go
;;; note: source file /home/rob/guix/gnu/packages/haskell-web.scm
;;; newer than compiled /home/rob/guix/gnu/packages/haskell-web.go
;;; note: source file /home/rob/guix/gnu/packages/haskell-web.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/haskell-web.go
;;; note: source file /home/rob/guix/gnu/packages/lisp.scm
;;; newer than compiled /home/rob/guix/gnu/packages/lisp.go
;;; note: source file /home/rob/guix/gnu/packages/lisp.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/lisp.go
;;; note: source file /home/rob/guix/gnu/packages/xdisorg.scm
;;; newer than compiled /home/rob/guix/gnu/packages/xdisorg.go
;;; note: source file /home/rob/guix/gnu/packages/xdisorg.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/xdisorg.go
;;; note: source file /home/rob/guix/gnu/packages/webkit.scm
;;; newer than compiled /home/rob/guix/gnu/packages/webkit.go
;;; note: source file /home/rob/guix/gnu/packages/webkit.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/webkit.go
;;; note: source file /home/rob/guix/gnu/packages/mpd.scm
;;; newer than compiled /home/rob/guix/gnu/packages/mpd.go
;;; note: source file /home/rob/guix/gnu/packages/mpd.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/mpd.go
;;; note: source file /home/rob/guix/gnu/packages/package-management.scm
;;; newer than compiled /home/rob/guix/gnu/packages/package-management.go
;;; note: source file /home/rob/guix/gnu/packages/package-management.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/package-management.go
;;; note: source file /home/rob/guix/gnu/packages/guile-xyz.scm
;;; newer than compiled /home/rob/guix/gnu/packages/guile-xyz.go
;;; note: source file /home/rob/guix/gnu/packages/guile-xyz.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/guile-xyz.go
;;; note: source file /home/rob/guix/gnu/packages/emacs-xyz.scm
;;; newer than compiled /home/rob/guix/gnu/packages/emacs-xyz.go
;;; note: source file /home/rob/guix/gnu/packages/emacs-xyz.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/emacs-xyz.go
;;; note: source file /home/rob/guix/gnu/packages/mail.scm
;;; newer than compiled /home/rob/guix/gnu/packages/mail.go
;;; note: source file /home/rob/guix/gnu/packages/mail.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/mail.go
;;; note: source file /home/rob/guix/gnu/packages/text-editors.scm
;;; newer than compiled /home/rob/guix/gnu/packages/text-editors.go
;;; note: source file /home/rob/guix/gnu/packages/text-editors.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/text-editors.go
;;; note: source file /home/rob/guix/gnu/packages/regex.scm
;;; newer than compiled /home/rob/guix/gnu/packages/regex.go
;;; note: source file /home/rob/guix/gnu/packages/regex.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/regex.go
;;; note: source file /home/rob/guix/gnu/packages/virtualization.scm
;;; newer than compiled /home/rob/guix/gnu/packages/virtualization.go
;;; note: source file /home/rob/guix/gnu/packages/virtualization.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/virtualization.go
;;; note: source file /home/rob/guix/gnu/packages/rust.scm
;;; newer than compiled /home/rob/guix/gnu/packages/rust.go
;;; note: source file /home/rob/guix/gnu/packages/rust.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/rust.go
;;; note: source file /home/rob/guix/gnu/packages/upnp.scm
;;; newer than compiled /home/rob/guix/gnu/packages/upnp.go
;;; note: source file /home/rob/guix/gnu/packages/upnp.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/upnp.go
;;; note: source file /home/rob/guix/gnu/packages/vpn.scm
;;; newer than compiled /home/rob/guix/gnu/packages/vpn.go
;;; note: source file /home/rob/guix/gnu/packages/vpn.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/vpn.go
;;; note: source file /home/rob/guix/gnu/packages/geo.scm
;;; newer than compiled /home/rob/guix/gnu/packages/geo.go
;;; note: source file /home/rob/guix/gnu/packages/geo.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/geo.go
;;; note: source file /home/rob/guix/gnu/packages/python-check.scm
;;; newer than compiled /home/rob/guix/gnu/packages/python-check.go
;;; note: source file /home/rob/guix/gnu/packages/python-check.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/python-check.go
;;; note: source file /home/rob/guix/gnu/packages/agda.scm
;;; newer than compiled /home/rob/guix/gnu/packages/agda.go
;;; note: source file /home/rob/guix/gnu/packages/agda.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/agda.go
;;; note: source file /home/rob/guix/gnu/packages/android.scm
;;; newer than compiled /home/rob/guix/gnu/packages/android.go
;;; note: source file /home/rob/guix/gnu/packages/android.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/android.go
;;; note: source file /home/rob/guix/gnu/packages/astronomy.scm
;;; newer than compiled /home/rob/guix/gnu/packages/astronomy.go
;;; note: source file /home/rob/guix/gnu/packages/astronomy.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/astronomy.go
;;; note: source file /home/rob/guix/gnu/packages/flashing-tools.scm
;;; newer than compiled /home/rob/guix/gnu/packages/flashing-tools.go
;;; note: source file /home/rob/guix/gnu/packages/flashing-tools.scm
;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/flashing-tools.go
;;; note: source file /home/rob/guix/gnu/packages/bioconductor.scm
;;; newer than compiled /home/rob/guix/gnu/packages/bioconductor.go
;;; note: source file /home/rob/guix/gnu/packages/b
This message was truncated. Download the full message here.
L
L
Ludovic Courtès wrote on 5 Jul 2019 22:40
(name . Robert Vollmert)(address . rob@vllmrt.net)(address . 36511@debbugs.gnu.org)
87k1cwjjul.fsf@gnu.org
Hi,

Robert Vollmert <rob@vllmrt.net> skribis:

Toggle quote (3 lines)
> rob@garp ~/guix$ nano gnu/packages/haskell.scm
> rob@garp ~/guix$ ./pre-inst-env guix build ghc-ansi-wl-pprint

I’d suggest running “make” once you’ve edited a file.

It’s not strictly necessary (Guile then simply evaluates code instead of
running compiled code), but it will allow you to get rid of these
warnings, the compiler might warn you ahead of time of possible
mistakes, and the whole thing will be slightly faster.

Does that make sense?

Ludo’.
R
R
Robert Vollmert wrote on 8 Jul 2019 09:50
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 36511@debbugs.gnu.org)
E0B2EBE5-450A-407D-BD52-0A57A8B1DF4A@vllmrt.net
Toggle quote (18 lines)
> On 5. Jul 2019, at 22:40, Ludovic Courtès <ludo@gnu.org> wrote:
>
> Hi,
>
> Robert Vollmert <rob@vllmrt.net> skribis:
>
>> rob@garp ~/guix$ nano gnu/packages/haskell.scm
>> rob@garp ~/guix$ ./pre-inst-env guix build ghc-ansi-wl-pprint
>
> I’d suggest running “make” once you’ve edited a file.
>
> It’s not strictly necessary (Guile then simply evaluates code instead of
> running compiled code), but it will allow you to get rid of these
> warnings, the compiler might warn you ahead of time of possible
> mistakes, and the whole thing will be slightly faster.
>
> Does that make sense?

It does make sense. However once again my complaint is a bit more about the
developer experience than how to work around the current state. I feel that
a situation where the obvious thing works but is painful (guile debug spam,
slowness) and you need to learn to do things differently (always run make first,
which frequently causes work you don’t even care about, such as a guix-daemon
recompile or po-file work) could be improved upon.

Concretely, this bug report is in response to

In that spirit, “you should run make first” is not answer I’m completely
happy with. :)

Cheers
Robert
L
L
Ludovic Courtès wrote on 8 Jul 2019 12:03
(name . Robert Vollmert)(address . rob@vllmrt.net)(address . 36511@debbugs.gnu.org)
878st8g7w0.fsf@gnu.org
Robert Vollmert <rob@vllmrt.net> skribis:

Toggle quote (25 lines)
>> On 5. Jul 2019, at 22:40, Ludovic Courtès <ludo@gnu.org> wrote:
>>
>> Hi,
>>
>> Robert Vollmert <rob@vllmrt.net> skribis:
>>
>>> rob@garp ~/guix$ nano gnu/packages/haskell.scm
>>> rob@garp ~/guix$ ./pre-inst-env guix build ghc-ansi-wl-pprint
>>
>> I’d suggest running “make” once you’ve edited a file.
>>
>> It’s not strictly necessary (Guile then simply evaluates code instead of
>> running compiled code), but it will allow you to get rid of these
>> warnings, the compiler might warn you ahead of time of possible
>> mistakes, and the whole thing will be slightly faster.
>>
>> Does that make sense?
>
> It does make sense. However once again my complaint is a bit more about the
> developer experience than how to work around the current state. I feel that
> a situation where the obvious thing works but is painful (guile debug spam,
> slowness) and you need to learn to do things differently (always run make first,
> which frequently causes work you don’t even care about, such as a guix-daemon
> recompile or po-file work) could be improved upon.

Yes I agree. Things to have to be compiled at one point though. We
could let Guile auto-compile code, but unfortunately that comes with its
own warts: the equivalent of “make clean-go”, for instance when an ABI
incompatibility pops up, is “rm -rf ~/.cache/guile/ccache”, and that too
is something a developer has too learn, and one could argue that it’s
less familiar than “make” or “make clean.”

So, I’m not satisfied with the ./pre-inst-env and ‘make’ workflow, but
we have yet to come up with a concrete proposal for a better workflow.

Toggle quote (6 lines)
> Concretely, this bug report is in response to
> https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00009.html
>
> In that spirit, “you should run make first” is not answer I’m completely
> happy with. :)

I was trying to address the “I see recompilation messages” issue that
you raised in the current framework. I didn’t initially interpret the
bug report as a call for a new workflow.

Thanks,
Ludo’.
R
R
Robert Vollmert wrote on 8 Jul 2019 13:46
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 36511@debbugs.gnu.org)
FEE200C4-A092-4DB3-81F1-602BED2C4F8E@vllmrt.net
Toggle quote (49 lines)
> On 8. Jul 2019, at 12:03, Ludovic Courtès <ludo@gnu.org> wrote:
>
> Robert Vollmert <rob@vllmrt.net> skribis:
>
>>> On 5. Jul 2019, at 22:40, Ludovic Courtès <ludo@gnu.org> wrote:
>>>
>>> Hi,
>>>
>>> Robert Vollmert <rob@vllmrt.net> skribis:
>>>
>>>> rob@garp ~/guix$ nano gnu/packages/haskell.scm
>>>> rob@garp ~/guix$ ./pre-inst-env guix build ghc-ansi-wl-pprint
>>>
>>> I’d suggest running “make” once you’ve edited a file.
>>>
>>> It’s not strictly necessary (Guile then simply evaluates code instead of
>>> running compiled code), but it will allow you to get rid of these
>>> warnings, the compiler might warn you ahead of time of possible
>>> mistakes, and the whole thing will be slightly faster.
>>>
>>> Does that make sense?
>>
>> It does make sense. However once again my complaint is a bit more about the
>> developer experience than how to work around the current state. I feel that
>> a situation where the obvious thing works but is painful (guile debug spam,
>> slowness) and you need to learn to do things differently (always run make first,
>> which frequently causes work you don’t even care about, such as a guix-daemon
>> recompile or po-file work) could be improved upon.
>
> Yes I agree. Things to have to be compiled at one point though. We
> could let Guile auto-compile code, but unfortunately that comes with its
> own warts: the equivalent of “make clean-go”, for instance when an ABI
> incompatibility pops up, is “rm -rf ~/.cache/guile/ccache”, and that too
> is something a developer has too learn, and one could argue that it’s
> less familiar than “make” or “make clean.”
>
> So, I’m not satisfied with the ./pre-inst-env and ‘make’ workflow, but
> we have yet to come up with a concrete proposal for a better workflow.
>
>> Concretely, this bug report is in response to
>> https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00009.html
>>
>> In that spirit, “you should run make first” is not answer I’m completely
>> happy with. :)
>
> I was trying to address the “I see recompilation messages” issue that
> you raised in the current framework. I didn’t initially interpret the
> bug report as a call for a new workflow.

It’s not meant to be a call for a new workflow, either. The original
suggestion from the “beyond 1.0” thread was a request for a focus on
the developer experience by working on the quality of error messages and
command output. One of the instances where that applies is with respect
to guile recompile scam, as I remarked there.

This bug report specifically is in response to this part of the exchange:

Toggle quote (8 lines)
>> — currently it’s very easy to miss the
>> actual cause of an error between a lot of noise, e.g. all those “recompiling
>> scheme module” messages

> When do you see “recompiling” messages?
>
> It looks like a bug we could address soonish, not a long-term task. :-)

As a concrete proposal, I’d be perfectly happy if, instead of printing
a screen full of guile recompile notifications, I’d get a clear warning
that I should run make instead.


Here’s another example, while working on a local checkout of a channel.
Calling `guild compile` just makes things worse.

$ rm -rf ~/.cache/guile
$ guix build -L . -L ../guix-postgrest puzzledb-frontend
;;; note: source file ../guix-postgrest/bytestring.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/bytestring.go
;;; note: source file ../guix-postgrest/check.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/check.go
;;; note: source file ../guix-postgrest/control.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/control.go
;;; note: source file ../guix-postgrest/text.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/text.go
;;; note: source file ../guix-postgrest/data.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/data.go
;;; note: source file ../guix-postgrest/more-data.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/more-data.go
;;; note: source file ../guix-postgrest/containers.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/containers.go
;;; note: source file ../guix-postgrest/core.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/core.go
;;; note: source file ../guix-postgrest/postgrest-deps.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/postgrest-deps.go
;;; note: source file ../guix-postgrest/postgrest.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/postgrest.go
;;; note: source file ../guix-postgrest/sql.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/sql.go
;;; note: source file ../guix-postgrest/template.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/template.go
;;; note: source file ../guix-postgrest/wai.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/wai.go
;;; note: source file ../guix-postgrest/service.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/service.go
;;; note: source file ./elm.scm
;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/elm.go
;;; note: source file ./elm2nix.scm
;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/elm2nix.go
;;; note: source file ./versions.scm
;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/versions.go
/gnu/store/xa65v4m6afmsimb0gg5rdr9v63i9qmd3-puzzledb-frontend-20190625-git
$ rob@garp ~/guix-elm$ guild compile -L . -L ../guix-postgrest *.scm
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /run/current-system/profile/bin/guild
;;; compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guild.go
wrote `/home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/versions.scm.go'
wrote `/home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm.scm.go'
wrote `/home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm2nix.scm.go’
$ rob@garp ~/guix-elm$ guix build -L . -L ../guix-postgrest puzzledb-frontend
;;; note: source file ../guix-postgrest/bytestring.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/bytestring.go
;;; note: source file ../guix-postgrest/check.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/check.go
;;; note: source file ../guix-postgrest/control.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/control.go
;;; note: source file ../guix-postgrest/text.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/text.go
;;; note: source file ../guix-postgrest/data.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/data.go
;;; note: source file ../guix-postgrest/more-data.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/more-data.go
;;; note: source file ../guix-postgrest/containers.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/containers.go
;;; note: source file ../guix-postgrest/core.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/core.go
;;; note: source file ../guix-postgrest/postgrest-deps.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/postgrest-deps.go
;;; note: source file ../guix-postgrest/postgrest.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/postgrest.go
;;; note: source file ../guix-postgrest/sql.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/sql.go
;;; note: source file ../guix-postgrest/template.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/template.go
;;; note: source file ../guix-postgrest/wai.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/wai.go
;;; note: source file ../guix-postgrest/service.scm
;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/service.go
;;; note: source file ./elm.scm
;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/elm.go
;;; found fresh local cache at /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm.scm.go
;;; note: source file ./elm2nix.scm
;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/elm2nix.go
;;; found fresh local cache at /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm2nix.scm.go
;;; note: source file ./versions.scm
;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/versions.go
;;; found fresh local cache at /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/versions.scm.go
/gnu/store/xa65v4m6afmsimb0gg5rdr9v63i9qmd3-puzzledb-frontend-20190625-git
L
L
Ludovic Courtès wrote on 9 Jul 2019 00:15
(name . Robert Vollmert)(address . rob@vllmrt.net)(address . 36511@debbugs.gnu.org)
87k1csb2bx.fsf@gnu.org
Robert Vollmert <rob@vllmrt.net> skribis:

Toggle quote (2 lines)
>> On 8. Jul 2019, at 12:03, Ludovic Courtès <ludo@gnu.org> wrote:

[...]

Toggle quote (10 lines)
>> I was trying to address the “I see recompilation messages” issue that
>> you raised in the current framework. I didn’t initially interpret the
>> bug report as a call for a new workflow.
>
> It’s not meant to be a call for a new workflow, either. The original
> suggestion from the “beyond 1.0” thread was a request for a focus on
> the developer experience by working on the quality of error messages and
> command output. One of the instances where that applies is with respect
> to guile recompile scam, as I remarked there.

OK, got it. I initially viewed it as an immediate bug because I don’t
see those messages, but that’s because I’m so used to typing ‘make’ etc.

Toggle quote (10 lines)
> Here’s another example, while working on a local checkout of a channel.
> Calling `guild compile` just makes things worse.
>
> $ rm -rf ~/.cache/guile
> $ guix build -L . -L ../guix-postgrest puzzledb-frontend
> ;;; note: source file ../guix-postgrest/bytestring.scm
> ;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/bytestring.go
> ;;; note: source file ../guix-postgrest/check.scm
> ;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/check.go

That’s bad (it’s even worse than having to type ‘make’ in the
development environment IMO because it’s a “user-facing” interface.)

How about the patch below? That turns on auto-compilation, which is
probably a good thing in this context; as a side-effect, messages like
those above should disappear.

The only downside is ABI breakage: if we change the ABI of the <package>
record type (which is quite rare), then your channel code will no longer
run; you’ll get a message like:

"<package>: record ABI mismatch; recompilation needed"

and you’ll have to “rm -rf ~/.cache/guile”.

Actually we could probably catch ‘record-abi-mismatch-error’ and
auto-compile when that happens.

Thoughts?

Toggle quote (10 lines)
> $ rob@garp ~/guix-elm$ guild compile -L . -L ../guix-postgrest *.scm
> ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
> ;;; or pass the --no-auto-compile argument to disable.
> ;;; compiling /run/current-system/profile/bin/guild
> ;;; compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guild.go
> wrote `/home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/versions.scm.go'
> wrote `/home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm.scm.go'
> wrote `/home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm2nix.scm.go’
> $ rob@garp ~/guix-elm$ guix build -L . -L ../guix-postgrest puzzledb-frontend

[...]

Toggle quote (4 lines)
> ;;; note: source file ./elm.scm
> ;;; newer than compiled /gnu/store/amjb2461gsrcqiw4faifrf3vpyw46r36-elm/lib/guile/2.2/site-ccache/elm.go
> ;;; found fresh local cache at /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-elm/elm.scm.go

Bah, Guile is really talkative.

We could redirect Guile’s ‘current-warning-port’ to the bit-bucket
wholesale, but we’d also be missing out on more useful info such as
compiler warnings.

Unfortunately, even if we monkey-patch specifically
‘primitive-load-path’, we’re silencing too much:

(set! primitive-load-path
(let ((do-load-path primitive-load-path))
(lambda* (file #:optional (exception? #t))
(parameterize ((current-warning-port (%make-void-port "w")))
(do-load-path file exception?)))))

Not sure what can be done on the Guix side.

Thoughts?

Thanks,
Ludo’.
Toggle diff (71 lines)
diff --git a/guix/discovery.scm b/guix/discovery.scm
index 5bb494941b..76b58b7688 100644
--- a/guix/discovery.scm
+++ b/guix/discovery.scm
@@ -93,6 +93,16 @@ DIRECTORY is not accessible."
directory (strerror errno)))
'())))))
+(define-syntax-rule (with-auto-compilation exp ...)
+ (let ((compile? %load-should-auto-compile))
+ (dynamic-wind
+ (lambda ()
+ (set! %load-should-auto-compile #t))
+ (lambda ()
+ exp ...)
+ (lambda ()
+ (set! %load-should-auto-compile compile?)))))
+
(define* (scheme-modules directory #:optional sub-directory
#:key (warn (const #f)))
"Return the list of Scheme modules available under DIRECTORY.
@@ -103,19 +113,22 @@ name and the exception key and arguments."
(define prefix-len
(string-length directory))
- (filter-map (lambda (file)
- (let* ((file (substring file prefix-len))
- (module (file-name->module-name file)))
- (catch #t
- (lambda ()
- (resolve-interface module))
- (lambda args
- ;; Report the error, but keep going.
- (warn module args)
- #f))))
- (scheme-files (if sub-directory
- (string-append directory "/" sub-directory)
- directory))))
+ ;; Turn on auto-compilation so that user modules hit via
+ ;; %PACKAGE-MODULE-PATH are automatically compiled.
+ (with-auto-compilation
+ (filter-map (lambda (file)
+ (let* ((file (substring file prefix-len))
+ (module (file-name->module-name file)))
+ (catch #t
+ (lambda ()
+ (resolve-interface module))
+ (lambda args
+ ;; Report the error, but keep going.
+ (warn module args)
+ #f))))
+ (scheme-files (if sub-directory
+ (string-append directory "/" sub-directory)
+ directory)))))
(define* (scheme-modules* directory #:optional sub-directory)
"Return the list of module names found under SUB-DIRECTORY in DIRECTORY.
diff --git a/guix/ui.scm b/guix/ui.scm
index 7d6ab9a2a7..f87b29d0fc 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -1668,6 +1668,9 @@ and signal handling has already been set up."
;; number of 'stat' calls per entry in %LOAD-PATH. Shamelessly remove it.
(set! %load-extensions '(".scm"))
+ ;; The two-line auto-compilation message doesn't bring much so just hide it.
+ (set! %warn-auto-compilation-enabled (const #t))
+
(match args
(()
(format (current-error-port)
R
R
Robert Vollmert wrote on 9 Jul 2019 17:45
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 36511@debbugs.gnu.org)
3B72FD49-5C2D-40FA-885E-4D3380CB084A@vllmrt.net
Hi Ludo’,

thanks for looking into this!

On 9. Jul 2019, at 00:15, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (30 lines)
> Robert Vollmert <rob@vllmrt.net> skribis:
>> Here’s another example, while working on a local checkout of a channel.
>> Calling `guild compile` just makes things worse.
>>
>> $ rm -rf ~/.cache/guile
>> $ guix build -L . -L ../guix-postgrest puzzledb-frontend
>> ;;; note: source file ../guix-postgrest/bytestring.scm
>> ;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/bytestring.go
>> ;;; note: source file ../guix-postgrest/check.scm
>> ;;; newer than compiled /gnu/store/sk1j6fkh855cm6ypp6799pgf8wvnlk76-postgrest/lib/guile/2.2/site-ccache/check.go
>
> That’s bad (it’s even worse than having to type ‘make’ in the
> development environment IMO because it’s a “user-facing” interface.)
>
> How about the patch below? That turns on auto-compilation, which is
> probably a good thing in this context; as a side-effect, messages like
> those above should disappear.
>
> The only downside is ABI breakage: if we change the ABI of the <package>
> record type (which is quite rare), then your channel code will no longer
> run; you’ll get a message like:
>
> "<package>: record ABI mismatch; recompilation needed"
>
> and you’ll have to “rm -rf ~/.cache/guile”.
>
> Actually we could probably catch ‘record-abi-mismatch-error’ and
> auto-compile when that happens.


I’ve applied your patch and am testing it now. At first glance it doesn’t
improve the situation, compare the output below of running `guix build -L .`
similar to before, after having edited check.scm.

$ guix build -L . postgrest
;;; note: source file ./bytestring.scm
;;; newer than compiled /gnu/store/v5a8qdcpp32ymfdasfql6n0g13zjkrb9-postgrest/lib/guile/2.2/site-ccache/bytestring.go
;;; found fresh local cache at /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-postgrest/bytestring.scm.go
;;; note: source file ./check.scm
;;; newer than compiled /gnu/store/v5a8qdcpp32ymfdasfql6n0g13zjkrb9-postgrest/lib/guile/2.2/site-ccache/check.go
;;; note: source file ./check.scm
;;; newer than compiled /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-postgrest/check.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling ./check.scm
;;; note: source file ./control.scm
;;; newer than compiled /gnu/store/v5a8qdcpp32ymfdasfql6n0g13zjkrb9-postgrest/lib/guile/2.2/site-ccache/control.go
;;; found fresh local cache at /home/rob/.cache/guile/ccache/2.2-LE-8-3.A/home/rob/guix-postgrest/control.scm.go
;;; note: source file ./text.scm
[…]

Cheers
Robert
R
R
Robert Vollmert wrote on 12 Jul 2019 09:38
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 36511@debbugs.gnu.org)
8C9B4ABA-AFF8-4CE7-A401-01B329134D03@vllmrt.net
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.
R
R
Robert Vollmert wrote on 12 Jul 2019 09:40
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 36511@debbugs.gnu.org)
D590863C-4DF0-4D7C-874B-FE9938C5CD9F@vllmrt.net
Toggle quote (6 lines)
> On 9. Jul 2019, at 17:45, Robert Vollmert <rob@vllmrt.net> wrote:
>
> I’ve applied your patch and am testing it now. At first glance it doesn’t
> improve the situation, compare the output below of running `guix build -L .`
> similar to before, after having edited check.scm.

Things do seem to work stably with the patch, although I still don’t see an
improvement. I do repeatedly get the following warnings now, though they don’t
seem to break things:

[ 75%] GUILEC guix/build/elm-build-system.go
warning: unknown warning type `shadowed-toplevel'
[ 88%] GUILEC guix/import/elm.go
warning: unknown warning type `shadowed-toplevel'
[100%] GUILEC guix/config.go
warning: unknown warning type `shadowed-toplevel'
L
L
Ludovic Courtès wrote on 12 Jul 2019 22:50
(name . Robert Vollmert)(address . rob@vllmrt.net)(address . 36511@debbugs.gnu.org)
87blxzdlkf.fsf@gnu.org
Hi,

Robert Vollmert <rob@vllmrt.net> skribis:

Toggle quote (9 lines)
> 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

You only have to type ‘make’, nothing more. ‘bootstrap’ and ‘configure’
only need to be invoked the first time.

Toggle quote (2 lines)
> - I get random mysterious documentation builds throughout. E.g. just now:

I think ‘make’ is behaving as expected here, I don’t see anything
mysterious here.

Toggle quote (2 lines)
> Let me know if these should be considered separate bugs worth filing.

Yeah, I think we should try to keep issues focused. The issues you
reported are all important, but we need to boil them down to specific
problems we can address.

Thank you,
Ludo’.
L
L
Ludovic Courtès wrote on 13 Jul 2019 10:33
(name . Robert Vollmert)(address . rob@vllmrt.net)(address . 36511@debbugs.gnu.org)
87y312bafw.fsf@gnu.org
Hello,

Robert Vollmert <rob@vllmrt.net> skribis:

Toggle quote (11 lines)
> Things do seem to work stably with the patch, although I still don’t see an
> improvement. I do repeatedly get the following warnings now, though they don’t
> seem to break things:
>
> [ 75%] GUILEC guix/build/elm-build-system.go
> warning: unknown warning type `shadowed-toplevel'
> [ 88%] GUILEC guix/import/elm.go
> warning: unknown warning type `shadowed-toplevel'
> [100%] GUILEC guix/config.go
> warning: unknown warning type `shadowed-toplevel'

The ‘shadowed-toplevel’ warning appeared in Guile 2.2.5 and you must be
using an older version.

Fixed in e429566fbb6af2b65a144cc06902432bc87b9eae.

Thanks,
Ludo’.
?