---

** [issues:#5383] Crash with simultaneous-duplicating music function and \once 
\offset **

**Status:** New
**Created:** Mon Jul 16, 2018 05:45 AM UTC by pkx166h
**Last Updated:** Mon Jul 16, 2018 05:45 AM UTC
**Owner:** nobody


On 2018-07-15 18:21, Simon Albrecht wrote:

    Hello everybody,


    this combination of a custom music function that combines the music

    simultaneously with itself and a \once\offset command causes LilyPond

    to crash (exit with return code 11):


    %%%%%%%%%%%%

    \version "2.19.82"

    test =

    #(define-music-function (parser location mus) (ly:music?)

      #{ << $mus $mus >> #})


    \test { \once\offset length 1 Stem 4 }

    %%%%%%%%%%%%
    
***

On Sun, 15 Jul 2018 20:09:52 -0700, Aaron Hill wrote:

Seems the custom music function is not needed to reproduce a crash.

%%%%
\version "2.19.82"
music = { \once \offset length 5 Stem 4 4 }
<< \music \music >>
%%%%

This also results in:

    GNU LilyPond 2.19.82

    Processing `crash.ly'

    Parsing...

    Interpreting music...

    Preprocessing graphical objects...

    fish: “lilypond crash.ly” terminated by signal SIGSEGV (Address

    boundary error)


Omitting the \once lets the example compile. And use of \undo works in
lieu of \once:

%%%%
\version "2.19.82"
longStem = \offset length 5 Stem
music = { \longStem 4 \undo \longStem 4 }
<< \music \music >>
%%%%

However, attempting to test the "tweak" variant of \offset...

%%%%
\version "2.19.82"
music = { \offset Stem.length 5 4 4 }
<< \music \music >>
%%%%

...produced a different error:

    GNU LilyPond 2.19.82

    Processing `crash.ly'

    Parsing...

    Interpreting music...lilypond:

    
/home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.20/lily/context-def.cc:232:

    std::vector<Context_def*>

    Context_def::internal_path_to_acceptable_context(SCM, Output_def*, SCM,

    std::set<const Context_def*>*) const: Assertion `(!(6 & ((scm_t_bits)

    (0? (*(SCM*)0=(type_sym)): type_sym))) && ((0x7f & ((((scm_t_bits) (0?

    (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0?

    (*(SCM*)0=((((type_sym))))): (((type_sym)))))))) [((0))]))): (((SCM

    *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((type_sym))))):

    (((type_sym)))))))) [((0))])))))) == 5))' failed.

    fish: “lilypond crash.ly” terminated by signal SIGABRT (Abort)


Figuring that perhaps the parser is confused by the naked duration, I
tried this:

%%%%
\version "2.19.82"
music = { \offset Stem.length 5 c'4 4 }
<< \music \music >>
%%%%

It compiles, but produces two staves as output rather than combining the
notes on one staff. I am almost certainly overlooking an important
detail in parsing which would explain this difference, but it is still
confusing to say the least.

-- Aaron Hill


---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/testlilyissues/issues/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/testlilyissues/admin/issues/options.  Or, if this is 
a mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Testlilyissues-auto mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/testlilyissues-auto
  • [Lilypond-... Auto mailings of changes to Lily Issues via Testlilyissues-auto
    • [Lily... Auto mailings of changes to Lily Issues via Testlilyissues-auto
    • [Lily... Auto mailings of changes to Lily Issues via Testlilyissues-auto

Reply via email to