lilypond-devel
[Top][All Lists]
Advanced

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

Re: unusable backtrace


From: Jean Abou Samra
Subject: Re: unusable backtrace
Date: Sun, 27 Mar 2022 09:12:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

Le 26/03/2022 à 23:09, Werner LEMBERG a écrit :
Byte-compilation, I guess.  I seem to recall that Guile 2 uses
primitive-eval to run code that is not byte-compiled, and this loses
the location information.  Generally speaking, running code without
compilation seems to be preserved for the sake of eval but not
well-supported at all. Try 'make bytecode'.
Thanks.  I noticed two issues.

* The compilation output says, for example,

   ```
   ;;; compiling 
/home/wl/lilypond/out/share/lilypond/current/scm/lily/graphviz.scm
   ;;; compiled 
/home/wl/lilypond/out/share/lilypond/current/guile/ccache/2.2-LE-8-3.A/home/wl/lilypond/scm/graphviz.scm.go
   ```

   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.


* `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?


Jean





reply via email to

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