gcc cont'd [was: Re: [plug] Gentoo vs [insert ur fav distro here]]

James Devenish devenish at guild.uwa.edu.au
Tue Jun 24 08:25:41 WST 2003


In message <1056112520.4741.68.camel at rattus.Localdomain>
on Fri, Jun 20, 2003 at 08:35:20PM +0800, William Kenworthy wrote:
> Actually, I think the speed is compile time: gcc3.x takes a lot longer
> to compile,

(I think this means that we all agree that the speed of gcc
is the speed of gcc!)

> but produces generally smaller and faster binaries - could
> that be what you mean?

I first started dabbling with gcc 3 because I thought it would produce
more efficient executables. I don't have any hard data for that on my
own systems, because it didn't make a difference in the areas that
mattered to me. In some contexts, I still use gcc 3 because its bugs
(and its architecture and language support) are slightly different to
gcc 2's, thus making gcc 3 the only out of those two (though of course
sometimes there are different compilers that can be used).

If you get faster executables on your architecture, then I can't argue
with that! The problem from a developer or release manager's point of
view can comes down to compilation time (which is why I responded to the
compile-duration portion of one of your posts).

The difficulty is that gcc is much slower to compile. This makes it less
comfortable for development -- slower compilation means slower progress
and more wasted time during development. (I suppose if someone was
previously using a slow computer with gcc 2 and is now using gcc 3 with
a much faster machine, the slowness does not manifest is any significant
way.) What this means is that it is more attractive to use gcc 2 for
development turnaround (especially when compilation time is measured in
hours or days). However, gcc 3 is not a perfect product and it has
errors in different places to gcc 2. I have already been bitten by this.
I was using gcc 2 for development, but at one stage (near a milestone)
moved everything over to using gcc 3. I had some strange problems and
found that it was specific to the version of gcc 3 I was using (it
caused runtime crashes). Thus, I would say that if you are developing
with gcc 2 then you can support releases that are built with gcc 2 but
not those built with gcc 3 (and vice-versa). I guess that's common
sense. The consequence is that if gcc 3 is an unattractive development
option, then it is also an unattractive for making releases.

In the case of roll-your-own scenarios (like Gentoo), when you want to
be on the cutting edge, it's worth the risk. I just find that gcc 3 puts
the "bleeding" back into "cutting edge" :)




More information about the plug mailing list