> On 24 May 2015, at 11:55, David Kastrup <d...@gnu.org> 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. 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. Cheers, ~Mike _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel