expand on advantages vis-a-vis f2c

From-SVN: r26802
This commit is contained in:
Craig Burley 1999-05-06 05:26:27 +00:00 committed by Craig Burley
parent 969df93f1e
commit 37cfb17c0a
2 changed files with 102 additions and 9 deletions

View File

@ -1,3 +1,7 @@
Thu May 6 08:19:31 1999 Craig Burley <craig@jcb-sc.com>
* g77.texi (Advantages Over f2c): Expand on this topic.
Mon May 3 19:41:48 1999 Craig Burley <craig@jcb-sc.com>
* com.c (ffecom_expr_intrinsic_): Fix test of CTIME_subr.

View File

@ -2,7 +2,7 @@
@c %**start of header
@setfilename g77.info
@set last-update 1999-04-23
@set last-update 1999-05-06
@set copyrights-g77 1995-1999
@include root.texi
@ -9468,7 +9468,8 @@ is not intended to be comprehensive.
@menu
* Language Extensions:: Features used by Fortran code.
* Compiler Options:: Features helpful during development.
* Diagnostic Abilities:: Abilities to spot problems early.
* Compiler Options:: Features helpful to accommodate legacy code, etc.
* Compiler Speed:: Speed of the compilation process.
* Program Speed:: Speed of the generated, optimized code.
* Ease of Debugging:: Debugging ease-of-use at the source level.
@ -9478,20 +9479,108 @@ is not intended to be comprehensive.
@node Language Extensions
@subsection Language Extensions
@code{g77} offers several extensions to the Fortran language that @code{f2c}
doesn't.
@code{g77} offers several extensions to FORTRAN 77 language that @code{f2c}
doesn't:
@itemize @bullet
@item
Automatic arrays
@item
@code{CYCLE} and @code{EXIT}
@item
Construct names
@item
@code{SELECT CASE}
@item
@code{KIND=} and @code{LEN=} notation
@item
Semicolon as statement separator
@item
Constant expressions in @code{FORMAT} statements
(such as @samp{FORMAT(I<J>)},
where @samp{J} is a @code{PARAMETER} named constant)
@item
@code{MvBits} intrinsic
@item
@code{libU77} (Unix-compatibility) library,
with routines known to compiler as intrinsics
(so they work even when compiler options are used
to change the interfaces used by Fortran routines)
@end itemize
@code{g77} also implements iterative @code{DO} loops
so that they work even in the presence of certain ``extreme'' inputs,
unlike @code{f2c}.
@xref{Loops}.
However, @code{f2c} offers a few that @code{g77} doesn't, such as:
@itemize @bullet
@item
Intrinsics in @code{PARAMETER} statements
@item
Array bounds expressions (such as @samp{REAL M(N(2))})
@item
@code{AUTOMATIC} statement
@end itemize
However, @code{f2c} offers a few that @code{g77} doesn't, like
fairly complete support for @code{INTEGER*2}.
It is expected that @code{g77} will offer some or all of these missing
features at some time in the future.
(Version 0.5.18 of @code{g77} offers some rudimentary support for some
of these features.)
@node Diagnostic Abilities
@subsection Diagnostic Abilities
@code{g77} offers better diagnosis of problems in @code{FORMAT} statements.
@code{f2c} doesn't, for example, emit any diagnostic for
@samp{FORMAT(XZFAJG10324)},
leaving that to be diagnosed, at run time, by
the @code{libf2c} run-time library.
@node Compiler Options
@subsection Compiler Options
@code{g77} offers a whole bunch of compiler options that @code{f2c} doesn't.
@code{g77} offers compiler options that @code{f2c} doesn't,
most of which are designed to more easily accommodate
legacy code:
@itemize @bullet
@item
Two that control the automatic appending of extra
underscores to external names
@item
One that allows dollar signs (@samp{$}) in symbol names
@item
A variety that control acceptance of various
``ugly'' constructs
@item
Several that specify acceptable use of upper and lower case
in the source code
@item
Many that enable, disable, delete, or hide
groups of intrinsics
@item
One to specify the length of fixed-form source lines
(normally 72)
@item
One to specify the the source code is written in
Fortran-90-style free-form
@end itemize
However, @code{f2c} offers a few that @code{g77} doesn't,
like an option to have @code{REAL} default to @code{REAL*8}.