[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unusable backtrace

From: Jonas Hahnfeld
Subject: Re: unusable backtrace
Date: Sun, 27 Mar 2022 10:06:16 +0200
User-agent: Evolution 3.42.4

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.


Attachment: signature.asc
Description: This is a digitally signed message part

reply via email to

[Prev in Thread] Current Thread [Next in Thread]