>>>>> "Trond" == Trond Eivind =?iso-8859-1?q?Glomsr=F8d?=
> <teg@stripped> writes:
Trond> (a couple of days to calm down is often useful...)
Trond> Sasha Pachev <sasha@stripped> writes:
Trond> That's bad advice. 2.96RH is currently the least buggy compiler
Trond> around (none are bugfree)
Trond, I don't want to start a war here, but we know by bitter
experience that at least for the MySQL code 2.96 is a bad choice.
We don't have any problem with the more strict syntax (You can compile
MySQL with almost any C++ compiler without any problems; Some with
even more strict syntax than 2.96).
The problem is that we have seen close to a hundred incidents where
MySQL has died unexpectedly when it was compiled with gcc 2.96 and
where the trouble disappeared when they tried our binary instead.
You may argue that gcc 2.96 has less bugs, but this is not the point!
One critical bug that hits our code is one bug too many for us.
You know as well as I do that no test suite can cover all bugs. Even
if gcc 2.96 could compile 100000 programs perfectly, it doesn't mean
that's it suitable for the 100001'st program.
We would really like to know what bug in 2.96 that we are hitting, but
unfortunately we don't for the moment have resources to track this
down: (To do this would take us a couple of days, as this only
happens under heavy load with many threads).
It has also nothing to do with our assembler code; We have been using
this for ages with many different compilers, OS, and different kind of
systems. We know that we had one problem once, but this got fixed a
long time ago.
gcc 2.95.3 may not be perfect for all possible code, but for the MySQL
code we know it performs extremely good; We have encounter during the
last 3 years only 3 bugs with egcs 1.1.2 and gcc 2.95, which we where
able to go around with only minor code changes.