lilypond-user
[Top][All Lists]
Advanced

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

Re: Error message


From: Aaron Hill
Subject: Re: Error message
Date: Tue, 25 Jun 2019 05:55:48 -0700
User-agent: Roundcube Webmail/1.3.8

On 2019-06-25 4:46 am, David Kastrup wrote:
Craig Dabelstein <address@hidden> writes:

And the guilty line is ...

\consists "Melody_engraver"
%\override Stem.neutral-direction = #'()

Commenting out the \override Stem.neutral-direction line fixed the problem.

More likely than not half of a red herring: garbage protection problems
are quite elusive to track down.  This propably changes the actions the
Melody_engraver takes.

Unless I am completely lost myself, this is not the trampoline problem from before, though I suspect the appearance of "Melody_engraver" has confused things.

Here is the proper repro MWE:

%%%%
\version "2.19.82"
{
  \override Stem.neutral-direction = #'()
  \tuplet 3/2 { r4 b' c'' }
}
%%%%

This is bad input because neutral-direction must be strictly UP or DOWN (or rather it can be a procedure that ultimately evaluates to 1 or -1). From what I can see, the point of the property is to determine what happens to a note on the middle line of a staff when there is nothing else (like a beam) that can help sway the decision one way or the other. Setting it to #'() would seem to be meaningless.

Consider the output from the above MWE:

====
GNU LilyPond 2.19.82
Processing `drul-array-bad-direction.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
programming error: Stem dir must be up or down.
continuing, cross fingers
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...lilypond: /home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.20/flower/include/drul-array.hh:35: T& Drul_array<T>::at(Direction) [with T = double]: Assertion `d == 1 || d == -1' failed.
The terminal process terminated with exit code: 134
====

LilyPond is already emitting a programming error: "Stem dir must be up or down". Whenever I see "cross fingers", I never make any assumption of what will work or not. So a failing assertion afterwards is not surprising.

Craig: Would you confirm whether your project output contains the programming error line? I would say there is a bug if you are *only* seeing the failing assertion.

Perhaps an additional check could be added to stem.cc:649 to ensure that neutral-direction has a sane value, which could catch this particular error earlier in the process.


-- Aaron Hill



reply via email to

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