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

Wolfgang Bangerth bangerth@ices.utexas.edu
Thu Aug 14 15:02:00 GMT 2003


> 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):

> +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."


>+<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.


> +<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.


> +<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.


> +<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.


> +<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.


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.

Thanks for the work
  W.

-------------------------------------------------------------------------
Wolfgang Bangerth              email:            bangerth@ices.utexas.edu
                               www: http://www.ices.utexas.edu/~bangerth/



More information about the Gcc-patches mailing list