Am Sonntag, dem 27.03.2022 um 09:12 +0200 schrieb Jean Abou Samra: > 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.
(In fact, there's another indirection: We load the bytecode from out/lib/lilypond/current/ccache/lily which is a symlink to scm/out/. But that's a technical detail that is handled internally.) > > * `make install` doesn't install `.go` files. I seem to remember that > > this was discussed... I now wonder how to proceed with an installed > > LilyPond version. > > That's not expected. It was added by Jonas in the merge request > that the whole original discussion led to. What are the symptoms? It totally is expected: Because "make bytecode" is optional and not the default, "make install" cannot install it by default. You need to explicitly ask for "install-bytecode". This was discussed on the mailing list and is spelled out both in the MR and the commit. Jonas
signature.asc
Description: This is a digitally signed message part
