This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch,Fortran] Update gfortran.texi's Fortran 2008 status


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]