Message ID | 4C9B6A09.2080605@net-b.de |
---|---|
State | New |
Headers | show |
Hello Tobias, * Tobias Burnus wrote on Thu, Sep 23, 2010 at 04:54:01PM CEST: > The patch has been checked via "make pdf info html" and the result > has been visually inspected. > OK for the trunk? Let's turn on the spell checker ... > --- gcc/fortran/gfortran.texi (revision 164563) > +++ gcc/fortran/gfortran.texi (working copy) > @@ -474,9 +474,8 @@ standard-compliant Fortran 95, Fortran 9 > including a number of standard and non-standard extensions, and can be > used on real-world programs. In particular, the supported extensions > include OpenMP, Cray-style pointers, and several Fortran 2003 and Fortran > -2008 features such as enumeration, stream I/O, and some of the > -enhancements to allocatable array support from TR 15581. However, it is > -still under development and has a few remaining rough edges. > +2008 features, including TR 15581. However, it is still under > +development and has a few remaining rough edges. > > At present, the GNU Fortran compiler passes the > @uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html, > @@ -521,22 +520,14 @@ future standards---in particular, Fortra > The GNU Fortran compiler implements > ISO/IEC 1539:1997 (Fortran 95). As such, it can also compile essentially all > standard-compliant Fortran 90 and Fortran 77 programs. It also supports > -the ISO/IEC TR-15581 enhancements to allocatable arrays, and > -the @uref{http://www.openmp.org/drupal/mp-documents/spec25.pdf, > -OpenMP Application Program Interface v2.5} specification. > +the ISO/IEC TR-15581 enhancements to allocatable arrays. > > In the future, the GNU Fortran compiler will also support ISO/IEC > -1539-1:2004 (Fortran 2003) and future Fortran standards. Partial support > -of that standard is already provided; the current status of Fortran 2003 > -support is reported in the @ref{Fortran 2003 status} section of the > -documentation. > - > -The next version of the Fortran standard (Fortran 2008) is currently > -being developed and the GNU Fortran compiler supports some of its new > -features. This support is based on the latest draft of the standard > -(available from @url{http://www.nag.co.uk/sc22wg5/}) and no guarantee of > -future compatibility is made, as the final standard might differ from the > -draft. For more information, see the @ref{Fortran 2008 status} section. > +1539-1:2004 (Fortran 2003), ISO/IEC 1539-1:2010 (Fortran 2008) and > +future Fortran standards. Partial support of the Fortran 2003 and Two spaces after end-of-sentence period. Several instances. > +Fortran 2008 standard is already provided; the current status of the > +support is reported in the @ref{Fortran 2003 status} and > +@ref{Fortran 2008 status} sections of the documentation. > > Additionally, the GNU Fortran compilers supports the OpenMP specification > (version 3.0, @url{http://openmp.org/wp/openmp-specifications/}). > @@ -938,21 +929,102 @@ Extension of derived-types (the @code{EX > @node Fortran 2008 status > @section Fortran 2008 status > > -The next version of the Fortran standard after Fortran 2003 is currently > -being worked on by the Working Group 5 of Sub-Committee 22 of the Joint > -Technical Committee 1 of the International Organization for > -Standardization (ISO) and the International Electrotechnical Commission > -(IEC). This group is known as @uref{http://www.nag.co.uk/sc22wg5/, WG5}. > -The next revision of the Fortran standard is informally referred to as > -Fortran 2008, reflecting its planned release year. The GNU Fortran > -compiler has support for some of the new features in Fortran 2008. This > -support is based on the latest draft, available from > -@url{http://www.nag.co.uk/sc22wg5/}. However, as the final standard may > -differ from the drafts, no guarantee of backward compatibility can be > -made and you should only use it for experimental purposes. > +The latest version of the Fortran standard is ISO/IEC 1539-1:2010, informally > +known as Fortran 2008. The official version is available from International > +Organization for Standardization (ISO) or its national member organizations. > +The the final draft (FDIS) can be downloaded free of charge from The the > +@url{http://www.nag.co.uk/sc22wg5/links.html}. Fortran is developed by the Consider replacing single / in URLs with /@/ so that texinfo may line-wrap at these positions. Several instances. > +Working Group 5 of Sub-Committee 22 of the Joint Technical Committee 1 of the > +International Organization for Standardization and the International > +Electrotechnical Commission (IEC). This group is known as > +@uref{http://www.nag.co.uk/sc22wg5/, WG5}. > + > +The GNU Fortran supports several of the new features of Fortran 2008; the > +@uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information > +about the current Fortran 2008 implementation status. In particular, the > +following is implemented. > + > +@itemize > +@item The @code{-std=f2008} option and support for the file extensions @option > +@code{.f2008} and @code{.F2008}. @file, twice. > + > +@item The @code{OPEN} statement now supports the @code{NEWUNIT=} option, > +which returns a unique file unit, thus preventing inadvertent use of the > +same unit in different parts of the program. > + > +@item The @code{g0} format descriptor and unlimited format items. > + > +@item The mathematical intrinsics @code{ASINH}, @code{ACOSH}, @code{ATANH}, > +@code{ERF}, @code{ERFC}, @code{GAMMA}, @code{LOG_GAMMA}, @code{BESSEL_J0}, > +@code{BESSEL_J1}, @code{BESSEL_JN}, @code{BESSEL_Y0}, @code{BESSEL_Y1}, > +@code{BESSEL_YN}, @code{HYPOT}, @code{NORM2}, and @code{ERFC_SCALED}. > + > +@item Using complex arguments with @code{TAN}, @code{SINH}, @code{COSH}, > +@code{TANH}, @code{ASIN}, @code{ACOS}, and @code{ATAN} is now possible; > +@code{ATAN}(@var{Y},@var{X}) is now an alias for @code{ATAN2}(@var{Y},@var{X}). > + > +@item Support of the @code{PARITY} intrinsic functions. > + > +@item The following bit intrinsics: @code{LEADZ} and @code{TRAILZ} for > +counting the number of leading and trailing zero bits, @code{POPCNT} and > +@code{POPPAR} for counting the number of one bits and returning the parity; > +@code{BGE}, @code{BGT}, @code{BLE}, and @code{BLT} for bitwise comparisons; > +@code{DSHIFTL} and @code{DSHIFTR} for combined left and right shifts, > +@code{MASKL} and @code{MASKR} for simple left and right justified masks, > +@code{MERGE_BITS} for a bitwise merge using a mask, @code{SHIFTA}, > +@code{SHIFTL} and @code{SHIFTR} for shift operations, and the > +transformational bit intrinsics @code{IALL}, @code{IANY} and @code{IPARITY}. > + > +@item Support of the @code{EXECUTE_COMMAND_LINE} intrinsic subroutine. > + > +@item Support for the @code{STORAGE_SIZE} intrinsic inquiry function. > + > +@item The @code{INT@{8,16,32@}} and @code{REAL@{32,64,128@}} kind type > +parameters of the intrinsic module @code{ISO_FORTRAN_ENV}. > + > +@item Experimental coarray support (for one image only), use the extra space > +@code{-fcoarray=single} flag to enable it. @option > + > +@item The @code{BLOCK} construct is supported. > + > +@item The @code{STOP} and the new @code{ERROR STOP} statements now > +support all constant expressions. > + > +@item Support for the @code{CONTIGUOUS} attribute. > + > +@item Support for @code{ALLOCATE} with @code{MOLD}. > + > +@item Support for the @code{IMPURE} attribute for procedures, which > +allows for @code{ELEMENTAL} procedures without the restrictions of > +@code{PURE}. > + > +@item Null pointers (including @code{NULL()}) and not-allocated variables > +can be used as actual argument to optional non-pointer, non-allocatable > +dummy arguments, denoting an absent argument. > +@item Non-pointer variables with @code{TARGET} attribute can be used as Missing empty line before this one by intention? > +actual argument to @code{POINTER} dummies with @code{INTENT(IN)}. > + > +@item Pointers including procedure pointers and those in a derived > +type (pointer components) can now be initialized by a target instead > +of only by @code{NULL}. > + > +@item The @code{EXIT} statement (with construct-name) can be now be > +used to leave not only the @code{DO} but also the @code{ASSOCIATE}, > +@code{BLOCK}, @code{IF}, @code{SELECT CASE} and @code{SELECT TYPE} > +constructs. > + > +@item Internal procedures can now be used as actual argument. > + > +@item Minor features: obsolesce diagnostics for @code{ENTRY} with > +@code{-std=f2008}; a line may start with a semicolon; for internal @option > +and module procedures @code{END} can be used instead of > +@code{END SUBROUTINE} and @code{END FUNCTION}; @code{SELECTED_REAL_KIND} > +now also takes a @code{RADIX} argument; intrinsic types are supported > +for @code{TYPE}(@var{intrinsic-type-spec}); multiple type-bound procedures > +can be declared in a single @code{PROCEDURE} statement; implied-shape > +arrays are supported for named constants (@code{PARAMETER}). > +@end itemize > > -The @uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information > -about the current Fortran 2008 implementation status. > > > @c --------------------------------------------------------------------- Cheers, Ralf
On Thu, Sep 23, 2010 at 04:54:01PM +0200, Tobias Burnus wrote: > On 09/23/2010 04:18 PM, Tobias Burnus wrote: > >The Fortran 2003 and 2008 status in the manual badly needs to be > >updated. I did the simple part: Updating the Fortran 2008 section; > >updating Fortran 2003 is more work. I think also other parts of the > >manual need some love. Anyone volunteering to look though the manual > >and doing some janitorial work? > > A slightly updated version - F2008 is unchanged but I also modified > other places: > - Remove examples for implemented F2003 features as the list does not > really contain the real highlights and the F2003/F2008 should provide > the rest > - Remove OpenMPv2.5 referral - a few lines later OpenMP v3.0 is already > referred to > - Update another place for Fortran 2008, which is now an ISO standard > and no longer under development > > The patch has been checked via "make pdf info html" and the result has > been visually inspected. > OK for the trunk? > > TODO: Update "Fortran 2003 status" which I did not not touch but the > list of supported features has not been updated since about 4.3. (I > currently do not plan to work on this.) > > Tobias Once you address Ralf's comments, the patch is ok to commit.
Index: gcc/fortran/gfortran.texi =================================================================== --- gcc/fortran/gfortran.texi (revision 164563) +++ gcc/fortran/gfortran.texi (working copy) @@ -474,9 +474,8 @@ standard-compliant Fortran 95, Fortran 9 including a number of standard and non-standard extensions, and can be used on real-world programs. In particular, the supported extensions include OpenMP, Cray-style pointers, and several Fortran 2003 and Fortran -2008 features such as enumeration, stream I/O, and some of the -enhancements to allocatable array support from TR 15581. However, it is -still under development and has a few remaining rough edges. +2008 features, including TR 15581. However, it is still under +development and has a few remaining rough edges. At present, the GNU Fortran compiler passes the @uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html, @@ -521,22 +520,14 @@ future standards---in particular, Fortra The GNU Fortran compiler implements ISO/IEC 1539:1997 (Fortran 95). As such, it can also compile essentially all standard-compliant Fortran 90 and Fortran 77 programs. It also supports -the ISO/IEC TR-15581 enhancements to allocatable arrays, and -the @uref{http://www.openmp.org/drupal/mp-documents/spec25.pdf, -OpenMP Application Program Interface v2.5} specification. +the ISO/IEC TR-15581 enhancements to allocatable arrays. In the future, the GNU Fortran compiler will also support ISO/IEC -1539-1:2004 (Fortran 2003) and future Fortran standards. Partial support -of that standard is already provided; the current status of Fortran 2003 -support is reported in the @ref{Fortran 2003 status} section of the -documentation. - -The next version of the Fortran standard (Fortran 2008) is currently -being developed and the GNU Fortran compiler supports some of its new -features. This support is based on the latest draft of the standard -(available from @url{http://www.nag.co.uk/sc22wg5/}) and no guarantee of -future compatibility is made, as the final standard might differ from the -draft. For more information, see the @ref{Fortran 2008 status} section. +1539-1:2004 (Fortran 2003), ISO/IEC 1539-1:2010 (Fortran 2008) and +future Fortran standards. Partial support of the Fortran 2003 and +Fortran 2008 standard is already provided; the current status of the +support is reported in the @ref{Fortran 2003 status} and +@ref{Fortran 2008 status} sections of the documentation. Additionally, the GNU Fortran compilers supports the OpenMP specification (version 3.0, @url{http://openmp.org/wp/openmp-specifications/}). @@ -938,21 +929,102 @@ Extension of derived-types (the @code{EX @node Fortran 2008 status @section Fortran 2008 status -The next version of the Fortran standard after Fortran 2003 is currently -being worked on by the Working Group 5 of Sub-Committee 22 of the Joint -Technical Committee 1 of the International Organization for -Standardization (ISO) and the International Electrotechnical Commission -(IEC). This group is known as @uref{http://www.nag.co.uk/sc22wg5/, WG5}. -The next revision of the Fortran standard is informally referred to as -Fortran 2008, reflecting its planned release year. The GNU Fortran -compiler has support for some of the new features in Fortran 2008. This -support is based on the latest draft, available from -@url{http://www.nag.co.uk/sc22wg5/}. However, as the final standard may -differ from the drafts, no guarantee of backward compatibility can be -made and you should only use it for experimental purposes. +The latest version of the Fortran standard is ISO/IEC 1539-1:2010, informally +known as Fortran 2008. The official version is available from International +Organization for Standardization (ISO) or its national member organizations. +The the final draft (FDIS) can be downloaded free of charge from +@url{http://www.nag.co.uk/sc22wg5/links.html}. Fortran is developed by the +Working Group 5 of Sub-Committee 22 of the Joint Technical Committee 1 of the +International Organization for Standardization and the International +Electrotechnical Commission (IEC). This group is known as +@uref{http://www.nag.co.uk/sc22wg5/, WG5}. + +The GNU Fortran supports several of the new features of Fortran 2008; the +@uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information +about the current Fortran 2008 implementation status. In particular, the +following is implemented. + +@itemize +@item The @code{-std=f2008} option and support for the file extensions +@code{.f2008} and @code{.F2008}. + +@item The @code{OPEN} statement now supports the @code{NEWUNIT=} option, +which returns a unique file unit, thus preventing inadvertent use of the +same unit in different parts of the program. + +@item The @code{g0} format descriptor and unlimited format items. + +@item The mathematical intrinsics @code{ASINH}, @code{ACOSH}, @code{ATANH}, +@code{ERF}, @code{ERFC}, @code{GAMMA}, @code{LOG_GAMMA}, @code{BESSEL_J0}, +@code{BESSEL_J1}, @code{BESSEL_JN}, @code{BESSEL_Y0}, @code{BESSEL_Y1}, +@code{BESSEL_YN}, @code{HYPOT}, @code{NORM2}, and @code{ERFC_SCALED}. + +@item Using complex arguments with @code{TAN}, @code{SINH}, @code{COSH}, +@code{TANH}, @code{ASIN}, @code{ACOS}, and @code{ATAN} is now possible; +@code{ATAN}(@var{Y},@var{X}) is now an alias for @code{ATAN2}(@var{Y},@var{X}). + +@item Support of the @code{PARITY} intrinsic functions. + +@item The following bit intrinsics: @code{LEADZ} and @code{TRAILZ} for +counting the number of leading and trailing zero bits, @code{POPCNT} and +@code{POPPAR} for counting the number of one bits and returning the parity; +@code{BGE}, @code{BGT}, @code{BLE}, and @code{BLT} for bitwise comparisons; +@code{DSHIFTL} and @code{DSHIFTR} for combined left and right shifts, +@code{MASKL} and @code{MASKR} for simple left and right justified masks, +@code{MERGE_BITS} for a bitwise merge using a mask, @code{SHIFTA}, +@code{SHIFTL} and @code{SHIFTR} for shift operations, and the +transformational bit intrinsics @code{IALL}, @code{IANY} and @code{IPARITY}. + +@item Support of the @code{EXECUTE_COMMAND_LINE} intrinsic subroutine. + +@item Support for the @code{STORAGE_SIZE} intrinsic inquiry function. + +@item The @code{INT@{8,16,32@}} and @code{REAL@{32,64,128@}} kind type +parameters of the intrinsic module @code{ISO_FORTRAN_ENV}. + +@item Experimental coarray support (for one image only), use the +@code{-fcoarray=single} flag to enable it. + +@item The @code{BLOCK} construct is supported. + +@item The @code{STOP} and the new @code{ERROR STOP} statements now +support all constant expressions. + +@item Support for the @code{CONTIGUOUS} attribute. + +@item Support for @code{ALLOCATE} with @code{MOLD}. + +@item Support for the @code{IMPURE} attribute for procedures, which +allows for @code{ELEMENTAL} procedures without the restrictions of +@code{PURE}. + +@item Null pointers (including @code{NULL()}) and not-allocated variables +can be used as actual argument to optional non-pointer, non-allocatable +dummy arguments, denoting an absent argument. +@item Non-pointer variables with @code{TARGET} attribute can be used as +actual argument to @code{POINTER} dummies with @code{INTENT(IN)}. + +@item Pointers including procedure pointers and those in a derived +type (pointer components) can now be initialized by a target instead +of only by @code{NULL}. + +@item The @code{EXIT} statement (with construct-name) can be now be +used to leave not only the @code{DO} but also the @code{ASSOCIATE}, +@code{BLOCK}, @code{IF}, @code{SELECT CASE} and @code{SELECT TYPE} +constructs. + +@item Internal procedures can now be used as actual argument. + +@item Minor features: obsolesce diagnostics for @code{ENTRY} with +@code{-std=f2008}; a line may start with a semicolon; for internal +and module procedures @code{END} can be used instead of +@code{END SUBROUTINE} and @code{END FUNCTION}; @code{SELECTED_REAL_KIND} +now also takes a @code{RADIX} argument; intrinsic types are supported +for @code{TYPE}(@var{intrinsic-type-spec}); multiple type-bound procedures +can be declared in a single @code{PROCEDURE} statement; implied-shape +arrays are supported for named constants (@code{PARAMETER}). +@end itemize -The @uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information -about the current Fortran 2008 implementation status. @c ---------------------------------------------------------------------