Tim Goetze wrote: > Frailty, thy name is GCC > > A Modern Drama in Three Scenes. > > Dramatis Personae: An ardent programmer and a popular C++ compiler > > -*- > > Prologue: > > Appalled by the rat race commonly known as the proprietary software > business, our young and gifted hero joins the light side, deeply > inspired by the manifold yet subtle qualities of free software. > > Scene I: > > Our hero in day-and-night-long sessions optimizes the hell out of a > SSE2-based n*4-band IIR equalizer. Of course in assembly, and mixed > with C++ templating. The final code is about 10% faster than floats on > AMD, probably a fair bit quicker yet on P4 systems. > > Enter gcc version 3, which drops multi-line inline assembly support. > Said assembly code becomes effectively unusable and dies a quick and > unsung death. > > Scene II: > > Our hero puts years of work into an all-round realtime audio and MIDI > library that expands the Python programming language. While having its > flaws, it's a versatile, surprisingly stable and immensely capable > system, partly thanks to a very clever (according to our hero) design > that subclasses Python's C types in C++.
Sound to me like that was relying on "undefined behaviour". > Enter gcc version 3, moving the vtable member to memory offset 0 of a > derived type even if the base type is in C which doesn't know about > vtables. Relying on undefined behaviour will, sooner or later, result in tears. > Scene III: > > Our hero bundles his DSP efforts into a free plugin library, once > again saving himself much work and improving code readability by using > C++ templates, resulting in quite an elegant object system and source > code, hethinks. > > Enter gcc version 4, which requires the templated types' constructor > code be rewritten in the most nonsensical, misleading and ugly fashion > possibly imaginable this side of Hungary and Redmond, WA, according to > our (now not so very young anymore) hero. Hmm, C++ bites again. I know little about C++, but maybe this last change was due to some requirement of some C++ standard. > Our hero has completely and permanently lost his faith in the popular > compiler. Two out of the 3 above were C++ related and did not affect the GNU C compiler. > Disillusioned and indecisive, he resigns himself to > henceforth reluctantly write C++ only to support his miserable life. Can I sell you an Ocaml: http://www.ocaml.org/ Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo [EMAIL PROTECTED] (Yes it's valid) +-----------------------------------------------------------+ "... a discussion of C++'s strengths and flaws always sounds like an argument about whether one should face north or east when one is sacrificing one's goat to the rain god." -- Thant Tessman