On 6/12/07, Andy Lester <[EMAIL PROTECTED]> wrote:

I'm very uncomfortable with removing #pragma once from our header
files.  It is perfectly valid C89 code, and I think bowing to a
broken compiler is unhealthy precedent.

to add some context, in r18884 andy committed a patch (after my
suggestion) to put C<#pragma once> in every c header file, after
reading that it should speed up compilation with msvc. i consulted my
copy of k&r, which states that unrecognized pragmas should be ignored,
so it should have no ill effects on other platforms.

as it turns out, this pragma causes mingw gcc 3.4.2 to segfault. this
is a bug in the compiler, not in the parrot code. after googling, it
seems this bug is fixed in mingw gcc 3.4.6 (perhaps earlier.)

in r18945, fperrad reverted andy's patch, after noticing the mingw gcc
problems. andy's message is in response to this commit.

i apologize for not announcing the addition of C<#pragma once> and
knowing about the problem with mingw gcc 3.4.2. it was discussed on
irc, but should have been announced on the list as that's our primary
form of communication.

now, to the matter at hand: i agree with andy. we shouldn't revert
this because one broken compiler doesn't like it. however, we should
make it clear in the documentation that the particular version of that
compiler has trouble compiling valid C89, will not compile parrot, and
upgrading to a version with the proper patch is required.

~jerry

Reply via email to