lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pure/impure?!?!


From: David Kastrup
Subject: Re: pure/impure?!?!
Date: Sun, 24 May 2015 12:32:28 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Mike Solomon <address@hidden> writes:

>> On 24 May 2015, at 11:55, David Kastrup <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]