lilypond-devel
[Top][All Lists]
Advanced

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

Re: Illegal C++


From: Han-Wen Nienhuys
Subject: Re: Illegal C++
Date: Fri, 07 Oct 2005 10:52:02 +0200
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)

Wiz Aus wrote:
Because we want to skip the (proxy) function calls for performance reasons.

Um...lilypond uses an interpretive language (Scheme), goes via TEX and PS to produce output, and you're worried about a few extra C++ function calls? I would be flabbergasted if this made any measurable difference to lilypond's performance.


Actually, the optimization was pretty trivial once I had the precomputed methods going. FWIW, the top of the profile shows a lot of these "lowlevel" function calls that take a large amount of total execution time because of how often they are called.


Hmm...I reverse the right to remain highly skeptical! Lilypond is very slow as far as music typesetting software goes - too slow to use in a GUI, for instance (Sibelius claims to reformat entire 100-page scores in milliseconds - no idea how it does it).

It doesn't, obviously. Try loading a 100-page midi file into it, and see how it fares. I suspect it does some clever caching. Also Sibelius' algorithms, contrary to what their marketing department says, are not that advanced. If you drag notes on-screen, then yes the spacing can be changed interactively, but it will happely put different notes on top of each other.

> If you really wanted
performance, you'd scrap the Scheme and TeX layers.

Certainly. Could you send me a patch for that?

If we had to do it again, it is doubtful that we would use C++. I actually generally hate C++ , so I don't care much about conformance. For the past 9 years, following C++ "conformance" has been a rocky road. No compiler is completely standard conformant, so I just track the latest GCC releases for compatibility.


I agree worrying about strict conformance is a bit of a waste of time - but to deliberately make use of a surely undocumented behavioural aspect of a particular compiler is just asking for trouble.

-Wno-pmf-conversion is thorougly documented in the GCC manual.

I was actually seriously interested in trying to determine what it would take to provide a GUI for lilypond music entry, but I really can't see how it would be done without major changes to the existing code (for a start, there's no easily replaceable interface that's used to do the graphical drawing).

But there is; check out scm/framework-gnome.scm for a backend that outputs to a GNOME canvas.


--
 Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen




reply via email to

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