Over the last two weeks, Debian developer Martin Michlmayr compiled the whole Debian archive on a quad-core MIPS machine donated by Broadcom using GCC 4.1. The aim was to find problems in GCC 4.1 itself and bugs in free software projects exhibited by GCC’s increased standards conformance (in particular regarding C++ code). Read more for the details.By compiling about 6200 packages, over 500 new bugs have been discovered and submitted, 280 of which are
specific to the increased strictness of GCC 4.1. In a posting to the Debian development list, Martin classified the bugs he found and offered some useful links to programmers of C++ code. In a posting to the GCC list, he proposed that GCC should only produce new errors after warnings have been shown for at least one release, giving programmers more time to fix their code. This work is part of his research on quality in free software carried out at the University of Cambridge and sponsored by Google.
pretty sure that should say “Building the Whole Debian….”
nope, it should actually read “the Ghoul Debian” 😉
Edited 2006-03-28 21:47
I like this, it shows how powerful OSS is.
Sometimes you think that, “heey what’s up with the devs – are they just creating bells and whistles?”; wooah this is nice indeed.
Edited 2006-03-28 22:10
I´m recompiling everything with my own optimalisation flags on Ubuntu too,for fun.At least i get some 64-bit packages of otherwise 32-bit packages.
The more warnings and errors that the compiler can generate, the better. My old CS prof once said, “If you are lucky, it won’t compile.” Developers should always use -Wall, and pay attention to the results. When you work off the warnings, you will feel a lot better. And you will be surprised how many potential bugs you will find.
–Developers should always use -Wall, and pay attention to the results.
Quite so, I use the Wall flag together with the pedantic flags. Clean code is both portable and reusable. It also advances my understanding of the language (together with peer estimations of my skills).
The point about new checks generating warnings rather than errors has some validity though perhaps not every time.
I thought Broadcom was mostly known for wifi that didn’t work in OSS. Neat!
Mr. Martin had done really a good job. 500 bugs – wow.
also useful is to add the -Weffc++, which throws out warnings about code which doesn’t meet the suggestions made in the “More Effective C++” series.