michael.a wrote:
Extensions are harmless as long as authors clearly understand the pitfalls they offer and mandatory compile options are required to enact them. The line should be drawn somewhere naturally, granted the philosophy of a particular implementation. GCC being the premier compiler for Linux however definitely should not have such a staunch attitude regarding extensions. The EGCS episode should be testament enough in that light.
I disagree, properly defining the semantics in formal standards terms for extensions is a very difficult task, and all too often, extensions are added in a haphazard manner without a proper complete semantic definition. I would say that a minimum requirement is actual language modifying the standard with proper review. The burden of adding non-conforming extensions to a language should be extremely high. The fact that it is done too casually is what causes this sort of portability problem in the first place. Extensions are always harmful (they increase complexity), so you have to be VERY sure that the gain outweighs this inherent harm. I don't see that the burden is met in this particular case.