This Week...
QtRuby, Ruby bindings for Qt are now in Kdebindings. Kdevelop has a new class browser. An OBEX kio-slave has been added. Kwallet is enabled for compilation and testing. Plus Kwin improvements, lots of work on Kpilot conduits and many bugfixes.
Dirk Mueller has been going through the codebase, with the comment "unbreak compilation (gcc 3.4+)". Dominique Devriese wondered:
what kind of thing to expect problems with using gcc 3.4+ ? I've checked some parts of your latest commit, and the only thing I see is that you can't put a semicolon after the '}' ending a function definition any more. More problems to watch out for ?
There are a couple of problems, most of them related to code using template (and especially STL). There is hardly any code in KDE that gets the two-stage name lookup in templates right.
Changes in GCC 3.4:
Changes in GCC 3.4:
- The C++ parser in G++ has been rewritten from scratch. As a result, G++ is considerably more compliant to the C++ standard. As a result, it accepts more valid programs, and rejects more invalid programs. Many of the changes below are a consequence of the new parser.
- Friend declarations that refer to template specializations are rejected if the template has not already been declared. For example:
template <typename T>
class C {
friend void f<>(C&);
};
is rejected; you must first declare `f' as a template:
template <typename T>
void f(T); - You must use "template <>" to introduce template specializations, as required by the standard. For example:
template <typename T>
struct S;
struct S<int> { };
is rejected; you must write:
template <>
struct S<nt> {}; - You must now use the `typename' and `template' keywords to disambiguate dependent names, as required by the C++ standard.
- The "named return value" extension has been removed.
- The "implicit typename" extension has been removed.
- G++ used to accept code like this:
struct S {
int h();
void f(int i = g());
int g(int i = h());
};
This behavior is not mandated by the standard. Now G++ issues an error about this code. To avoid the error, you must move the declaration of `g' before the declaration of `f'. The default arguments for `g' must be visible at the point where it is called. - When -pedantic is used, G++ now issues errors about spurious semicolons; for example:
namespace N {}; // Invalid semicolon.
void f() {}; // Invalid semicolon. - G++ no longer accepts attributes for a declarator after the initializer associated with that declarator. For example:
X x(1) __attribute__((...));
is no longer accepted. Instead, use:
X x __attribute__((...)) (1); - Covariant returns are implemented for all but varadic functions that require an adjustment.
Statistics
Commits | 1500 by 162 developers, 207363 lines modified, 2174 new files |
Open Bugs | 4596 |
Open Wishes | 4277 |
Bugs Opened | 298 in the last 7 days |
Bugs Closed | 365 in the last 7 days |
Commit Summary
Module | Commits |
kde-i18n |
251
|
kdenonbeta |
222
|
kdelibs |
145
|
www |
119
|
kdepim |
109
|
kdebase |
109
|
kdevelop |
94
|
kdemultimedia |
58
|
kdeextragear-1 |
51
|
kdeextragear-2 |
48
|
Lines | Developer | Commits |
79841
|
Stephan Kulow |
97
|
2312
|
Dirk Mueller |
85
|
639
|
Chris Howells |
78
|
918
|
Luboš Luňák |
62
|
1259
|
George Staikos |
43
|
698
|
Sebastian Trueg |
43
|
1158
|
Thiago Macieira |
35
|
2038
|
Roberto Raggi |
32
|
1503
|
Alexander Dymo |
28
|
20
|
Richard Dale |
26
|
Internationalization (i18n) Status
Bug Killers
No commits found