On Mon, Feb 13, 2012 at 4:48 AM, m...@apollinemike.com < m...@apollinemike.com> wrote:
> On Feb 13, 2012, at 5:41 AM, Joe Neeman wrote: > > > On Thu, Feb 9, 2012 at 9:50 AM, m...@apollinemike.com < > m...@apollinemike.com> wrote: > >> On Feb 7, 2012, at 6:47 PM, m...@apollinemike.com wrote: >> >> >> I did some experiments with caching that are up on: >> dev/skylines-cached >> >> >> Hey all, >> >> Fresh branch up at dev/skylines-cached. This patch should only increase >> compilation time of a LilyPond score by 1-2 seconds for every minute. >> > > Wow, that's quite some work you've done. I haven't read it carefully yet, > but here are some broad suggestions/comments: > > > You can thank inclement weather and late trains! > > Regarding your comment in axis-group-interface.cc:802, if it gets called > twice, there's a bug (usually caused because we've asked for the extent of > a cross-staff grob before line-breaking has happened). I'm fine with trying > to detect the bug and continue, but I think there should be a > programming_error (at least for NDEBUG builds; see the way cyclic > dependencies are reported in grob-property.cc). > > > The reason the function is called twice is because it'd be called > through Axis_group_interface::calc_skylines and then again > via Hara_kiri_group_spanner::calc_skylines, potentially before one of these > finishes to execute. It doesn't seem like this could be related to a line > breaking problem. > In my experience, it usually is. What happens is that calc_skylines asks for the y-extent of some cross-staff grob. In order for that grob to find its extent, it needs to know how far apart the staves are, which depends on the height of the axis-group, and so you have a cyclic dependency. But even if line-breaking isn't the /reason/ for the cyclic dependency, your comment indicates that there /are/ cyclic dependencies, which are bugs and should therefore have programming errors. Cheers, Joe
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel