(gcc 2.95 support) kdeextragear-1/amarok/src

Thiago Macieira thiago at kde.org
Thu Mar 10 20:59:33 GMT 2005


Gary L. Greene Jr. wrote:
>> > For KDE 4, I'd like to see that revised. gcc 2.95 will be 6 years
>> > old by then. I say we move gcc 2.95 support from "required" to
>> > "would be nice".
>>
>> Which effectively means it support becomes terminally broken.

Come to think of it, yes, that's what it means. The first problem that 
creeps out and can't be solved without breaking binary compatibility -- 
as was nearly the case for the 3.3.0 bug I referred to -- we effectively 
kill the support.

>> Broad portability means broad support of compilers. Hence, making use
>> of the latest and greatest C++-standard features will reduce
>> portability for KDE.

True, but see below.

>> I support that, too. But just as we banned C99 code for KDE
>> development because of portability reasons, we should also similarly
>> restrict the use of very advanced C++-standard functionality,
>> especially when it can be worked around easily.

True. But Gary is also correct:

> Additionally, not using the more advance C++ _standard_ functionality,
> is hampering development at times. 

Some of the features g++ 2.95 lacks are basic functionality, like using 
the "using" keyword in classes to keep methods from being shadowed by new 
overloads (1). Another problem is covariant returns, but I gather that 
wasn't implemented until recently in the 3.x series.

The bug that I referred to earlier -- note: bug, not missing feature -- 
was caused by an indirect call to a virtual function from inside a 
constructor (2). Nothing tricky or advanced about it, but it simply 
crashes.

(1) class Base { void func(); };
class Derived { void func(int); using Base::func(); };

(2) Constructor calls parent constructor, that calls a function, that 
calls a virtual function. That crashes if there's multiple inheritance, 
since g++ 2.95 doesn't support In-Construction Virtual Tables.

-- 
  Thiago Macieira  -  thiago (AT) macieira (DOT) info
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

5. Swa he géanhwearf tó timbran, and hwonne he cóm, lá! Unix cwæð "Hello, 
World". Ǽfre ǽghwilc wæs glæd and seo woruld wæs fréo.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20050310/466e56d7/attachment.sig>


More information about the kde-core-devel mailing list