diff options
author | Brooks Moses <bmoses@stanford.edu> | 2006-10-05 04:58:18 +0000 |
---|---|---|
committer | Brooks Moses <brooks@gcc.gnu.org> | 2006-10-04 21:58:18 -0700 |
commit | cf822c0484ada5e9d939eec9c490303b35a5734a (patch) | |
tree | c1e6fd82fb0f592b84622a1910b2b1722bc4f1fb | |
parent | dfb2717d35b6a5fb99626c148fed54f925ad399c (diff) | |
download | gcc-cf822c0484ada5e9d939eec9c490303b35a5734a.zip gcc-cf822c0484ada5e9d939eec9c490303b35a5734a.tar.gz gcc-cf822c0484ada5e9d939eec9c490303b35a5734a.tar.bz2 |
gfortran.texi: (Current Status): update and rewrite to reflect actual status more accurately.
2006-10-04 Brooks Moses <bmoses@stanford.edu>
* gfortran.texi: (Current Status): update and rewrite to reflect
actual status more accurately.
From-SVN: r117449
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/gfortran.texi | 117 |
2 files changed, 49 insertions, 73 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0125132..73715f9 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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. diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index c4e76ec..f48f28a 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -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 |