[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: MIT discovered issue with gcc



On Sun, Dec 1, 2013 at 9:26 AM, Bernhard R. Link <brlink@debian.org> wrote:
> * Joel Rees <joel.rees@gmail.com> [131129 00:36]:
>> The standard needs to be re-written to encourage sane behavior in
>> undefined situations, and if you don't like that opinion, I'll take
>> some time later, when I have some, to rip your arguments that I've
>> clipped above to shreds. I don't mind if you don't.
>
> I think the only answer to those lines is to advise you to not use
> any programs written in C.

Heh, heh, heh

> I suggest writing everything in Haskell
> and compiling that to java byte code run in a jvm. With the jvm
> implemented in Haskell and running in an interpreter.

touche
(Where is the unicode palette when you want an accented e?)

>         Bernhard R. Link
> --
> F8AC 04D5 0B9B 064B 3383  C3DA AFFC 96D1 151D FFDC

I went back and started digging into the threads Mark posted way back
up there, and the grad student (I think it was) at MIT is just really
taking things way out of context.

So is most of the thread, including my earlier reactions.

The compiler writers, including the team working on LLVM/Clang, are
fully aware that the appropriate behavior when a compiler optimizes
based on undefined behavior is to provide for issuing warnings.
Getting there is just a bigger step than they realized.

I need to take the time to add to the confusion with a blog post of my
own interpretation, I suppose. A lot of strange things got said,
mostly by people who don't seem to be directly involved in writing the
optimizing code.

(No, the standard theoretically allowing bats to fly out of
unpredicted places when undefined code is executed is not an
optimizer's excuse to silently kill undefined behavior code. The
standard does not say that, really. I'm not sure why people like to
(mis)quote that misinterpretation. And there does some to be some lack
of awareness that treating undefined behavior code the same as dead
code is a false inversion of logic. But the guys doing the
optimizations are mostly trying to avoid treating undefined behavior
code that way, really.)

But the point that a lot of C programmers, even experienced
programmers, don't really understand the languages they are using when
writing in C probably bears a bit more emphasizing.

-- 
Joel Rees

Be careful where you see conspiracy.
Look first in your own heart.


Reply to: