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:

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

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

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.

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

Reply via email to