This is the mail archive of the 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] gfortran.texi: Update "Project Status" section.

Brooks Moses wrote:
This is the same text that I posted in a "draft" version last week, taking into account Jerry's comments with regards to the LAPACK testsuite -- it now says "produces acceptable results on the LAPACK Test Suite". (I think it would be useful to explain this a bit more on the Wiki page about the results, and in particular explain why it is that the results report "1 failure" and it's still "acceptable". I don't understand the details well enough to write that, though.)

In any case, this is that revised text, plus thinning out the "Proposed Extensions" section. Oh, and a missing comment to mark the "Results" section header.

Ok for trunk?

2006-10-04  Brooks Moses  <>

    * gfortran.texi (Current Status): update and rewrite to
    reflect actual status more accurately.

- Brooks


Index: gfortran.texi
--- gfortran.texi (revision 117442)
+++ gfortran.texi (working copy)
@@ -374,59 +374,50 @@
(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
-* Compiler Status::
-* Library Status::
+* Compiler and Library Status::
* Proposed Extensions::
@end menu
-@node Compiler Status
-@section Compiler Status
+@node Compiler and Library Status
+@section Compiler and Library 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.
+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.
-@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
+At present, the GNU Fortran compiler passes the
+@uref{, +NIST Fortran 77 Test Suite}, and produces acceptable results on the
+@uref{, LAPACK Test Suite}.
+It also provides respectable performance on +the @uref{, Polyhedron Fortran
+compiler benchmarks} and the
+Livermore Fortran Kernels test}. It has been used to compile a number of
+large real-world programs, including
+@uref{, the HIRLAM
+weather-forecasting code} and
+@uref{, the Tonto quantum +chemistry package}.
-@node Library Status
-@section Library Status
+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
-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.
+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.
-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.)
-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,11 +429,9 @@
@subsection Compiler extensions: @itemize @bullet
-Flag for defining the kind number for default logicals.
+User-specified alignment rules for structures.
-User-specified alignment rules for structures.
Flag to generate @code{Makefile} info.
@@ -453,10 +442,6 @@
module storage either on stack or heap.
-Flag to cause the compiler to distinguish between upper and lower case
-names. The Fortran 95 standard does not distinguish them.
Compile flag to generate code for array conformance checking (suggest -CC).
@@ -473,30 +458,11 @@
Flag to force local variables onto stack.
-Flag to compile lines beginning with ``D''.
-Flag to ignore lines beginning with ``D''.
Flag for maximum errors before ending compile.
-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.
-Allow setting the default unit number.
Option to initialize otherwise uninitialized integer and floating
point variables.
-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 @@
@end itemize
+@c ---------------------------------------------------------------------
+@c Runtime
+@c ---------------------------------------------------------------------
@node Runtime
@chapter Runtime: Influencing runtime behavior with environment variables
@cindex Runtime
This is OK.

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