[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print
From: |
lilypond |
Subject: |
Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list |
Date: |
Wed, 20 Feb 2013 06:11:40 +0000 |
Updates:
Status: Fixed
Labels: Fixed_2_17_13
Comment #15 on issue 3162 by address@hidden: Patch: Eliminates
pure-print-callbacks list
http://code.google.com/p/lilypond/issues/detail?id=3162
commit 3222fb83fafa4c760ad76e10e2b602a854906a6e
Author: Mike Solomon <address@hidden>
Date: Wed Feb 20 06:58:02 2013 +0100
Removes pure-print-callbacks list.
LilyPond currently hardcodes certain print functions as being able
to be evaluated as 'pure', meaning that they should not result in calls
to set_property, set_object, translate_axis or suicide. This means
that,
for example, if one uses a custom stencil function, the Y-extent
function
for the grob must be wrapped in an unpure-pure-container in order
to return a non-empty pure_height.
The reading of these hardcoded lists results in difficult-to-maintain
code.
For example, several (but not all) flag modification functions are part
of
this list, causing spacing inconsistencies in certain regtests.
Using unpure-pure-containers to signify all relationships between
unpure and
pure functions and eliminating the lists of pure functions in
define-grobs.scm allows the code base to be more extensible, demanding
the
elaboration of unpure-pure relationships in the property-setting phase
(either in define-grobs.scm or in an override) and not using hardcoded
lists.
Inversely, this also prevents deep that can creep up when a function
signified as pure turns out not to be. For example,
ly:note-head::print,
marked as pure, can be made unpure if its lookup of the style,
duration-log or glyph-name properties trigger vertical alignment
(which results in a call to translate_axis). Thus, users who wish to use
this function as an unpure function now can because it is no longer
hardcoded as pure.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, (continued)
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/12
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/12
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/16
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/19
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/19
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/19
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/19
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/20
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/20
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/20
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list,
lilypond <=
- Re: [Lilypond-auto] Issue 3162 in lilypond: Patch: Eliminates pure-print-callbacks list, lilypond, 2013/02/24