Language standards vs. implementation, was Re: A right alternative to IEEE-754's format

"Walter Banks" <walter@bytecraft.com>
Tue, 10 Apr 2018 11:07:44 -0400 (EDT)

          From comp.compilers

Related articles
| List of all articles for this month |
From: "Walter Banks" <walter@bytecraft.com>
Newsgroups: comp.compilers
Date: Tue, 10 Apr 2018 11:07:44 -0400 (EDT)
Organization: Aioe.org NNTP Server
References: <0d4dc7f8-1819-43e5-8082-6ff7aee5f41b@googlegroups.com> <p9l0cs$p2r$1@gioia.aioe.org> <p9l9bs$am7$1@dont-email.me> <p9ldok$1h9j$1@gioia.aioe.org> <p9li4d$4mn$1@dont-email.me> <p9lvbt$fn0$1@gioia.aioe.org> <2018Mar31.160556@mips.complang.tuwien.ac.at> <p9o96c$1r72$1@gioia.aioe.org> <p9ohgc$vdl$1@dont-email.me> <2018Mar31.195714@mips.complang.tuwien.ac.at> <kfnzi2mkjos.fsf@x-alumni2.alumni.caltech.edu>
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="52072"; mail-complaints-to="abuse@iecc.com"
Keywords: standards
Posted-Date: 10 Apr 2018 11:07:44 EDT
Content-Language: en-US

  [[ this string is copied from comp.arch because your moderation found it interesting ]]


On 2018-04-01 11:52 AM, Tim Rentsch wrote:
> anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
>
>> A responsible software maintainer does not change behaviour that
>> users make use of. See, e.g.,
>> <https://felipec.wordpress.com/2013/10/07/the-linux-way/>.
>
> Interesting article. Thank you for posting it.
>
>> Unfortunately, there's an epidemic of irresponsibility among C
>> compiler maintainers.
>
> I can't completely agree with this reaction. In some ways, sure, but
> for choices that are allowed because of undefined behavior the
> question is not so black-and-white. Some of the responsibility
> belongs to the ISO C standard (and the people who produce it).
> Unfortunately it's a difficult problem; I know there is interest in
> the ISO C group to find a middle ground, somewhere between
> unspecified behavior and undefined behavior, but it isn't easy to
> find that. For example, consider this reasonable-sounding rule: no
> library interface should ever result in undefined behavior, not
> counting things like bad pointer inputs (and null pointers should
> never be in the set of bad inputs). But what about printf()? In
> printf() we have an interface with large parts of the input domain
> that give undefined behavior. POSIX takes advantage of this to
> define the behavior of positional format specifications, which are
> quite useful in some contexts. But, and here is the important part,
> formats other than those allowed in the POSIX spec /are still
> undefined behavior/. Moreover that freedom is important, to allow
> further extensions to be added at some later date.
>
> I should add that I am mostly on your side. I think what compiler
> writers are doing with so-called "aggressive optimization" belongs
> more to the problem set than the solution set. But solving the
> problem has to include getting changes made to the ISO C standard, so
> that compiler writers have no choice if they want their stuff to be
> conforming. I know doing that is not an easy task; ultimately though
> it seems unavoidable if we are to get things to improve.
>


As someone who has done a significant amount of compiler development
there really never enough testing. Once past sanity tests and detailed
test suites a lot can be gained just by running regression tests even if
the tests are not executed. Detailed metrics alone can be a very
revealing indication of significant compiler problems.


This can be especially true while developing optimization a surprising
number of new optimizations do not have the intended effect on old
functioning programs.


w..


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.