which compilers do we want to support with KDE 4 ?
k1pfeifle at gmx.net
Sat Jan 21 17:14:41 GMT 2006
On Saturday 21 January 2006 12:48, Alexander Neundorf wrote:
> > For me, it seems the KDE developers are quite up-to-date in what
> > distributions updates says, that means the most of us are almost always
> > with latest compilers.
> It's not only about the developers, it's also about the users.
And if we decide *now* for "3.4 or newer", no user will be having "3.2
or older" any more . ;-)
Yes, it would induce (some would even say "force") a lot of users to
upgrade; so be it.
Overall, it will be a time-saver and a problem-avoider. For users as
well as for developers.
> Users with
> distros where everything was compiled using gcc 3.2 will not be able to run
> KDE if it requires an ABI incompatible version of gcc (at least troubles).
True. We'll encourage (or "force", if you will) them to upgrade. (I am
aware that we will possibly loose a few users thru that, but I'd be in
favour to pay that price in return to the overall win).
> > That means supporting older compilers is a problem
> > for most of us, as the code we write compiles with the compiler we are
> > using, so we commit it, then we discover it does not compile on older
> > versions.
> > So, what to do? How can i be sure that my code will compile in a compiler i
> > don't have? The only answers i can find is:
> > a) Everyone uses the lowest common denominator compiler. This is very
> > difficult as usually you do not want to be running older versions when
> > newer are available
> > b) We write "specs compilant" code. This is not as difficult as a)
> > difficult, you can check it with a book, or wathever, the problem is that
> > older compilers we could want to support are not as specs compilant as we
> > would want, so this does not help either.
> > c) There is someone that does the changes to make it compatible with older
> > compilers. I am not completely against this, but the problem is that
> > sometimes it results in "worse" code.
> d) Stay away from *advanced* template usage (and maybe other advanced C++
> features, no problems so far with gcc 3.2.3)
> > So what is my opinion?
> > Be a bit agressive now and ask for gcc 4.0.x or similar capable compilers
> > for KDE 4.x because KDE 4 will be around for quite time (maybe 3 years?)
> If we would go for gcc >= 4.0 , count me out for the next weeks.
> And probably not only me.
Me too, in a way (even if I don't write code). I counted just now: out of
7 boxes around me, I'd have to upgrade 5.
I'll have to be eating my own dogfood...
> We already lost a lot of developer time by the switch from cvs to svn,
This is true.
Wait... is it really true? Isnt't it only one side of the coin? Didn't
a lot of people also actually *save* time, now that they can make use
of the many more features SVN has over CVS?
Even the ones who worked hardest to make that switch possible and
workable (while we were sitting in our armchairs, applauding them), did
invest this effort because they believed it would, in the end, benefit
themselves and everybody in the project.
So far, I haven't heard them regret what they did.
It could be seen as an insult to their work if we carelessly file it in
the category "loss of a lot of developer time"!
> we have
> to invest time in the switch of the buildsystem,
Isn't this done for the same reasons that the switch from CVS to SVN was
Why do *you* invest time into that work, apart from that it may be fun?
Is it because you secretely think "Great, I'll be wasting a *lot* of
developer time by enforcing a switch to a completely new build system
upon them. *I*'ll be the one who prompted 1000+ old developer dogs to
learn new tricks, exercise new commands, jump through new hoops. Man,
does this feel good!"
The very same effort that you personally want to avoid with GCC you
are (will be) imposing on people once the new build system (whichever
it will be) is adopted.
Or can you explain the difference to me, from a point of view that is
"10 miles above the details"??
> and with requiring gcc >=
> 4.0 we would have to invest time so that every developer can upgrade his
> distribution to gcc >= 4.0 ?
> Might turn out as a killer for KDE 4.
> The problematic code is in kdelibs/kxmlcore. This is really heavy template
> stuff, not easy to understand for the average developer with limited spare
> time (at least not for me).
> The problem here isn't supporting some "old" compilers, it's to support *only*
> compilers which are able to handle advanced template code. For the Apple
> developers this is no problem, they have only gcc >= 4.0.
> After all, we're not talking about some weird ancient compiler, but about
> *gcc*, version 3.2.3, released April 2003, i.e. not even three years old.
By the time, KDE-4.0 hits the market, it will be nearly 4 years old. And
I promise, all desktop distros released at or around the same time, will
ship GCC 4.0.x.
(This is for Linux. I have no clue about other Unix or *BSD platforms, and
how their situation will be. Apologies to our friends there if I'm missing
the point from their p.o.v.).
More information about the kde-core-devel