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

Re: Release plan (was: Progress Update)



Christian Reiniger wrote:

> > Ahh, good idea, as C++ sucks for library interfaces. The mangling that
> > can change, the virtual table layouts that always change, only usable
> 
> Shouldn't matter with dynamic libs. At least I don't have problems with
> that although I update my compiler whenever possible.

What do you mean by "shouldn't matter with dynamic libs"? Actually, it
matters *mostly* with dynamic libs!

The changing mangling isn't that bad, especially on Linux, where there
are only two strains of them (classic GCC and new-style EGCS (not yet
popular, thank God or whoever!)). But on Sun for example, where you have
CFront available, older Sun compilers, newer Sun compilers, older GCC
and newer EGCS, this is *hell*.

The vtable layout is more of an intrinsic C++ problem (aka the fragile
base class problem). For example, if you add a private member that
really doesn't change at *all* how a client application will use the
library, everything will have to be recompiled anyway. That's pure crap
to me. Encapsulation and hiding, my ass!

Sorry, I have this problem with hating C++ with my guts these days.
Happens sometimes when it pisses me off too much in a given period.

> > The downside of a C API is that if it is C++ inside, you need to have a
> > wrapper.
> 
> Well, yessssss, more or less. But actually it's not su much a wrapper, but
> something that would be there anyway and just happens to take the form of a
> C function now. src/PenguinFile/ppf*.cpp are the implementations of the API
> functions if you want to look yourself.

Good, that's fine.

-- 
Pierre Phaneuf
http://ludusdesign.com/