[Top][All Lists]

[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 00:23:19 +0200
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)

Wiz Aus wrote:
Ok, now I'm trying to actually play with the lilypond code -- but it seems to be full of completely illegal C++ - like trying to cast class member functions to standalone functions etc. etc. The cases I've found so far are all very easy to fix, just by adding proxy function definitions in the macros that set these things up, so I can't work out why it would be written like this in the first place.

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.

Has anyone ever tried to get the code compiling on another C++ compiler?

No, and it has never been our intention to support other compilers.

Why even use C++ if you don't care about C++ conformance?

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.

And when gcc 4.0 comes out and they decide to change to the Microsoft fastcall callling convention under Windows (which passes the "this" pointer in a register) in order to be compatible with existing MS libraries, you're happy to be stuck with having to use an old compiler?

Well, then we'll have the patch. But let's wait for GCC 4.0 with fastcall switched on before we

FWIW, I have the whole thing compiling and linking under MSVC 7.1.

That's impressive, although I'm mystified why you would do that.

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

reply via email to

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