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.
It improves composability of sections -- copying them, commenting them out, moving them around -- if you don't have to special-case bar checks happening at the beginning of a section.
If we agree that this is a bug then I'll go ahead and report it.
Thanks,
-steve