|
From: | Marc Hohl |
Subject: | Re: bar-line interface part 2/2: New bar line definition standard (issue 6498052) |
Date: | Sun, 30 Sep 2012 10:57:01 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120912 Thunderbird/15.0.1 |
Am 30.09.2012 10:01, schrieb address@hidden:
http://codereview.appspot.com/6498052/diff/32001/scm/bar-line.scm File scm/bar-line.scm (right):http://codereview.appspot.com/6498052/diff/32001/scm/bar-line.scm#newcode225scm/bar-line.scm:225: (define-public bar-glyph-alist '()) This interface definition is asking for trouble. It is an important feature of LilyPond that if you use standard commands, their effects to not bleed over from one run to the next. Information-carrying data structures, for that reason, should be initialized in a .ly file loaded from init.ly. Even then, the basic data structure should be one that can be replaced by overwriting with a saved copy. That means that hash-tables have to be either read/only, or start out as _empty_ in a session (hash tables defined in the init.ly session get cleared at the end of session IIRC). http://codereview.appspot.com/6498052/
Update: a 'git grep "(define-public .* '())" shows scm/bar-line.scm:(define-public bar-glyph-alist '()) scm/bar-line.scm:(define-public span-bar-glyph-alist '()) scm/bar-line.scm:(define-public volta-bracket-allow-volta-hook-list '())scm/define-context-properties.scm:(define-public all-translation-properties '())
scm/define-note-names.scm:(define-public pitchnames '()) scm/lily.scm:(define-public lilypond-declarations '()) scm/midi.scm:(define-public absolute-volume-alist '()) scm/midi.scm:(define-public instrument-equalizer-alist '()) Since the faulty regtest adds a function to the list provided by (define-public bar-glyph-print-procedures `()) I assume that *this* declaration should be moved to ly/init.ly? Regards, Marc
[Prev in Thread] | Current Thread | [Next in Thread] |