[Patch,wwwdocs] 4.5 changes: MPC and Fortran

Craig Powers enigma@hal-pc.org
Tue Jun 9 03:32:00 GMT 2009


Tobias Burnus wrote:
> 
> I think the list should be reasonably complete, but
> I am sure the wording can be improved.
> 
> Suggestions for the wording?

> +    <li>The <a href="http://www.multiprecision.org/">Multiple Precision
> +    Complex Library</a> (MPC) is now used if found at during configure.
> +    This allows GCC to evaluate and replace at compile-time calls to
> +    complex built-in math functions having constant arguments with their
> +    mathematically equivalent results. Some complex functions were
> +    supported before; those are used as fall back if MPC is not used.</li>

Gerald already commented on "at during".

The second sentence seems a little tortured.  I would change it as follows:

This allows GCC to evaluate calls to complex built-in math functions 
having constant arguments at compile-time and replace them with their 
mathematically equivalent results.

> +    <li>The new flag <code>-fcheck=</code> had been added with the options
> +    <code>bounds</code> and <code>array-temps</code>, which are equivalent
> +    to <code>-fbounds-check</code> and
> +    <code>-fcheck-array-temporaries</code>, and the new tests
> +    <code>do</code> for finding invalid modification of loop iteration
> +    variables and <code>recursive</code> for finding recursive calls to
> +    subroutines/functions which are not marked as recursive. Using
> +    <code>-fcheck=all</code> enables all those run-time checks.</li>

I don't think putting all four sub-options into one sentence works very 
well.  I would change it as follows (I've omitted the code tags for 
brevity, I don't mean they should be removed):

The new flag -fcheck= has been added with the options bounds, 
array-temps, do, and recursive. The bounds and array-temps options are 
equivalent to -fbounds-check and -fcheck-array-temporaries.  The do 
option checks for invalid modification of loop iteration variables, and 
the recursive option tests for recursive calls to subroutines/functions 
which are not marked as recursive. Using -fcheck=all enables all these 
run-time checks.

> +    <li>GNU Fortran no longer links agains <code>libgfortranbegin</code>.
> +    As before <code>MAIN__</code> (assembler symbol name) is the actual
> +    Fortran main program, which is invoked by <code>main</code> function.
> +    However, <code>main</code> is now generated and in the same object
> +    file as <code>MAIN__</code>. For the time being,
> +    <code>libgfortranbegin</code> still exists for backward
> +    compatibility. For details see the new <a

s/agains/&t/

Add a comma after "As before".

I would add a "the" after "invoked by".  I disagree with Gerald's 
comment about removing the ", which", I don't think the result would 
make any sense at all.

> +    <li>Fortran 2003 support has been extended:
> +      <ul>
> +       <li>Procedure-pointer function results and procedure-pointer
> +       components with the NOPASS attribute,</li> 
> +       <li><code>DEFERRED</code> type-bound procedures, and</li>
> +       <li>the ERRMSG= argument of the ALLOCATE and DEALLOCATE statements
> +       has been implemented.</li>
> +       <li>The <code>INT_FAST{8,16,32,64,128}_T</code> kind type parameters
> +       of the intrisic module <code>ISO_C_BINDING</code> are now supported.
> +      </ul>
> +    </li>

In the third bullet, s/has/have/.  (I think Gerald got this as well.)

s/intrisic/intrinsic/

> +        <li>The <code>OPEN</code> statement now supports the
> +        <code>NEWUNIT=</code> option, which returns a unique file unit,
> +        thus preventing inadvertently uses the same unit at different parts
> +	of the program.</li>

The whitespace between the '+' and the text on the last quoted line here 
is a tab character, instead of spaces as you appear to be using elsewhere.

Change the part after the second comma to:
thus preventing inadvertent use of the same unit in different parts...

(it could also be ...inadvertently using the same unit in..., but I 
think that would be too many participles)

The "thus" isn't essential there.

> +        <li>The <code>INT{8,16,32}</code> and <code>REAL{32,64,128}</code>
> +        kind type parameters of the <code>ISO_FORTRAN_ENV</code> module are
> +        now supported.</li>

For consistency, either the bit from ISO_C_BINDING should be changed to 
match this, or this should be changed to match that.

In one case, you have,
...of the intrinsic module ISO_C_BINDING are now supported.

In the other, you have
...of the ISO_FORTRAN_ENV module are now supported.

If ISO_FORTRAN_ENV is not intrinsic (I don't remember if it is or not), 
then maybe it's OK as-is.



More information about the Gcc-patches mailing list