On Feb 13, 2012, at 5:41 AM, Joe Neeman wrote:

> 
> On Thu, Feb 9, 2012 at 9:50 AM, [email protected] <[email protected]> 
> wrote:
> On Feb 7, 2012, at 6:47 PM, [email protected] 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.

> Since you seem to be expanding the scope of skylines, you may want to add 
> some more flexible constructors instead of doing everything with boxes. For 
> example, it should be easy to add a skyline constructor that builds a skyline 
> from a collection of line segments. Then you can approximate beziers with 
> line segments instead of boxes. I think I even had some code for this lying 
> around, but I can't find it now...
> 

I agree that this is doable.  I'd like to investigate this as a second patch, 
just cuz it seems like an isolatable problem and it doesn't seem like it'd 
improve spacing to the naked eye in the majority of cases.

> add_grobs_of_one_priority looks ok, but a bit complicated. It would be 
> simpler if you got rid of the boxes altogether and only used skylines. You 
> could "hardcode" ly:grob::vertical-skylines-from-stencil as a default for 
> vertical-skylines in the same way that ly:grob::stencil-height is hardcoded 
> as a default for Y-extent. Then you can assume that every grob has a skyline.
> 

I also agree here, but if it's OK with you, I'd like to hold off until this 
initial code is in the code base.

Thanks for the feedback!

Cheers,
MS
_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to