Menu

#4943 Manual page breaking causing assertion failure

Invalid
None
abandoned
2020-02-16
2016-07-23
No

Thomas Morley - 46 minutes ago

Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries

Issue 4943
As Issue 4943 on Windows compilation was triggered by
missing _FPU_SETCW() in the MINGW libraries, an alternate call to
initiate the X87 FPU setup as an inline-assembler command is added
- for MINGW 32 Bit compilation only.

https://codereview.appspot.com/575600043/

On Sat, 9 Jan 2016 at 09:55 Chris Yate chrisyate@gmail.com wrote:

So, it turns out this was easy to minimise the code. File is attached.
It's still ~70 bars but only one voice, which is the dynamics staff of a
piano score (without anything else), so it's only silent music.

"AutoPageBreaksOff" in the score block causes the exception failure.

I note some "insane spring distance" warnings.These don't happen in the
real thing.

Chris

Note: According to Phil H's own tests: "This started in 2.19.21. 2.19.20 is OK."

Update: an instance of this affects also non-Windows systems, see comment below.

1 Attachments

Discussion

<< < 1 2 (Page 2 of 2)
  • Thomas Morley

    Thomas Morley - 2020-02-01
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -8,7 +8,7 @@
     initiate the X87 FPU setup as an inline-assembler command is added
     - for MINGW 32 Bit compilation only.
    
    -http://codereview.appspot.com/577450043
    +https://codereview.appspot.com/575600043/
    
    
     On Sat, 9 Jan 2016 at 09:55 Chris Yate &lt;chrisyate@gmail.com&gt; wrote:
    
    • Needs: -->
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-02-01
    • Patch: new --> review
     
  • Anonymous

    Anonymous - 2020-02-01

    Passes make. make check and a full make doc.

    Reg test diffs here:
    https://cloud-u8zj2dc4b.yourownnet.eu/s/p7SJnLKpswT2E5W

     
    • Thomas Morley

      Thomas Morley - 2020-02-01

      Sure you didn't confuse something?
      In gittext I see:
      SUBJECT: Issue 5646: Switch to Python 3.x

       
      • Jonas Hahnfeld

        Jonas Hahnfeld - 2020-02-01

        As far as I know, James only applies the patch but does not produce a commit, hence the gittxt is correct.

        The differences look ok to me, the profiling results have always been a bit odd on my system. Fortunately we can now fix this correctly by sorting the snippet names before compiling them, see https://sourceforge.net/p/testlilyissues/issues/5721/.

         
        • David Kastrup

          David Kastrup - 2020-02-01

          "Jonas Hahnfeld" hahnjo@users.sourceforge.net writes:

          As far as I know, James only applies the patch but does not produce a
          commit, hence the gittxt is correct.

          The differences look ok to me, the profiling results have always been
          a bit odd on my system. Fortunately we can now fix this correctly by
          sorting the snippet names before compiling them, see
          https://sourceforge.net/p/testlilyissues/issues/5721/.

          If you take a look how LilyPond distributes jobs on the command line to
          different LilyPond processes, it should be clear that basically any
          addition or removal of a regtest causes a quite different distribution
          of of snippets across processes.

          --
          David Kastrup

           
          • Jonas Hahnfeld

            Jonas Hahnfeld - 2020-02-01

            Right, my notion of "fix" has not been fully accurate. What I mean to say is that with #5721 you should get the same profiling results more often.

            If you add a regtest, the result will change. If you run the tests incrementally, results will change because only changed tests are compiled. If you run with a different number of processes, the distribution will obviously change. If your system is busy with other things, timing will be different. And so on...

             
  • Anonymous

    Anonymous - 2020-02-02
    • Patch: review --> countdown
     
  • Anonymous

    Anonymous - 2020-02-02

    Patch on countdown for Feb 4th

     
  • Thomas Morley

    Thomas Morley - 2020-02-02
    • Patch: countdown --> waiting
     
  • Federico Bruni

    Federico Bruni - 2020-02-06

    On Linux, lilypond 2.19.83 (Fedora package), testing the snippet mentioned above by Valentin, I get this error:

    lilypond 2.19.83 [Senza nome] in avvio...
    Processing `/tmp/frescobaldi-ixpehkhz/tmplf174rlc/document.ly'
    Parsing...
    Interpreting music...
    Preprocessing graphical objects...
    Finding the ideal number of pages...
    Fitting music on 1 page...lilypond: page-breaking.cc:1040: void Page_breaking::line_divisions_rec(vsize, const Line_division&, const Line_division&, Page_breaking::Line_division*): Assertion `my_index == 0' failed.
    

    With lilypond 2.19.84 (just released .sh file) it still fails:

    lilypond 2.19.84 [Senza nome] in avvio...
    Processing `/tmp/frescobaldi-ixpehkhz/tmplf174rlc/document.ly'
    Parsing...
    Interpreting music...
    Preprocessing graphical objects...
    Finding the ideal number of pages...
    Fitting music on 1 page...lilypond: /home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.20/lily/page-breaking.cc:1040: void Page_breaking::line_divisions_rec(vsize, const Line_division&, const Line_division&, Page_breaking::Line_division*): Assertion `my_index == 0' failed.
    
     
  • Federico Bruni

    Federico Bruni - 2020-02-06

    I don't see my previous comment, even if I received the email.. weird.

    I've tested also on Windows 7.
    I can compile the AssertionFailing.ly file and I get the same warnings I get also on Linux.
    Valentine's example is failing in Windows just as in Linux, even though it's an example of bad input (a page break with no music before doesn't make sense).

    lilypond-windows.exe 2.19.84 [Senza nome (2)] in avvio...
    Processing `C:/Users/fede/AppData/Local/Temp/frescobaldi-duwlihky/tmp4021njfy/document.ly'
    Parsing...
    Interpreting music...[8][16][24]
    warning: omitting tuplet bracket with neither left nor right bound
    [32][40][48][56][64][72]
    Preprocessing graphical objects...
    programming error: insane spring distance requested, ignoring it
    continuing, cross fingers
    programming error: insane spring min_distance requested, ignoring it
    continuing, cross fingers
    programming error: insane spring constant
    continuing, cross fingers
    programming error: insane spring distance requested, ignoring it
    continuing, cross fingers
    programming error: insane spring min_distance requested, ignoring it
    continuing, cross fingers
    programming error: insane spring constant
    continuing, cross fingers
    Finding the ideal number of pages...
    Fitting music on 1 page...
    Drawing systems...
    Layout output to `./tmp-lilypond-0V9xzC'...
    Converting to `document.pdf'...
    Deleting `./tmp-lilypond-0V9xzC'...
    Success: compilation successfully completed
    
     
    • David Kastrup

      David Kastrup - 2020-02-06

      So I think the fix was successful in bringing the behavior of Windows systems (and other 32bit x86 systems) close to that we experience with other systems.

      That makes debugging such problems while on a different platform and finding fixes for them in future quite more likely.

      Now Valentin has given an example that fails on both 32bit and 64bit x86 systems. Fixing that becomes now better in reach, but even though it perfectly fits the headline of this report (though not the committed patch), it's sort of buried in this issue. Maybe it makes sense to move this out into a fresh issue, now more amenable than fixing to previously?

       
      • Thomas Morley

        Thomas Morley - 2020-02-16

        I opened a new ticket:
        https://sourceforge.net/p/testlilyissues/issues/5767/
        and set this one to abandoned

         
  • Thomas Morley

    Thomas Morley - 2020-02-16
    • status: Started --> Invalid
    • Patch: waiting --> abandoned
     
<< < 1 2 (Page 2 of 2)