lilypond-devel
[Top][All Lists]
Advanced

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

Re: Gets vertical skylines from grob stencils (issue 5626052)


From: Joe Neeman
Subject: Re: Gets vertical skylines from grob stencils (issue 5626052)
Date: Tue, 14 Feb 2012 01:44:02 -0800

On Mon, Feb 13, 2012 at 4:48 AM, address@hidden <address@hidden> wrote:
On Feb 13, 2012, at 5:41 AM, Joe Neeman wrote:


On Thu, Feb 9, 2012 at 9:50 AM, address@hidden <address@hidden> wrote:
On Feb 7, 2012, at 6:47 PM, address@hidden 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



reply via email to

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