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: address@hidden
Subject: Re: Gets vertical skylines from grob stencils (issue 5626052)
Date: Thu, 9 Feb 2012 18:50:17 +0100

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.

In order to test it, YOU MUST RUN:

make clean
./autogen.sh --disable-optimising
make all

Otherwise, LilyPond will complain about not being able to find stuff (I've made changes to GNUmakefile.in) and/or segfault.

I need a few things from interested parties:

1)  Run large scores and tell me if they look good and/or if they take a long time.

2)  Skim stencil-integral.cc and let me know if the comments are clear enough to describe what it is doing.

3)  Skim stencil-integral.cc and let me know if the object-oriented approach is too flimsy.  I basically throw everything in structs and use no constructors, which is not unlike beam-quanting.cc, but it would likely make an intro to CS instructor blush.

4)  The code in stencil-integral.cc is very fragile.  It relies on hardcoded assumptions about how stencils are constructed.  This is not unlike stencil-interpret.cc.  This is not good, as it means that a user can do stuff like (ly:make-stencil '(scale-stencil 4 4 4 4 4 4 (draw-line 1 1))) and the code will go haywire.  There is not really anything I can do in this patch to prevent that, but in a subsequent patch, I (or someone else) will need to write a stencil API (which will likely result in getting rid of a couple more stencils - polygon, for example, can be rewritten using paths) and have an "assert-stencil-well-formedness" command that verifies that a stencil's expr_ only contains valid info.  That said, if anyone has comments on how to better handle the handling of SCM data, they are certainly welcome.

5)  Comment on the build system stuff.  I have no clue how anything works in build-related tasks, so if there's a better way to accomplish what I'm doing in the makefiles, lemme know.

6)  For the brave of heart, check out axis-group-interface.cc add_grobs_of_one_priority.  I think it does what I want it to do in terms of correctly using vertical skylines instead of boxes, and the visual results seem to confirm this, but it is certainly one of the more sensitive areas of the code and I'd appreciate a couple read-throughs from people who know this corner of the code.

After I get some general feedback, I'll throw the patch up on Rietveld so people can dig into the nitty gritty.

Cheers,
MS

reply via email to

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