bug-lilypond
[Top][All Lists]
Advanced

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

Re: 2.19.21 core dumping bug on Fedora 22


From: Colin Campbell
Subject: Re: 2.19.21 core dumping bug on Fedora 22
Date: Sat, 13 Jun 2015 19:26:46 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 2015-06-13 12:26 PM, Thomas Morley wrote:
2015-06-12 12:22 GMT+02:00 Andrew Bernard <address@hidden>:
I'm not top posting
Lilypond 2.19.21 has had problems with the Fedora 22 release. These have
mostly been solved by the recent upgrade to fontconfig on that platform. I
have had a very difficult situation with lilypond dumping core on a very
complex score that I am developing, now made somewhat easier to debug by the
clarity provided by the bugfix just mentioned. I can finally provide a
snippet that deterministically and reliably dumps core with the following
error message:



GNU LilyPond 2.19.21
Processing `exp-bug.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...lilypond: ../flower/include/interval.hh:226: T
Interval_t<T>::center() const [with T = double]: Assertion `!is_empty ()'
failed.
Aborted (core dumped)

Here’s the snippet from my score that produces this. The 20:3 is not an
error. I must point out this worked fine on previous versions of lilypond,
and only seems to have been introduced on 2.19.21. The platform is Fedora 22
but this bug also manifests on Mint 17.1.

The precise source of the core dump is the call to \tupletOff. Commenting
out that line allows the code to compile.


Andrew



\version "2.19.21"

% Turn off tuplet bracket and number.
tupletOff = #(define-music-function (parser location) ()
                #{
                  \once \override TupletBracket.bracket-visibility = ##f
                  \once \override TupletNumber.stencil = ##f
                #}
                )

% Turn on tuplet bracket and number.
tupletOn = #(define-music-function (parser location) ()
               #{
                 \once \override TupletBracket.bracket-visibility = ##t
                 \revert TupletNumber.stencil
               #}
               )


treble = \relative c'' {
   \clef treble
   \time 1/4

   \tuplet 9/8 {
     \stemUp
     \tupletOff

     \tuplet 20/3 {
       a'8[( cis,) a'( cis,) a']
     }
     s32 * 6
   }
}


\score {
   \new Staff = "treble" { \treble }

   \layout { }

}


A more concise example (taken from the NR, simplified and adding the
stencil-override):

\version "2.19.21"

\relative c'' {
   \tuplet 5/4 {
     f8 e f
     \once \omit TupletNumber
     \tuplet 3/2 {
       e[ f g]
     }
   }
}

Returns:
"
GNU LilyPond 2.19.21
Processing `atest-27.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Interpreting music...
Preprocessing graphical objects...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...lilydevel:
/home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-release-unstable/flower/include/interval.hh:226:
T Interval_t<T>::center() const [with T = double]: Assertion
`!is_empty ()' failed.
Abgebrochen
"

(I always rename latest devel version to "lilydevel")

Not sure whats causing it.

A workaround could be to make TupletNumber transparent:
\once \hide TupletNumber
or setting it to point-stencil:
\once \override TupletNumber.stencil = #point-stencil




Both pieces of code compile without error and produce reasonable output for me, using Frescobaldi, LilyPond 2.19.22 and KXStudio (Ubuntu 15.04).

Cheers,
Colin

--
I've learned that you shouldn't go through life with a catcher's mitt on both 
hands.
You need to be able to throw something back.
-Maya Angelou, poet (1928- )




reply via email to

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