[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.
Jonas
signature.asc
Description: This is a digitally signed message part