Mike Solomon <[email protected]> writes: >> On 24 May 2015, at 11:55, David Kastrup <[email protected]> wrote: >> >> >> Well, the current setup is too contorted to be maintainable and safely >> extensible. Whenever somebody tries to improve spacing or cross-staff >> or whatever somewhere, we get a series of exploding things until stuff >> settles down again. Basically, the inherent complexity of the task is >> spread too thin across the code. It needs to get consolidated into one >> place if we want to get to a point where people specializing in >> typography rather than low-level code tweakery and debugging can hope to >> improve LilyPond's aesthetics. >> >> Anyway: how do impure functions reference (and trigger?) line breaks? > > > Unpure functions don’t trigger line breaking. Line breaking is > triggered in system.cc <http://system.cc/> and then unpure functions > are called after that. > The difference between the two function categories are when they are > used: pure is used during the preprocessing stage and unpure after > line breaking.
But the common get_property call, when encountering a callback, calls that callback and caches the results. Or something. So how does a pure function reference properties? And what kind of references are supposed to be erroneous? > There is definitely a lot of work that can be done to consolidate > these decisions, like you’re saying: it’s been slowly spread across > the code base for 10ish years. The complexity of the task is high, > thought - it’d require a major rewrite of a lot of things. Throwing out the start/end arguments will be a first step. -- David Kastrup _______________________________________________ lilypond-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
