On Tue, Feb 14, 2012 at 1:55 AM, m...@apollinemike.com < m...@apollinemike.com> wrote:
> > On Feb 14, 2012, at 9:44 AM, Joe Neeman wrote: > > 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. > > > Actually, before I respond fully to your e-mail, I just want to make sure > we're talking about the same comment. I'm looking at "Finding extents may > have trigged another skyline lookup, which will have done the shifting. In > this case, we simply add the boxes." > > Is that it? > Actually, I was referring to a comment that has since disappeared: > - because this loop results in the looking up of extents, it may > trigger > - the calling of this function a second time before the first one > finishes > - to execute. thus, the outside-staff-priority may be set to > false. that > - is why this check is necessary. > but actually I preferred your older code (plus a programming_error) to the current one. A cyclic dependency is a bug, so better to catch it early than to allow it and try to correct afterwards. Cheers, Joe
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel