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.

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
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to