Menu

#5780 Accept GUILE 2 without extra configure options

Fixed
2020-03-07
2020-02-21
No

A run of the regression tests at "5f4cf7bd38 - Parse inline scheme
using per-expression port" shows the following issues compared to
GUILE 1.8

  • changed interleaving of error and progress messages.

  • floating point rounding differences.

  • an encoding error in song-basic-nonenglish.ly

As of a19aed1 "GUILE2: Scale GC heap with the number of smobs",
performance for large scores with GUILE 2.2 is similar to GUILE 1.8.

For small scores, a 1.5 sec extra delay (due to byte-code compilation
of .scm files) remains, but this does not warrant the "highly
experimental" monniker.

https://codereview.appspot.com/569390043

Discussion

  • Han-Wen Nienhuys

    guile-config after guile-config2.2

    https://codereview.appspot.com/569390043

     
  • Han-Wen Nienhuys

     
  • Han-Wen Nienhuys

     
  • Han-Wen Nienhuys

     
  • Anonymous

    Anonymous - 2020-02-21
    • Description has changed:

    Diff:

    
    
    • Needs: -->
    • Patch: new --> review
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-02-21

    Passes make, make check and a full make doc.

     
  • Anonymous

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

    Anonymous - 2020-02-22

    Patch on countdown for Feb 24th

     
  • Anonymous

    Anonymous - 2020-02-24
    • Patch: countdown --> push
     
  • Anonymous

    Anonymous - 2020-02-24

    Patch counted down - please push

     
  • Jonas Hahnfeld

    Jonas Hahnfeld - 2020-02-25
    • labels: --> Fixed_2_21_0
    • status: Started --> Fixed
    • Patch: push -->
     
  • Jonas Hahnfeld

    Jonas Hahnfeld - 2020-02-25
    commit 670e9f7b9660822f31144cbf07788bfc28de94cd
    Author:     Han-Wen Nienhuys <hanwen@lilypond.org>
    AuthorDate: Fri Feb 21 16:14:48 2020 +0100
    Commit:     Han-Wen Nienhuys <hanwen@lilypond.org>
    CommitDate: Mon Feb 24 21:50:15 2020 +0100
    
        Accept GUILE 2 without extra configure options
    
        A run of the regression tests at "5f4cf7bd38 - Parse inline scheme
        using per-expression port" shows the following issues compared to
        GUILE 1.8
    
        * changed interleaving of error and progress messages.
    
        * floating point rounding differences.
    
        * an encoding error in song-basic-nonenglish.ly
    
        As of a19aed1 "GUILE2: Scale GC heap with the number of smobs",
        performance for large scores with GUILE 2.2 is just ~25% slower on
        large scores.
    
        The regression test (make test-baseline) is 67% slower. This can
        partly be explained because of the slower startup: until we can
        support pre-compiled files, we incur a 1.5 sec extra delay for parsing
        .scm files.
    
     
  • David Kastrup

    David Kastrup - 2020-03-07
     
  • David Kastrup

    David Kastrup - 2020-03-07

    I think we need to redial or augment some of this patch since it will leave even experienced developers with an unexpected result.

    If I now do
    GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure
    on my system the slow and crash-prone Guile-2.2 will be used. I would have been notified of that because the configuration would have failed because of a missing --with-guilev2 option, but this option is no longer necessary. So my explicit choice of Guile-1.8, made in the previously supported manner, will get silently ignored.

    That is not good. I think that if GUILE_CONFIG is given, it should be heeded rather than ignored. Also if PKG_CONFIG_PATH is given in the environment, it should be recorded so that
    ./config.status --recheck
    will not forget about it again.

    We have dropped too many safety nets for making sure that our configure does what is expected of it.