Allow byte-compilation of song-util.scm
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.