[www-patch] bugs.html rewrite, part 1: factor out non-bugs section

Volker Reichelt reichelt@igpm.rwth-aachen.de
Thu Aug 14 16:00:00 GMT 2003


On 14 Aug, Wolfgang Bangerth wrote:
> 
>> The first patch (see below) addresses (b), i.e. it factors out the non-bugs
> 
> Thanks for doing this! I'd like to have the following points addressed, if 
> possible (some of the were already in the original, but they could be fixed 
> while you are at it already):

I just wanted to do the sorting in my first patch and tackle the points
that you want to address in follow-up patches (in order to only make
incremental changes). So I don't think this will go into the first
patch.

But thanks for pointing those flaws out - they'll soon be addressed!

>> +In particular, bugs caused by invalid code have a simple work-around:
>> +<em>fix the code</em>.</p>
> 
> I find the emphasis offensive. This may be rewritten as "In particular, the 
> best work-around for invalid code is to make it standard conforming."

Seems reasonable.

>>+<p>GCC 3.0 had a new ABI, which affected class layout, function mangling and
>> +calling conventions. We had intended it to be complete, but unfortunately
>> +some issues came to light, too late to fix in the 3.0 series.
>> +The ABI should not change in dot releases, so we addressed most issues
>> +in GCC 3.1.</p>
> 
> And in 3.2, and we may do it again in 3.4. This is in the "Frequently reported 
> bugs section, and the first in the list. Frankly, we don't get so many ABI 
> bugs (and if we do from really skilled people looking out for weird 
> inconsistencies). This section also doesn't say what exactly it is that is 
> the bug, so it's of not much use. I recommend dropping the entire section.

I'm unsure about that one. I'd rather keep it until things have settled
down.

>> +<dt>Covariant return types</dt>
>> +
>> +<dd>Up to (and including) GCC 3.3 we did not implement non-trivial
>> +covariant returns.  This has been addressed for GCC 3.4.</dd>
> 
> But as far as I understood Nathan, they are still not implemented for variadic 
> functions. This should be clarified then.

Gerald already contacted Nathan. He'll have a look into the stuff.

>> +<dt>Two stage lookup in templates is not implemented.</dt>
>> +<dd><p>[14.6] specifies how names are looked up inside a template. G++
>> +does not do this correctly, but for most templates this will not be
>> +noticeable.</p></dd>
> 
> That's not true any more. Mainline is pretty good in this respect.

That's on my TODO list already. Mainline still has flaws, though.

>> +<p>Up to and including GCC 3.0, the compiler will give "parse error" for
>> +seemingly simple code, such as</p>
> 
> That's a lengthy section, and we don't get many PRs any more for these old 
> compilers. I'm for dropping those parts of the section that really apply to 
> anything pre-3.2. If someone sends in code like this it's not a lot of work 
> for us to close the PR, but it saves potential submitters quite some time if 
> the section went away.

I haven't looked into this section, but it's way too complicated IMHO.
I'll look into it soon to see, which paragraphs still apply and which
can be disposed of.

>> +<p>Programming languages themselves change.  Earlier versions of GCC
>> +might have accepted source code that is <em>no longer</em> valid.
>> +This means that code which might have "worked" in a previous version,
>> +is now rejected.  You should update your code to match recent language
>> +standards (this holds especially for C++).</p>
> 
> Usually, it's not the language standard that makes something illegal, but that 
> either there was no standard before (C++), or that we defined our own 
> language (via extensions) and are now moving away from it. Maybe this could 
> be made clearer. We shoot ourselves in the foot if we say on the one hand 
> "language standards are changing constantly in incompatible ways" and on the 
> other hand drop extensions with the argument that we want to move closer to 
> standards.

>> +<dt>Problems with floating point computations.</dt>
> 
> We could have a link to our favorite PR 323 in this section.

Yup.

I also wanted to add a small example which focuses on the effects
of storing a value to memory (there *seems* to be no computation, but
the value changes anyway) and not on the rounding in the computation
itself.

> About the upgrade 2.95->3.0 thing: replace it by 3.x instead, or by "3.0 and 
> later". The problems are the same in any case.

That section deserves a patch for its own I think.

> Thanks for the work
>   W.

Regards,
Volker




More information about the Gcc-patches mailing list