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: Thomas Morley
Subject: Re: 2.19.21 core dumping bug on Fedora 22
Date: Sat, 13 Jun 2015 20:26:39 +0200

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


Cheers,
  Harm



reply via email to

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