lilypond-auto
[Top][All Lists]
Advanced

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

[Lilypond-auto] Issue 4085 in lilypond: Redo the whole pure/unpure folde


From: lilypond
Subject: [Lilypond-auto] Issue 4085 in lilypond: Redo the whole pure/unpure folderol/caching
Date: Sun, 31 Aug 2014 10:15:43 +0000

Status: Accepted
Owner: ----
Labels: Type-Maintainability

New issue 4085 by address@hidden: Redo the whole pure/unpure folderol/caching
https://code.google.com/p/lilypond/issues/detail?id=4085

The whole pure/unpure calculation and its effects on cross-staff and whatever else is pretty shaky.

Here is a sketch of how it may be possible to redo a considerable part of the whole: start and end, the indexes into line-breaking for the "pure" calculations are no longer passed as arguments to callbacks. Instead they are available on demand by calling a parameter-like function (see srfi-39 for a description of parameter). The actual parameter call would be additionally rigged in order to record whether the line ends have been queried and what value resulted. The set of queried parameters as well as the resulting value will be cached in something more general than an unpure/pure container so that any query with the same settings will be answered without repeating the calculation.

In that manner, the effort for cross-staff-like redoings of calculations of usually-but-not-quite-line-break-independent properties would be reduced to the necessary level. Also users would not need to be aware of the details of call chain purities and stuff: the calculations would be cached and redone based on the amount of settings that actually were involved. Also "pure" calculations would be cached as well: I assume that the amount of stored parameter/value pairings would be limited.

At the current point of time, interactions between properties tend to fall apart and need fixing at the rate they are added: that does not bode well for making LilyPond extensible in that area. Tracking the dependencies dynamically would make it a lot safer to add new stuff without breaking existing use.

--
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



reply via email to

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