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