On Sun, Feb 21, 2010 at 7:25 PM, Martin Guy <martinw...@gmail.com> wrote:
> I disagree with the "default cpu should 95% of what is currently on
> sale" argument.
>
> The default affects naive users most strongly, so it should "just
> work" on as many processors as is reasonable, not be as fast as
> possible on most of the majority of the processors currently on sale.
> Naive users might have anything.

It is interesting how this conflicts with your signature:


> "You can't buy a computer these days with less that a gigabyte."
>   -- A.S.Tanenbaum, trying to defend Minix's fixed-size kernel arrays
> at FOSDEM 2010

I take it you disagree with this? Because most people do not expect to
need 1GB for a Minix installation. ;-)

Anyway, naive users also expect reasonable performance, which they
don't get with the existing defaults [*]. And there are far many more
default naive users who have systems with CPUs of designs less than 5
years old. You want to cater for a minority with old hardware. I
actually expect you'll find that those users are less naive than the
average gcc user.

([*] I sometimes even have to explain -O2, because icc has
optimizations on by default. Many Fortran users do not use gfortran
because they don't know about this difference...)

> As an example of the results of that kind of thinking, we've had years
> of pain and wasted time in the ARM world due to the default
> architecture being armv5t instead of armv4t. The results are that user
> after user, making their first steps compiling a cross toolchain,
> turns up on the mailing lists having got "illegal instruction" after
> days of work, and that almost all the distributions are forced to
> carry an "unbreak armv4t" patch to GCC.

Can you name these distributions? I can only name Debian
(http://lists.debian.org/debian-arm/2006/06/msg00015.html)

> Lord, someone was even compelled to try and get Android working on
> their Openmoko, while it was binary-only, by emulating the few trivial
> instructions in the kernel. Ubuntu, similarly, excludes the lower end
> by leaving the default unchanged.

Ubuntu also requires i686 or later. As do most other Linux distributions.

But anyway, bringing ARM into this discussion is neither here nor there.


> When users get interested in maximal speed, the first thing they do is
> go for -mcpu=xyz

Your naive users (and mine) don't even know about -mcpu and -march.


>, which doesn't require them to recompile the compiler

Neither does compiling for i386/i486 or armv4 if you have a
cross-compiler for another default -- you can use -mcpu to "downgrade"
too.


> The time-honoured policy of having the default settings work on as
> wide a range hardware as possible is a socially inclusive one.
> Some manifestos chisel the "low bar" into their constitutions (Debian
> for example); it would be nice for GCC to do so too.

You're off it with the "socially inclusive" argument. No-one is
excluded at all, if the defaults are changed. The only thing that
happens is that the small number of users with exceptional
configurations get the burden of dealing with the -march/-mtune
options.
(**/me mumbles something incoherent about Pareto, etc...***)

Ciao!
Steven

Reply via email to