This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: type based aliasing again
- To: mrs AT wrs dot com
- Subject: Re: type based aliasing again
- From: Richard Stallman <rms AT gnu dot org>
- Date: Wed, 15 Sep 1999 01:31:32 -0400
- CC: mark AT codesourcery dot com, craig AT jcb-sc dot com, gcc AT gcc.gnu dot org, jbuck AT synopsys dot com, law AT cygnus dot com
- References: <199909132333.QAA23379@kankakee.wrs.com>
- Reply-to: rms AT gnu dot org
Ah, but you're not thinking of this like a user. As a user, it
_would_ be a feature, and they would expect it.
I've seen several people have made this claim, but they took
it for granted, rather than trying to justify the claim.
I don't believe it, and here is an argument for why not.
If you believe that the mere fact that some cases "work as expected"
will have this effect, even if we say nothing about it to the users,
then this is happening now. Maybe half of these cases work as expected
with -O1, and all of them work with -O0.
The only way to prevent this is to implement -fconfound-me.
Review the Linux thread as to why a user would consider this a
feature.
If you tell me precisely where to find these messages, I will read
them. I can barely make the time to have this discussion, and I will
make time to read the messages, but I can't make time to *find* the
messages as well.
You are arguing for a position that rejects the very idea of making an
effort to keep old code working. Your arguments support a general
conclusion that "If code is not unambiguously valid, it is better to
break the code than to keep it working."
This is not just a harsh policy, it is an explicit policy of being
harsh. That is, it says, "Be harsh! Choose the alternative that is
harsh!" This is the opposite of the way we should treat our users.
I understand that your views are not based on sadism or cruelty; you
think that treating users harshly is better for them. But your
motivation, like my motivation, is not the issue anyway. To adopt a
policy of harshness towards people--no matter what justification is
offered for it--is treating them badly. That is the wrong way to
treat the users. We must not make GCC decisions based on a policy of
harshness.
I would like future GCC decisions to be based on the policy that
keeping old code working is a good thing to do, when it is practical
of course.
So if any argument leads to the conclusion that one should be harsh to
the users, please recognize where the argument is taking you, and
reject it on the grounds that it is a disguised policy of harshness.
In particular, if it is argued that a policy of kindness has a
disadvantage, and it turns out that the disadvantage is a consequence
of the fact that the users have been treated kindly, it is really a
disguised policy of harshness.