On Mon, Feb 22, 2010 at 12:28 AM, Martin Guy <martinw...@gmail.com> wrote: > On 2/21/10, Steven Bosscher <stevenb....@gmail.com> wrote: >> On Sun, Feb 21, 2010 at 9:22 PM, Erik Trulsson <ertr1...@student.uu.se> >> wrote: >> > One of the great advantages of much free/open software is the way it >> > will work just fine even on older hardware. >> And, let's face it, most users of gcc don't use it because it is free >> software but because it performs just fine for them. And when it does >> not, they just as easily switch to another compiler. > Hardly. At present there is a GCC monoculture, both in what is the > standard compiler with most systems and in what compiler packages will > build with, either because the build system uses GCC-specific flags or > because the code using GCC extensions.
This is certainly true on most linux machines. But on non-linux machines GCC is usually just another option. And at least on ix86-linux and x86_64 linux, it is very easy to install other compilers. Most people I know who do software development, have at least gcc and icc installed, and sometimes llvm and some proprietary compilers (Absoft, Pathscale, etc.). This is probably because... > (...) The "hurt" is that > powerful modern PCs might take 20% longer to encode a DVD, while the > "needs" is that the bulk of software will run at all on their poor > hardware. ...this 20% costs a lot of money (time, energy (!), other resources) if you do high-end computing. And in many cases, it is a lot more than 20%. The structural analysis code I worked with, runs about 2.5 times faster if SSE2 and vectorization are enabled. Since this is an interactive application, it saves money by keeping busy the otherwise idly waiting engineers. The developers of this code were not aware of the options you have to pass to GCC to get this win. Arguably that's their problem, but I don't think so. They just chose the way of least resistance: compare gcc and icc and take the fastest. The hurt is on gcc, because it loses users. For home machines: You should realize that if that DVD encodes 20% faster, or that movie plays without flickering, or ... on Windows 7, people switch. It is what users do: they find the machine+OS that works best for them. I honestly believe it works like that. I see it all around me, and I even still have a dual-boot installation because of this. If a change in the defaults of GCC helps proliferate free software better (an FSF political goal, which are relevant, unlike political views you've mentioned) then this change should be seriously considered. >> > Yes, of course -- but what is the advantage of using the latest GCC >> > for such an older processor? >> Tree-SSA? LTO? Fixed bugs? New languages? Etc? I can see plenty of >> good >> reasons for it. > Apart from those factors (and one hopes that in general all code > generation improves from release to release), users may not really > have a choice, being most likely to try (or be given) the most recent > stable version of whatever distro, and distros tend to try to ship the > most recent stable gcc in each new release. If these users try to run the latest distro/GCC on such older hardware, it probably doesn't even work. Tree-SSA has increased the resources required by GCC significantly. LTO will almost certainly not work for any meaningful application on older hardware. The only new languages in recent years in GCC are ObjC++, which nobody uses, and Fortran 95, which nobody uses on old hardware (except perhaps for educational purposes, but if you use Fortran then you probably have access to better hardware than a 20 year old desktop). Ciao! Steven