OSDN Git Service

2006-10-04 Brooks Moses <bmoses@stanford.edu>
authorbrooks <brooks@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Oct 2006 04:58:18 +0000 (04:58 +0000)
committerbrooks <brooks@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Oct 2006 04:58:18 +0000 (04:58 +0000)
* gfortran.texi: (Current Status): update and rewrite to reflect
actual status more accurately.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117449 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/gfortran.texi

index 0125132..73715f9 100644 (file)
@@ -1,5 +1,10 @@
 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
 
+       * gfortran.texi: (Current Status): update and rewrite to reflect
+       actual status more accurately.
+
+2006-10-04  Brooks Moses  <bmoses@stanford.edu>
+
        * gfortran.texi: Consistently refer to the compiler as "GNU
        Fortran".
        * intrinsic.texi: Ditto.
index c4e76ec..f48f28a 100644 (file)
@@ -374,58 +374,49 @@ the GCC homepage in March 18, 2000
 (even though Andy had already been working on it for a while,
 of course).
 
-The GNU Fortran compiler is currently reaching the stage where is is able to
-compile real
-world programs.  However it is still under development and has many rough
-edges.
-
 @menu
-* Compiler Status::
-* Library Status::
+* Compiler and Library Status::
 * Proposed Extensions::
 @end menu
 
-@node Compiler Status
-@section Compiler Status
-
-@table @emph
-@item Front end
-This is the part of the GNU Fortran compiler which parses a source file, verifies that it
-is valid Fortran, performs compile time replacement of constants
-(PARAMETER variables) and reads and generate module files. This is
-almost complete. Every Fortran 95 source should be accepted, and most
-none-Fortran 95 source should be rejected. If you find a source file where
-this is not true, please tell us. You can use the -fsyntax-only switch to
-make @command{gfortran} quit after running the front end, effectively reducing it to
-a syntax checker.
-
-@item Middle end interface
-These are the parts of GNU Fortran that take the parse tree generated by the
-front end and translate it to the GENERIC form required by the GCC back
-end. Work is ongoing in these parts of GNU Fortran, but a large part has
-already been completed.
-@end table
-
-@node Library Status
-@section Library Status
-
-Some intrinsic functions map directly to library functions, and in most
-cases the name of the library function used depends on the type of the
-arguments.  For some intrinsics we generate inline code, and for others,
-such as sin, cos and sqrt, we rely on the backend to use special
-instructions in the floating point unit of the CPU if available, or to
-fall back to a call to libm if these are not available.
-
-Implementation of some non-elemental intrinsic functions (eg. DOT_PRODUCT,
-AVERAGE) is not yet optimal. This is hard because we have to make decisions
-whether to use inline code (good for small arrays as no function call
-overhead occurs) or generate function calls (good for large arrays as it
-allows use of hand-optimized assembly routines, SIMD instructions, etc.)
+@node Compiler and Library Status
+@section Compiler and Library Status
+
+The GNU Fortran compiler is able to compile nearly all
+standard-compliant Fortran 95, Fortran 90, and Fortran 77 programs,
+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 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.
+
+At present, the GNU Fortran compiler passes the
+@uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html, 
+NIST Fortran 77 Test Suite}, and produces acceptable results on the
+@uref{http://www.netlib.org/lapack/faq.html#1.21, LAPACK Test Suite}.
+It also provides respectable performance on 
+the @uref{http://www.polyhedron.com/pb05.html, Polyhedron Fortran
+compiler benchmarks} and the
+@uref{http://www.llnl.gov/asci_benchmarks/asci/limited/lfk/README.html,
+Livermore Fortran Kernels test}.  It has been used to compile a number of
+large real-world programs, including
+@uref{http://mysite.verizon.net/serveall/moene.pdf, the HIRLAM
+weather-forecasting code} and
+@uref{http://www.theochem.uwa.edu.au/tonto/, the Tonto quantum 
+chemistry package}.
+
+Among other things, the GNU Fortran compiler is intended as a replacement
+for G77.  At this point, nearly all programs that could be compiled with
+G77 can be compiled with GNU Fortran, although there are a few minor known
+regressions.
+
+The primary work remaining to be done on GNU Fortran falls into three
+categories: bug fixing (primarily regarding the treatment of invalid code
+and providing useful error messages), improving the compiler optimizations
+and the performance of compiled code, and extending the compiler to support
+future standards -- in particular, Fortran 2003.
 
-The IO library is in a mostly usable state.  Unformatted I/O for
-@code{REAL(KIND=10)} variables is currently not recommended.
-
-Array intrinsics mostly work.
 
 @node Proposed Extensions
 @section Proposed Extensions
@@ -438,10 +429,8 @@ J3 Fortran 95 standard.
 @subsection Compiler extensions: 
 @itemize @bullet
 @item
-Flag for defining the kind number for default logicals.
-
-@item
 User-specified alignment rules for structures.
+
 @item
 Flag to generate @code{Makefile} info.
 
@@ -453,10 +442,6 @@ Compile code that conserves memory by dynamically allocating common and
 module storage either on stack or heap.
 
 @item
-Flag to cause the compiler to distinguish between upper and lower case
-names.  The Fortran 95 standard does not distinguish them.
-
-@item
 Compile flag to generate code for array conformance checking (suggest -CC).
 
 @item
@@ -473,30 +458,11 @@ Flag to force local variables into static space.
 Flag to force local variables onto stack.
 
 @item
-Flag to compile lines beginning with ``D''.
-
-@item
-Flag to ignore lines beginning with ``D''.
-
-@item
 Flag for maximum errors before ending compile.
 
 @item
-Generate code to check for null pointer dereferences -- prints locus of
-dereference instead of segfaulting.  There was some discussion about this
-option in the g95 development mailing list.
-
-@item
-Allow setting the default unit number.
-
-@item
 Option to initialize otherwise uninitialized integer and floating
 point variables.
-
-@item
-Support for Fortran 200x. This includes several new features including
-floating point exceptions, extended use of allocatable arrays, C
-interoperability, Parameterizer data types and function pointers.
 @end itemize
 
 
@@ -545,6 +511,11 @@ Environment variable forcing standard output to be line buffered (unix).
 
 @end itemize
 
+
+@c ---------------------------------------------------------------------
+@c Runtime
+@c ---------------------------------------------------------------------
+
 @node Runtime
 @chapter Runtime:  Influencing runtime behavior with environment variables
 @cindex Runtime