Skip to content

Allow byte-compilation of song-util.scm

Jean Abou Samra requested to merge jeanas/lilypond:song-byte-compilation into master

Before this change, compiling files using Festival XML output (festival.ly) would lead to a warning when GUILE_AUTO_COMPILE=1 was in the environment. This was showing up in regression test output.

;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 or
;;;       pass the --no-auto-compile argument to disable.  compiling
;;;       /home/jean/repos/lilypond/out/share/lilypond/current/scm/lily/song.scm
;;;       WARNING: compilation of
;;;       /home/jean/repos/lilypond/out/share/lilypond/current/scm/lily/song.scm
;;;       failed: unhandled constant #<record-type music-context>

It turns out that Guile 2's byte-compiler doesn't like macros returning S-expressions containing record types. This has been reported at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52112. Fix compilation by changing quoting to output an S-expression that generates the record type instead of generating the record type during macro expansion and putting it in the resulting S-expression.

Merge request reports