On 2012/10/15 13:02:38, wl_gnu.org wrote:
> Let's assume that we "unify" the interface to context and grob
> properties.  The _default_ operation on a context property will
> _always_ be overwrite rather than push, since context properties
> track the change of things like the current clef, the current key
> signature, the current whatever.  There is no point in keeping a
> stack for that by default, and it would be seriously confusing.
>
> That is what the default operation on a grob property is right now:
> it overwrites the current top of the stack.  This matches the
> default operation on context properties.  As contrasted to context
> properties, grob properties have a save stack.  There is no
> LilyPond-accessible manner to access it, it is only available from
> Scheme.

What about having a `simple' and an `advanced' interface?  This is,
let's stay with the current commands, enriched by \temporary and
friends as suggested by David.  At the same time, we could provide
\push, \pop, and \clear (with *this* names) for advanced users who
want to write music functions without side effects.

\clear with the proposed cut-through dynamics is rather the maximum
possible side effect.  It makes only some sense when it is intended to
counter the sideeffects of making "push" the default interface rather
than "overwrite", with the expectation that "push" will often get used
when "overwrite" would have been appropriate.  push and pop would not
provide anything new.

I have a really hard time seeing who we are supposed to be doing a favor
here.

http://codereview.appspot.com/6687044/

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to