toolchain/gcc-linaro-6.3.1-2017.02-x8.../share/doc/gfortran/Project-Status.html

143 lines
6.8 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1999-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
"GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The GNU Fortran Compiler: Project Status</title>
<meta name="description" content="The GNU Fortran Compiler: Project Status">
<meta name="keywords" content="The GNU Fortran Compiler: Project Status">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Introduction.html#Introduction" rel="up" title="Introduction">
<link href="Standards.html#Standards" rel="next" title="Standards">
<link href="GNU-Fortran-and-G77.html#GNU-Fortran-and-G77" rel="prev" title="GNU Fortran and G77">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Project-Status"></a>
<div class="header">
<p>
Next: <a href="Standards.html#Standards" accesskey="n" rel="next">Standards</a>, Previous: <a href="GNU-Fortran-and-G77.html#GNU-Fortran-and-G77" accesskey="p" rel="prev">GNU Fortran and G77</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Project-Status-1"></a>
<h3 class="section">1.5 Project Status</h3>
<blockquote>
<p>As soon as <code>gfortran</code> can parse all of the statements correctly,
it will be in the &ldquo;larva&rdquo; state.
When we generate code, the &ldquo;puppa&rdquo; state.
When <code>gfortran</code> is done,
we&rsquo;ll see if it will be a beautiful butterfly,
or just a big bug....
</p>
<p>&ndash;Andy Vaught, April 2000
</p></blockquote>
<p>The start of the GNU Fortran 95 project was announced on
the GCC homepage in March 18, 2000
(even though Andy had already been working on it for a while,
of course).
</p>
<p>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, some old vendor extensions, and several
Fortran 2003 and Fortran 2008 features, including TR 15581. However, it is
still under development and has a few remaining rough edges.
There also is initial support for OpenACC.
Note that this is an experimental feature, incomplete, and subject to
change in future versions of GCC. See
<a href="https://gcc.gnu.org/wiki/OpenACC">https://gcc.gnu.org/wiki/OpenACC</a> for more information.
</p>
<p>At present, the GNU Fortran compiler passes the
<a href="http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html">NIST Fortran 77 Test Suite</a>, and produces acceptable results on the
<a href="http://www.netlib.org/lapack/faq.html#1.21">LAPACK Test Suite</a>.
It also provides respectable performance on
the <a href="http://www.polyhedron.com/fortran-compiler-comparisons/polyhedron-benchmark-suite">Polyhedron Fortran
compiler benchmarks</a> and the
<a href="http://www.netlib.org/benchmark/livermore">Livermore Fortran Kernels test</a>. It has been used to compile a number of
large real-world programs, including
<a href="http://hirlam.org/">the HARMONIE and HIRLAM weather forecasting code</a> and
<a href="http://physical-chemistry.scb.uwa.edu.au/tonto/wiki/index.php/Main_Page">the Tonto quantum chemistry package</a>; see
<a href="https://gcc.gnu.org/wiki/GfortranApps">https://gcc.gnu.org/wiki/GfortranApps</a> for an extended list.
</p>
<p>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.
</p>
<p>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&mdash;in particular, Fortran 2003 and Fortran 2008.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Standards.html#Standards" accesskey="n" rel="next">Standards</a>, Previous: <a href="GNU-Fortran-and-G77.html#GNU-Fortran-and-G77" accesskey="p" rel="prev">GNU Fortran and G77</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>