blob: 7aae0c1947409eaabf6f81689c800f98a82d0f7a [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1999-2014 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: Proposed Extensions</title>
<meta name="description" content="The GNU Fortran Compiler: Proposed Extensions">
<meta name="keywords" content="The GNU Fortran Compiler: Proposed Extensions">
<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="Contributing.html#Contributing" rel="up" title="Contributing">
<link href="Copying.html#Copying" rel="next" title="Copying">
<link href="Projects.html#Projects" rel="prev" title="Projects">
<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="Proposed-Extensions"></a>
<div class="header">
<p>
Previous: <a href="Projects.html#Projects" accesskey="p" rel="prev">Projects</a>, Up: <a href="Contributing.html#Contributing" accesskey="u" rel="up">Contributing</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="Proposed-Extensions-1"></a>
<h3 class="section">Proposed Extensions</h3>
<p>Here&rsquo;s a list of proposed extensions for the GNU Fortran compiler, in no particular
order. Most of these are necessary to be fully compatible with
existing Fortran compilers, but they are not part of the official
J3 Fortran 95 standard.
</p>
<a name="Compiler-extensions_003a"></a>
<h4 class="subsection">Compiler extensions:</h4>
<ul>
<li> User-specified alignment rules for structures.
</li><li> Automatically extend single precision constants to double.
</li><li> Compile code that conserves memory by dynamically allocating common and
module storage either on stack or heap.
</li><li> Compile flag to generate code for array conformance checking (suggest -CC).
</li><li> User control of symbol names (underscores, etc).
</li><li> Compile setting for maximum size of stack frame size before spilling
parts to static or heap.
</li><li> Flag to force local variables into static space.
</li><li> Flag to force local variables onto stack.
</li></ul>
<a name="Environment-Options"></a>
<h4 class="subsection">Environment Options</h4>
<ul>
<li> Pluggable library modules for random numbers, linear algebra.
LA should use BLAS calling conventions.
</li><li> Environment variables controlling actions on arithmetic exceptions like
overflow, underflow, precision loss&mdash;Generate NaN, abort, default.
action.
</li><li> Set precision for fp units that support it (i387).
</li><li> Variable for setting fp rounding mode.
</li><li> Variable to fill uninitialized variables with a user-defined bit
pattern.
</li><li> Environment variable controlling filename that is opened for that unit
number.
</li><li> Environment variable to clear/trash memory being freed.
</li><li> Environment variable to control tracing of allocations and frees.
</li><li> Environment variable to display allocated memory at normal program end.
</li><li> Environment variable for filename for * IO-unit.
</li><li> Environment variable for temporary file directory.
</li><li> Environment variable forcing standard output to be line buffered (Unix).
</li></ul>
</body>
</html>