|
|
(updated patch attached)
Gerald Pfeifer wrote:
>> Suggestions for the wording? OK for check in?
> "to make them really signalling": who is them?
>
The variables which have be initialized by -finit-real=snan. I have
trouble coming up with a concise wording. How about:
<li>The <code>-finit-real=</code> flag now also supports the value
<code>snan</code> for signalling not-a-number; to be effective,
one additionally needs to enable trapping (e.g. via
<code>-ffpe-trap=</code>). Note: Compile-time optimizations can
turn a signalling NaN into a quiet one.</li>
> ", which is invoked by <code>main</code> function": here I would omit
> the comma and say "by the <code...".
>
I think the sentence then becomes completely illegible ("<code>" changed
to quotes and text in parentheses removed):
'As before "MAIN__" is the actual Fortran main program by "main" function.'
I prefer my previous text (with a missing "the" inserted):
'As before, "MAIN__" is the actual Fortran main program, which is
invoked by the "main" function.'
I agree all those mains are confusing (especially language terms vs.
assembler symbols names), but I don't see how one can make it clearer.
> "preventing inadvertently uses the same unit at different parts of the
> program" -> "of the same" and "in different parts".
>
But then also s/ly uses/ use/.
> Sorry for being picky today;
Well, I was hoping to find someone picky :-) Thanks for looking through
the patch, Gerald and Ralf!
> And it seems you guys have been doing a great amount of nice work.
Yes, it is proceeding quite nicely - not fast, but steadily. I think
most middle-end changes are more impressive, though less user visible
than such front-end changes.
The next documentation item on my agenda is updating the Fortran
2003/2008 status in the manual (gfortran.texi), which has not been
updated for quite some time.
Tobias
PS: I intent to commit the patch tomorrow.
Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.5/changes.html,v
retrieving revision 1.15
diff -u -r1.15 changes.html
--- changes.html 3 Jun 2009 09:31:29 -0000 1.15
+++ changes.html 8 Jun 2009 21:13:47 -0000
@@ -40,6 +40,13 @@
allows the user to get debugging dumps when doing parallel builds
without two builds of the same filename interfering with each other.</li>
+ <li>The <a href="http://www.multiprecision.org/">Multiple Precision
+ Complex Library</a> (MPC) is now used if found at configure time.
+ 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>
+
</ul>
<h2>New Languages and Language specific improvements</h2>
@@ -88,6 +95,81 @@
<h4>Runtime Library (libstdc++)</h4>
<h3>Fortran</h3>
+ <ul>
+ <li>The <code>COMMON</code> default padding has been changed –
+ instead of adding the padding before a variable it is now added
+ afterwards, which increases the compatibility with other vendors
+ and helps to obtain the correct output in some cases. Cf. also the
+ <code>-falign-commons</code> flag (<a href="../gcc-4.4/changes.html">added
+ in 4.4</a>).</li>
+
+ <li>The <code>-finit-real=</code> flag now also supports the value
+ <code>snan</code> for signalling not-a-number; to be effective,
+ one additionally needs to enable trapping (e.g. via
+ <code>-ffpe-trap=</code>). Note: Compile-time optimizations can
+ turn a signalling NaN into a quiet one.</li>
+
+ <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 these run-time checks.</li>
+
+ <li>The run-time checking <code>-fcheck=bounds</code> now warns
+ about invalid string lengths of character dummy arguments. Additionally,
+ more compile-time checks have been added.</li>
+
+ <li>GNU Fortran no longer links against <code>libgfortranbegin</code>.
+ As before, <code>MAIN__</code> (assembler symbol name) is the actual
+ Fortran main program, which is invoked by the <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
+
href="http://gcc.gnu.org/onlinedocs/gfortran/Mixed_002dLanguage-Programming.html">Mixed-Language
+ Programming</a> chapter in the manual.</li>
+
+ <li>The I/O library was restructured for performance and cleaner
+ code.</li>
+
+ <li>Array assignments and <code>WHERE</code> are now run in parallel when
+ OpenMP's <code>WORKSHARE</code> is used.</li>
+
+ <li>The experimental flag <code>-fwhole-file</code> was added. The flag
+ allows whole-file checking of procedure arguments and allows better
+ optimizations. It can also be used with <code>-fwhole-program</code>,
+ which is now also supported in gfortran.</li>
+
+ <li>More Fortran 2003 and Fortran 2008 mathematical functions can
+ now be used initialization expressions.</li>
+
+ <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
+ have been implemented.</li>
+ <li>The <code>INT_FAST{8,16,32,64,128}_T</code> kind type parameters
+ of the intrinsic module <code>ISO_C_BINDING</code> are now supported.
+ </ul>
+ </li>
+
+ <li>Fortran 2008 support has been extended:
+ <ul>
+ <li>The <code>OPEN</code> statement now supports the
+ <code>NEWUNIT=</code> option, which returns a unique file unit,
+ thus preventing inadvertent use of the same unit in different parts
+ of the program.</li>
+ <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>
+ </ul>
+ </li>
+ </ul>
<h3>Java (GCJ)</h3>
|
|