This is strange: What does '2.2-LE-8-3.A' mean? Why do I get two
paths concatenated? Additionally, the `.go` files are put into
`/home/wl/lilypond/scm/out`
Because of Lilypond's functions exported from C++, which are added
only when running Lilypond but are needed for byte-compilation, we
cannot use the normal method to get .go files, 'guild compile'. We
thus hijack the 'auto-compilation' happening when Guile runs a
Scheme file that doesn't have a compiled version in cache. The
cache in question is usually under ~/.cache/guile, but we change the
directory. Still, the principle remains: paths on your computer are
mirrored in the cache. Yes, this is a PITA: much better would have
been to put the .go files next to the .scm files, so an install can
be moved around. Guile's way of doing things basically would work
if byte-compilation were fast and silent, neither of which is the
case. So, after this is done, we move the bytecode into scm/out/,
and at runtime we load it from there. See scm/GNUmakefile.