Menu

#2897 Patch: Create \temporary for doing overrides without pop-first set

Verified
nobody
Enhancement
2012-11-05
2012-10-13
Anonymous
No

Originally created by: *anonymous

Originally created by: dak@gnu.org

Create \temporary for doing overrides without pop-first set

Normal overrides change the top of the current property stack rather
than pushing to it, by having the pop-first property set in the music.

\temporary will remove this property from its argument's overrides.
For property-changing music that is not an override, a warning will be
generated.

Calling \temporary \override and \revert in succession on the same
property will have a net effect of zero.  Similarly, pairing
\temporary and \undo on the same music containing overrides will have
a net effect of zero.

In more complex arrangements, \revert will revert to the state before
the last (matching) \temporary override of the same property.

Properties are maintained conceptually using one stack per property
per grob per context.  Using \push/\pop instead of \temporary/\undo
was deemed unsuitable for a musician-accessible user interface.

http://codereview.appspot.com/6687044

Discussion

  • Google Importer

    Google Importer - 2012-10-13

    Originally posted by: dak@gnu.org

    Create \temporary for doing overrides without pop-first set

    Normal overrides change the top of the current property stack rather
    than pushing to it, by having the pop-first property set in the music.

    \temporary will remove this property from its argument's overrides.
    For property-changing music that is not an override, a warning will be
    generated.

    Calling \temporary \override and \revert in succession on the same
    property will have a net effect of zero.  Similarly, pairing
    \temporary and \undo on the same music containing overrides will have
    a net effect of zero.

    In more complex arrangements, \revert will revert to the state before
    the last (matching) \temporary override of the same property.

    Properties are maintained conceptually using one stack per property
    per grob per context.  Using \push/\pop instead of \temporary/\undo
    was deemed unsuitable for a musician-accessible user interface.

    http://codereview.appspot.com/6687044

     
  • Google Importer

    Google Importer - 2012-10-13

    Originally posted by: pkx1...@gmail.com

    This fails 'make', the log error shows this

    --snip--
    /home/jlowe/lilypond-git/build/Documentation/out//notation/input.texi:3294: warning: @image file `lilypond/pictures/Gonville_after.txt' (for text) unreadable: No such file or directory.
    /home/jlowe/lilypond-git/build/Documentation/out//notation/input.texi:3298: warning: @image file `lilypond/pictures/Gonville_before.txt' (for text) unreadable: No such file or directory.
    /home/jlowe/lilypond-git/build/Documentation/out//identifiers.texi:461: Misplaced {.
    /home/jlowe/lilypond-git/build/Documentation/out//identifiers.texi:461: Misplaced }.
    makeinfo: Removing output file `out/lilypond-notation.info' due to errors; use --force to preserve.
    --snip--

    I think the 'pictures' stuff is a red herring but the Misplaced { and } might be relevant although I could only see an @var{music} added to the patch.

    Here's the last few entries for the failed make.

    NB this is not the make check, but the basic make. I also applied this to current master and just ran make and got the same errors.

    --snip--

    LILYPOND_VERSION=2.17.5 /usr/bin/python /home/jlowe/lilypond-git/scripts/lilypond-book.py -I /home/jlowe/lilypond-git/Documentation/ -I ./out -I /home/jlowe/lilypond-git/input -I /home/jlowe/lilypond-git/Documentation -I /home/jlowe/lilypond-git/build/Documentation/snippets/out -I /home/jlowe/lilypond-git/input/regression/ -I /home/jlowe/lilypond-git/Documentation/included/ -I /home/jlowe/lilypond-git/build/mf/out/ -I /home/jlowe/lilypond-git/build/mf/out/ -I /home/jlowe/lilypond-git/Documentation/pictures -I /home/jlowe/lilypond-git/build/Documentation/pictures/./out --process='true -dbackend=eps --formats=ps,png,pdf -djob-count=7 -dinclude-eps-fonts -dgs-load-fonts --header=doctitle --header=doctitlecs --header=doctitlede --header=doctitlees --header=doctitlefr --header=doctitlehu --header=doctitleit --header=doctitleja --header=doctitlenl --header=doctitlezh --header=texidoc --header=texidoccs --header=texidocde --header=texidoces --header=texidocfr --header=texidochu --header=texidocit --header=texidocja --header=texidocnl --header=texidoczh -dcheck-internal-types -ddump-signatures -danti-alias-factor=2' --output=./out --format=texi --loglevel=WARN  --skip-lily-check --lily-output-dir /home/jlowe/lilypond-git/build/out/lybook-db --redirect-lilypond-output /home/jlowe/lilypond-git/Documentation/changes.tely
    langdefs.py: warning: lilypond-doc gettext domain not found.
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-usage.info out/usage.texi"  "usage.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-changes.info out/changes.texi"  "changes.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-contributor.info out/contributor.texi"  "contributor.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-internals.info out/internals.texi"  "internals.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-essay.info out/essay.texi"  "essay.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-learning.info out/learning.texi"  "learning.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-notation.info out/notation.texi"  "notation.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/music-glossary.info out/music-glossary.texi" "music-glossary.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-web.info out/web.texi"  "web.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --output=out/lilypond-extending.info out/extending.texi"  "extending.makeinfo.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --no-split --no-headers --output out/contributor.txt out/contributor.texi"  "contributor.makeinfotxt.log"
    /home/jlowe/lilypond-git/build/scripts/build/out/run-and-check "LANG= makeinfo --enable-encoding --error-limit=0 -I /home/jlowe/lilypond-git/Documentation -I/home/jlowe/lilypond-git/Documentation -I./out --no-split --no-headers --output out/web.txt out/web.texi"  "web.makeinfotxt.log"

    Please check the logfile notation.makeinfo.log for errors

    make[1]: *** [out/lilypond-notation.info] Error 1
    make[1]: Leaving directory `/home/jlowe/lilypond-git/build/Documentation'
    make: *** [all] Error 2

    Labels: -Patch-new Patch-needs_work

     
  • Google Importer

    Google Importer - 2012-10-13

    Originally posted by: dak@gnu.org

    Create \temporary for doing overrides without pop-first set

    Normal overrides change the top of the current property stack rather
    than pushing to it, by having the pop-first property set in the music.

    \temporary will remove this property from its argument's overrides.
    For property-changing music that is not an override, a warning will be
    generated.

    Calling \temporary \override and \revert in succession on the same
    property will have a net effect of zero.  Similarly, pairing
    \temporary and \undo on the same music containing overrides will have
    a net effect of zero.

    In more complex arrangements, \revert will revert to the state before
    the last (matching) \temporary override of the same property.

    Properties are maintained conceptually using one stack per property
    per grob per context.  Using \push/\pop instead of \temporary/\undo
    was deemed unsuitable for a musician-accessible user interface.

    http://codereview.appspot.com/6687044

    Labels: -Patch-needs_work Patch-new

     
  • Google Importer

    Google Importer - 2012-10-13

    Originally posted by: dak@gnu.org

    Patchy the autobot says: passes tests.

    Labels: -Patch-new Patch-review

     
  • Google Importer

    Google Importer - 2012-10-14

    Originally posted by: ColinPKC...@gmail.com

    (No comment was entered for this change.)

    Labels: -Patch-review Patch-countdown
    Owner: dak@gnu.org

     
  • Google Importer

    Google Importer - 2012-10-15

    Originally posted by: dak@gnu.org

    I don't have the time and energy to deal with the demands of reimplementing the property system rather than making it useful with the current design.

    I have uploaded a Patch implementing this functionality in what I believe a useful form, and whoever else is willing to deal with this madness is welcome to it.

    Labels: -Patch-countdown Patch-abandoned
    Owner: ---
    Status: Accepted

     
  • Google Importer

    Google Importer - 2012-10-15

    Originally posted by: dak@gnu.org

    (No comment was entered for this change.)

    Blocking: lilypond:2898

     
  • Google Importer

    Google Importer - 2012-10-21

    Originally posted by: janek.li...@gmail.com

    There was some controversy with this patch, but it was counted down and noone found anything wrong with the actual code.  Some people are not sure whether we want to have \temporary or something else, but they can change it in the future if they want.  For now, this patch adds something that is missing and allows to fix some bugs, so i'm going to push it on Tuesday or so; there's no point in wasting David's work.

    Labels: -Patch-abandoned Patch-push

     
  • Google Importer

    Google Importer - 2012-10-21

    Originally posted by: tdanielsmusic

    Janek, as it seems there is to be no further discussion at the moment on
    the long-term objectives for this part of the user interface I have no
    objection to your pushing this patch right away.  It might even have been
    the desired action had those discussions continued to a conclusion.

    Trevor

     
  • Google Importer

    Google Importer - 2012-10-23

    Originally posted by: janek.li...@gmail.com

    ok, pushed as [r5c4b80afe97acbe20199a3aa71a0d63172112f23]
    cheers,
    Janek

    Labels: -Patch-push Fixed_2_17_6
    Status: Fixed

     
  • Google Importer

    Google Importer - 2012-10-23

    Originally posted by: dak@gnu.org

    (No comment was entered for this change.)

    Blocking: -lilypond:2898

     
  • Google Importer

    Google Importer - 2012-11-05

    Originally posted by: Elu...@gmail.com

    (No comment was entered for this change.)

    Status: Verified

     
MongoDB Logo MongoDB