Hi Thomas, thanks for the reply.
I think there are two issues at play here. One issue is that user input
should never crash the program. It took nontrivial effort to track down
why my scores were crashing after upgrading Lilypond (since in some
distant past version, it didn't crash.) Even if the input is invalid, a
compiler error with line number information is greatly preferable to
seeing "bus error" with no diagnostics.
The second issue is that disallowing bar checks at the beginning of a
section hampers composability. It turns out that my bar check is, in
fact, positioned at a place where a bar line is expected. Here is a
slightly larger input file that demonstrates the problem:
\version "2.16.0"
introRest = {
\set Score.skipBars = ##t
R2.*11
\unset Score.skipBars
}
orch = {
\key g \minor
\time 3/4
\tempo "Andante" 4 = 84
\override TupletBracket #'stencil = ##f
\introRest
}
intro = \relative c {
| r4 r d
}
music = {
\intro
}
\score {
<<
\new Staff { \orch \music }
>>
}
\score {
\unfoldRepeats
\music
\midi {
\context {
\Score
}
\context {
\Voice
\remove "Dynamic_performer"
}
}
}
My bar check that's crashing the program is not at the beginning of the
music. It does fall on a bar line, which is consistent with the docs.