Commit 51efa892 by Craig Burley Committed by Craig Burley

Improve g77 doc infrastructure

From-SVN: r25743
parent 4b632bf1
Sat Mar 13 14:26:55 1999 Craig Burley <craig@jcb-sc.com>
* RELEASE-PREP: New file, lists things to do for a release.
* Make-lang.in, bugs.texi, bugs0.texi, g77.texi, g77install.texi,
install0.texi, news.texi, news0.texi: Accommodate new doc
architecture.
Consolidate news items. Don't describe old news items in
various generated docs.
Don't describe FSF-g77 installation stuff in various EGCS-g77
generated docs.
Move description of AUTOMATIC to more suitable location.
* root.texi: New file for new doc architecture.
Thu Mar 11 17:32:55 1999 Craig Burley <craig@jcb-sc.com> Thu Mar 11 17:32:55 1999 Craig Burley <craig@jcb-sc.com>
* g77.texi: Add AUTOMATIC to list of unsupported extensions. * g77.texi: Add AUTOMATIC to list of unsupported extensions.
......
...@@ -244,7 +244,7 @@ f77.dvi: f/g77.dvi ...@@ -244,7 +244,7 @@ f77.dvi: f/g77.dvi
# g77 documentation. # g77 documentation.
f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \ $(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \
$(srcdir)/f/intdoc.texi $(srcdir)/f/intdoc.texi $(srcdir)/f/root.texi
case "$(LANGUAGES)" in \ case "$(LANGUAGES)" in \
*[fF]77*) touch lang-f77;; \ *[fF]77*) touch lang-f77;; \
*) rm -f lang-f77;; \ *) rm -f lang-f77;; \
...@@ -256,7 +256,7 @@ f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ ...@@ -256,7 +256,7 @@ f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \ $(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \
$(srcdir)/f/intdoc.texi $(srcdir)/f/intdoc.texi $(srcdir)/f/root.texi
case "$(LANGUAGES)" in \ case "$(LANGUAGES)" in \
*[fF]77*) touch lang-f77;; \ *[fF]77*) touch lang-f77;; \
*) rm -f lang-f77;; \ *) rm -f lang-f77;; \
...@@ -306,15 +306,15 @@ $(srcdir)/f/intdoc.texi: f/intdoc.c f/intdoc.in f/ansify.c f/intrin.def f/intrin ...@@ -306,15 +306,15 @@ $(srcdir)/f/intdoc.texi: f/intdoc.c f/intdoc.in f/ansify.c f/intrin.def f/intrin
rm f/intdoc f/ansify f/intdoc.h0; \ rm f/intdoc f/ansify f/intdoc.h0; \
else true; fi else true; fi
$(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi $(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \ cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \
--no-validate -o BUGS bugs0.texi --no-validate -o BUGS bugs0.texi
$(srcdir)/f/INSTALL: f/install0.texi f/g77install.texi $(srcdir)/f/INSTALL: f/install0.texi f/g77install.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D INSTALLONLY --no-header --no-split \ cd $(srcdir)/f; $(MAKEINFO) -D INSTALLONLY --no-header --no-split \
--no-validate -o INSTALL install0.texi --no-validate -o INSTALL install0.texi
$(srcdir)/f/NEWS: f/news0.texi f/news.texi $(srcdir)/f/NEWS: f/news0.texi f/news.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \ cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \
--no-validate -o NEWS news0.texi --no-validate -o NEWS news0.texi
......
1999-03-13 RELEASE-PREP
Things to do to prepare a g77 release (FSF, egcs, whatever).
- Update root.texi: clear DEVELOPMENT flag, set version info.
@c Copyright (C) 1995-1998 Free Software Foundation, Inc. @c Copyright (C) 1995-1999 Free Software Foundation, Inc.
@c This is part of the G77 manual. @c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi. @c For copying conditions, see the file g77.texi.
@c When changing the above copyright notice, be sure to
@c change the one in `bugs0.texi' accordingly, to effect
@c the change in the derived file `BUGS'.
@c The text of this file appears in the file BUGS @c The text of this file appears in the file BUGS
@c in the G77 distribution, as well as in the G77 manual. @c in the G77 distribution, as well as in the G77 manual.
@c 1999-03-03 @c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995-1999
@set last-update-bugs 1999-03-13
@include root.texi
@ifset DOC-BUGS
@c The immediately following lines apply to the BUGS file
@c which is derived from this file.
@emph{Note:} This file is automatically generated from the files
@file{bugs0.texi} and @file{bugs.texi}.
@file{BUGS} is @emph{not} a source file,
although it is normally included within source distributions.
This file lists known bugs in the @value{which-g77} version
of the GNU Fortran compiler.
Copyright (C) @value{copyrights-bugs} Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Known Bugs In GNU Fortran
@end ifset
@ifclear BUGSONLY @ifset DOC-G77
@node Actual Bugs @node Known Bugs
@section Actual Bugs We Haven't Fixed Yet @section Known Bugs In GNU Fortran
@end ifclear @end ifset
This section identifies bugs that @code{g77} @emph{users} This section identifies bugs that @code{g77} @emph{users}
might run into in might run into in the @value{which-g77} version
@ifhtml
the current development
@end ifhtml
version
@ifnothtml
@value{version-g77}
@end ifnothtml
of @code{g77}. of @code{g77}.
This includes bugs that are actually in the @code{gcc} This includes bugs that are actually in the @code{gcc}
back end (GBE) or in @code{libf2c}, because those back end (GBE) or in @code{libf2c}, because those
...@@ -32,22 +45,56 @@ sets of code are at least somewhat under the control ...@@ -32,22 +45,56 @@ sets of code are at least somewhat under the control
of (and necessarily intertwined with) @code{g77}, of (and necessarily intertwined with) @code{g77},
so it isn't worth separating them out. so it isn't worth separating them out.
@ifset DOC-G77
For information on bugs in @emph{other} versions of @code{g77}, For information on bugs in @emph{other} versions of @code{g77},
@ifhtml
see the page on Fortran news.
@end ifhtml
@ifnothtml
@ref{News,,News About GNU Fortran}. @ref{News,,News About GNU Fortran}.
@end ifnothtml There, lists of bugs fixed in various versions of @code{g77},
can help determine what bugs existed in prior versions.
@end ifset
@ifset DOC-BUGS
For information on bugs in @emph{other} versions of @code{g77},
see @file{@value{path-g77}/NEWS}.
There, lists of bugs fixed in various versions of @code{g77},
can help determine what bugs existed in prior versions.
@end ifset
@ifset DEVELOPMENT
@emph{Warning:} The information below is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this information is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
@end ifset
An online, ``live'' version of this document
(derived directly from the mainline, development version
of @code{g77} within @code{egcs})
is available via
@uref{http://egcs.cygnus.com/onlinedocs/g77_bugs.html}.
Follow the ``Known Bugs'' link.
@ifset DOC-G77
For information on bugs that might afflict people who For information on bugs that might afflict people who
configure, port, build, and install @code{g77}, configure, port, build, and install @code{g77},
@ifhtml
see the chapter on installing in the @code{g77} documentation.
@end ifhtml
@ifnothtml
@ref{Problems Installing}. @ref{Problems Installing}.
@end ifnothtml @end ifset
@ifset DOC-BUGS
For information on bugs that might afflict people who
configure, port, build, and install @code{g77},
see "Problems Installing" in @file{@value{path-g77}/INSTALL}.
@end ifset
The following information was last updated on @value{last-update-bugs}:
@itemize @bullet @itemize @bullet
@item @item
...@@ -129,14 +176,11 @@ improvements to the compiler.) ...@@ -129,14 +176,11 @@ improvements to the compiler.)
Note that @code{g77} does display a warning message to Note that @code{g77} does display a warning message to
notify the user before the compiler appears to hang. notify the user before the compiler appears to hang.
@ifhtml @ifset DOC-G77
See the @code{g77} installation documentation
@end ifhtml
@ifnothtml
@xref{Large Initialization,,Initialization of Large Aggregate Areas}, @xref{Large Initialization,,Initialization of Large Aggregate Areas},
@end ifnothtml
for information on how to change the point at which for information on how to change the point at which
@code{g77} decides to issue this warning. @code{g77} decides to issue this warning.
@end ifset
@cindex debugging @cindex debugging
@cindex common blocks @cindex common blocks
...@@ -154,13 +198,10 @@ As of Version 0.5.19, a temporary kludge solution is provided whereby ...@@ -154,13 +198,10 @@ As of Version 0.5.19, a temporary kludge solution is provided whereby
some rudimentary information on a member is written as a string that some rudimentary information on a member is written as a string that
is the member's value as a character string. is the member's value as a character string.
@ifhtml @ifset DOC-G77
See the @code{g77} documentation
@end ifhtml
@ifnothtml
@xref{Code Gen Options,,Options for Code Generation Conventions}, @xref{Code Gen Options,,Options for Code Generation Conventions},
@end ifnothtml
for information on the @samp{-fdebug-kludge} option. for information on the @samp{-fdebug-kludge} option.
@end ifset
@cindex code, displaying main source @cindex code, displaying main source
@cindex displaying main source code @cindex displaying main source code
......
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@c %**start of header @c %**start of header
@setfilename BUGS @setfilename BUGS
@set BUGSONLY
@c %**end of header @c %**end of header
@c The immediately following lines apply to the BUGS file @c This tells bugs.texi that it's generating just the BUGS file.
@c which is generated using this file. @set DOC-BUGS
NOTE: This file is automatically generated from the files
`bugs0.texi' and `bugs.texi'. `BUGS' is *not* a source file,
although it is normally included within source distributions.
This file lists known bugs in the GNU Fortran compiler.
Copyright (C) 1995-1998 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Bugs in GNU Fortran
@include bugs.texi @include bugs.texi
@bye @bye
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@c fix @set inside @example:
@tex
\gdef\set{\begingroup\catcode` =10 \parsearg\setxxx}
\gdef\setyyy#1 #2\endsetyyy{%
\def\temp{#2}%
\ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
\else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
\fi
\endgroup
}
@end tex
@c %**start of header @c %**start of header
@setfilename g77.info @setfilename g77.info
@set last-up-date 1999-03-11 @set last-update 1999-03-13
@set version-g77 0.5.24 @set copyrights-g77 1995-1999
@set email-general egcs@@egcs.cygnus.com
@set email-bugs egcs-bugs@@egcs.cygnus.com @include root.texi
@set email-burley craig@@jcb-sc.com
@set path-g77 egcs/gcc/f @c This tells @include'd files that they're part of the overall G77 doc
@set path-libf2c egcs/libf2c @c set. (They might be part of a higher-level doc set too.)
@set DOC-G77
@c @setfilename useg77.info @c @setfilename useg77.info
@c @setfilename portg77.info @c @setfilename portg77.info
...@@ -35,9 +24,13 @@ ...@@ -35,9 +24,13 @@
@c and make sure the following does NOT begin with '@c': @c and make sure the following does NOT begin with '@c':
@c @clear USING @c @clear USING
@c (For FSF printing, turn on smallbook; that is all that is needed.) @c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition. (from gcc.texi)
@c @smallbook
@c smallbook @c i also commented out the finalout command, so if there *are* any
@c overfulls, you'll (hopefully) see the rectangle in the right hand
@c margin. -- burley 1999-03-13 (from mew's comment in gcc.texi).
@c @finalout
@ifset INTERNALS @ifset INTERNALS
@ifset USING @ifset USING
...@@ -61,16 +54,48 @@ ...@@ -61,16 +54,48 @@
@syncodeindex fn cp @syncodeindex fn cp
@syncodeindex vr cp @syncodeindex vr cp
@c %**end of header @c %**end of header
@setchapternewpage odd
@c Cause even numbered pages to be printed on the left hand side of
@c the page and odd numbered pages to be printed on the right hand
@c side of the page. Using this, you can print on both sides of a
@c sheet of paper and have the text on the same part of the sheet.
@c The text on right hand pages is pushed towards the right hand
@c margin and the text on left hand pages is pushed toward the left
@c hand margin.
@c (To provide the reverse effect, set bindingoffset to -0.75in.)
@c @tex
@c \global\bindingoffset=0.75in
@c \global\normaloffset =0.75in
@c @end tex
@ifinfo @ifinfo
This file explains how to use the GNU Fortran system. @dircategory Programming
@direntry
* g77: (g77). The GNU Fortran compiler.
@end direntry
@ifset INTERNALS
@ifset USING
This file documents the use and the internals of the GNU Fortran (@code{g77})
compiler.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifset
@end ifset
@ifclear USING
This file documents the internals of the GNU Fortran (@code{g77}) compiler.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear
@ifclear INTERNALS
This file documents the use of the GNU Fortran (@code{g77}) compiler.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear
Published by the Free Software Foundation Published by the Free Software Foundation
59 Temple Place - Suite 330 59 Temple Place - Suite 330
Boston, MA 02111-1307 USA Boston, MA 02111-1307 USA
Copyright (C) 1995-1997 Free Software Foundation, Inc. Copyright (C) @value{copyrights-g77} Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice this manual provided the copyright notice and this permission notice
...@@ -104,23 +129,32 @@ Contributed by James Craig Burley (@email{@value{email-burley}}). ...@@ -104,23 +129,32 @@ Contributed by James Craig Burley (@email{@value{email-burley}}).
Inspired by a first pass at translating @file{g77-0.5.16/f/DOC} that Inspired by a first pass at translating @file{g77-0.5.16/f/DOC} that
was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}). was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
@finalout @setchapternewpage odd
@c @finalout
@titlepage @titlepage
@comment The title is printed in a large font. @ifset INTERNALS
@center @titlefont{Using GNU Fortran} @ifset USING
@center @titlefont{Using and Porting GNU Fortran}
@end ifset
@end ifset
@ifclear INTERNALS
@title Using GNU Fortran
@end ifclear
@ifclear USING
@title Porting GNU Fortran
@end ifclear
@sp 2 @sp 2
@center James Craig Burley @center James Craig Burley
@sp 3 @sp 3
@center Last updated @value{last-up-date} @center Last updated @value{last-update}
@sp 1 @sp 1
@c The version number appears some more times in this file.
@center for version @value{version-g77} @center for version @value{version-g77}
@page @page
@vskip 0pt plus 1filll @vskip 0pt plus 1filll
Copyright @copyright{} 1995-1999 Free Software Foundation, Inc. Copyright @copyright{} @value{copyrights-g77} Free Software Foundation, Inc.
@sp 2 @sp 2
For GNU Fortran Version @value{version-g77}* For the @value{which-g77} Version*
@sp 1 @sp 1
Published by the Free Software Foundation @* Published by the Free Software Foundation @*
59 Temple Place - Suite 330@* 59 Temple Place - Suite 330@*
...@@ -153,34 +187,50 @@ original English. ...@@ -153,34 +187,50 @@ original English.
@ifinfo @ifinfo
@dircategory Programming
@direntry
* g77: (g77). The GNU Fortran compiler.
@end direntry
@node Top, Copying,, (DIR) @node Top, Copying,, (DIR)
@top Introduction @top Introduction
@cindex Introduction @cindex Introduction
@ifset INTERNALS @ifset INTERNALS
@ifset USING @ifset USING
This manual documents how to run, install and port the GNU Fortran This manual documents how to run, install and port @code{g77},
compiler, as well as its new features and incompatibilities, and how to as well as its new features and incompatibilities,
report bugs. It corresponds to GNU Fortran version @value{version-g77}. and how to report bugs.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifset @end ifset
@end ifset @end ifset
@ifclear INTERNALS @ifclear INTERNALS
This manual documents how to run and install the GNU Fortran compiler, This manual documents how to run and install @code{g77},
as well as its new features and incompatibilities, and how to report as well as its new features and incompatibilities, and how to report
bugs. It corresponds to GNU Fortran version @value{version-g77}. bugs.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear @end ifclear
@ifclear USING @ifclear USING
This manual documents how to port the GNU Fortran compiler, This manual documents how to port @code{g77},
as well as its new features and incompatibilities, and how to report as well as its new features and incompatibilities,
bugs. It corresponds to GNU Fortran version @value{version-g77}. and how to report bugs.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear @end ifclear
@end ifinfo @end ifinfo
@ifset DEVELOPMENT
@emph{Warning:} This document is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this document is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
@end ifset
@menu @menu
* Copying:: GNU General Public License says * Copying:: GNU General Public License says
how you can copy and share GNU Fortran. how you can copy and share GNU Fortran.
...@@ -3374,806 +3424,9 @@ variables. ...@@ -3374,806 +3424,9 @@ variables.
@include news.texi @include news.texi
@node Changes @set USERVISONLY
@chapter User-visible Changes @include news.texi
@cindex versions, recent @clear USERVISONLY
@cindex recent versions
@cindex changes, user-visible
@cindex user-visible changes
This section describes changes to @code{g77} that are visible
to the programmers who actually write and maintain Fortran
code they compile with @code{g77}.
Information on changes to installation procedures,
changes to the documentation, and bug fixes is
not provided here, unless it is likely to affect how
users use @code{g77}.
@xref{News,,News About GNU Fortran}, for information on
such changes to @code{g77}.
To find out about existing bugs and ongoing plans for GNU
Fortran, retrieve @uref{ftp://alpha.gnu.org/g77.plan}
or, if you cannot do that, email
@email{fortran@@gnu.org} asking for a recent copy of the
GNU Fortran @file{.plan} file.
@heading In @code{egcs 1.2}:
@itemize @bullet
@item
Source file names with the suffixes @samp{.FOR} and @samp{.FPP}
now are recognized by @code{g77}
as if they ended in @samp{.for} and @samp{.fpp}, respectively.
@end itemize
@heading In @code{egcs} 1.1 (versus 0.5.24):
@itemize @bullet
@cindex alignment
@cindex double-precision performance
@cindex -malign-double
@item
Align static double-precision variables and arrays
on Intel x86 targets
regardless of whether @samp{-malign-double} is specified.
Generally, this affects only local variables and arrays
having the @code{SAVE} attribute
or given initial values via @code{DATA}.
@end itemize
@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3):
@itemize @bullet
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
compile-time constant @code{INTEGER} expression.
@item
Fix @code{g77} @samp{-g} option so procedures that
use @samp{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@item
Allow any @code{REAL} argument to intrinsics
@code{Second} and @code{CPU_Time}.
@item
Use @code{tempnam}, if available, to open scratch files
(as in @samp{OPEN(STATUS='SCRATCH')})
so that the @code{TMPDIR} environment variable,
if present, is used.
@item
@code{g77}'s version of @code{libf2c} separates out
the setting of global state
(such as command-line arguments and signal handling)
from @file{main.o} into distinct, new library
archive members.
This should make it easier to write portable applications
that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library.
@item
The @code{g77} command now expects the run-time library
to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up.
@item
Some diagnostics have been changed from warnings to errors,
to prevent inadvertent use of the resulting, probably buggy,
programs.
These mostly include diagnostics about use of unsupported features
in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
@end itemize
@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23):
@itemize @bullet
@item
@code{g77} now treats @samp{%LOC(@var{expr})} and
@samp{LOC(@var{expr})} as ``ordinary'' expressions
when they are used as arguments in procedure calls.
This change applies only to global (filewide) analysis,
making it consistent with
how @code{g77} actually generates code
for these cases.
Previously, @code{g77} treated these expressions
as denoting special ``pointer'' arguments
for the purposes of filewide analysis.
@item
The @code{g77} driver now ensures that @samp{-lg2c}
is specified in the link phase prior to any
occurrence of @samp{-lm}.
This prevents accidentally linking to a routine
in the SunOS4 @samp{-lm} library
when the generated code wants to link to the one
in @code{libf2c} (@code{libg2c}).
@item
@code{g77} emits more debugging information when
@samp{-g} is used.
This new information allows, for example,
@kbd{which __g77_length_a} to be used in @code{gdb}
to determine the type of the phantom length argument
supplied with @samp{CHARACTER} variables.
This information pertains to internally-generated
type, variable, and other information,
not to the longstanding deficiencies vis-a-vis
@samp{COMMON} and @samp{EQUIVALENCE}.
@item
The F90 @samp{Date_and_Time} intrinsic now is
supported.
@item
The F90 @samp{System_Clock} intrinsic allows
the optional arguments (except for the @samp{Count}
argument) to be omitted.
@end itemize
@heading In 0.5.23:
@itemize @bullet
@item
This release contains several regressions against
version 0.5.22 of @code{g77}, due to using the
``vanilla'' @code{gcc} back end instead of patching
it to fix a few bugs and improve performance in a
few cases.
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version
of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
back end in previous releases include:
@itemize --
@item
Support for @code{__restrict__} keyword,
the options @samp{-fargument-alias}, @samp{-fargument-noalias},
and @samp{-fargument-noalias-global},
and the corresponding alias-analysis code.
(@code{egcs} has the alias-analysis
code, but not the @code{__restrict__} keyword.
@code{egcs} @code{g77} users benefit from the alias-analysis
code despite the lack of the @code{__restrict__} keyword,
which is a C-language construct.)
@item
Support for the GNU compiler options
@samp{-fmove-all-movables},
@samp{-freduce-all-givs},
and @samp{-frerun-loop-opt}.
(@code{egcs} supports these options.
@code{g77} users of @code{egcs} benefit from them even if
they are not explicitly specified,
because the defaults are optimized for @code{g77} users.)
@item
Support for the @samp{-W} option warning about
integer division by zero.
@item
The Intel x86-specific option @samp{-malign-double}
applying to stack-allocated data
as well as statically-allocate data.
@end itemize
@item
Support @code{gcc} version 2.8,
and remove support for prior versions of @code{gcc}.
@cindex -@w{}-driver option
@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
as @code{g77} now does all the driving,
just like @code{gcc}.
@item
The @code{g77} command now expects the run-time library
to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up.
@item
@code{g77}'s version of @code{libf2c} separates out
the setting of global state
(such as command-line arguments and signal handling)
from @file{main.o} into distinct, new library
archive members.
This should make it easier to write portable applications
that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library.
@item
Some diagnostics have been changed from warnings to errors,
to prevent inadvertent use of the resulting, probably buggy,
programs.
These mostly include diagnostics about use of unsupported features
in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
@end itemize
@heading In 0.5.22:
@itemize @bullet
@item
Fix @code{Signal} intrinsic so it offers portable
support for 64-bit systems (such as Digital Alphas
running GNU/Linux).
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
compile-time constant @code{INTEGER} expression.
@item
Fix @code{g77} @samp{-g} option so procedures that
use @samp{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@item
Allow any @code{REAL} argument to intrinsics
@code{Second} and @code{CPU_Time}.
@item
Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}.
@item
Use @code{tempnam}, if available, to open scratch files
(as in @samp{OPEN(STATUS='SCRATCH')})
so that the @code{TMPDIR} environment variable,
if present, is used.
@item
Rename the @code{gcc} keyword @code{restrict} to
@code{__restrict__}, to avoid rejecting valid, existing,
C programs.
Support for @code{restrict} is now more like support
for @code{complex}.
@item
Fix @samp{-fugly-comma} to affect invocations of
only external procedures.
Restore rejection of gratuitous trailing omitted
arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
@item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
@end itemize
@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1):
@itemize @bullet
@item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
@end itemize
@heading In @code{egcs} 1.0 (versus 0.5.21):
@itemize @bullet
@item
Version 1.0 of @code{egcs}
contains several regressions against
version 0.5.21 of @code{g77},
due to using the
``vanilla'' @code{gcc} back end instead of patching
it to fix a few bugs and improve performance in a
few cases.
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version
of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
back end in previous releases include:
@itemize --
@item
Support for the C-language @code{restrict} keyword.
@item
Support for the @samp{-W} option warning about
integer division by zero.
@item
The Intel x86-specific option @samp{-malign-double}
applying to stack-allocated data
as well as statically-allocate data.
@end itemize
@cindex -@w{}-driver option
@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
as @code{g77} now does all the driving,
just like @code{gcc}.
@item
Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}.
@end itemize
@heading In 0.5.21:
@itemize @bullet
@item
When the @samp{-W} option is specified, @code{gcc}, @code{g77},
and other GNU compilers that incorporate the @code{gcc}
back end as modified by @code{g77}, issue
a warning about integer division by constant zero.
@item
New option @samp{-Wno-globals} disables warnings
about ``suspicious'' use of a name both as a global
name and as the implicit name of an intrinsic, and
warnings about disagreements over the number or natures of
arguments passed to global procedures, or the
natures of the procedures themselves.
The default is to issue such warnings, which are
new as of this version of @code{g77}.
@item
New option @samp{-fno-globals} disables diagnostics
about potentially fatal disagreements
analysis problems, such as disagreements over the
number or natures of arguments passed to global
procedures, or the natures of those procedures themselves.
The default is to issue such diagnostics and flag
the compilation as unsuccessful.
With this option, the diagnostics are issued as
warnings, or, if @samp{-Wno-globals} is specified,
are not issued at all.
This option also disables inlining of global procedures,
to avoid compiler crashes resulting from coding errors
that these diagnostics normally would identify.
@item
Fix @code{libU77} routines that accept file and other names
to strip trailing blanks from them, for consistency
with other implementations.
Blanks may be forcibly appended to such names by
appending a single null character (@samp{CHAR(0)})
to the significant trailing blanks.
@item
Fix @code{CHMOD} intrinsic to work with file names
that have embedded blanks, commas, and so on.
@item
Fix @code{SIGNAL} intrinsic so it accepts an
optional third @samp{Status} argument.
@item
Make many changes to @code{libU77} intrinsics to
support existing code more directly.
Such changes include allowing both subroutine and
function forms of many routines, changing @code{MCLOCK()}
and @code{TIME()} to return @code{INTEGER(KIND=1)} values,
introducing @code{MCLOCK8()} and @code{TIME8()} to
return @code{INTEGER(KIND=2)} values,
and placing functions that are intended to perform
side effects in a new intrinsic group, @code{badu77}.
@item
Add options @samp{-fbadu77-intrinsics-delete},
@samp{-fbadu77-intrinsics-hide}, and so on.
@item
Add @code{INT2} and @code{INT8} intrinsics.
@item
Add @code{CPU_TIME} intrinsic.
@item
Add @code{ALARM} intrinsic.
@item
@code{CTIME} intrinsic now accepts any @code{INTEGER}
argument, not just @code{INTEGER(KIND=2)}.
@item
@code{g77} driver now prints version information (such as produced
by @kbd{g77 -v}) to @code{stderr} instead of @code{stdout}.
@item
The @samp{.r} suffix now designates a Ratfor source file,
to be preprocessed via the @code{ratfor} command, available
separately.
@end itemize
@heading In 0.5.20:
@itemize @bullet
@item
The @samp{-fno-typeless-boz} option is now the default.
This option specifies that non-decimal-radix
constants using the prefixed-radix form (such as @samp{Z'1234'})
are to be interpreted as @code{INTEGER(KIND=1)} constants.
Specify @samp{-ftypeless-boz} to cause such
constants to be interpreted as typeless.
(Version 0.5.19 introduced @samp{-fno-typeless-boz} and
its inverse.)
@xref{Fortran Dialect Options,,Options Controlling Fortran Dialect},
for information on the @samp{-ftypeless-boz} option.
@item
Options @samp{-ff90-intrinsics-enable} and
@samp{-fvxt-intrinsics-enable} now are the
defaults.
Some programs might use names that clash with
intrinsic names defined (and now enabled) by these
options or by the new @code{libU77} intrinsics.
Users of such programs might need to compile them
differently (using, for example, @samp{-ff90-intrinsics-disable})
or, better yet, insert appropriate @code{EXTERNAL}
statements specifying that these names are not intended
to be names of intrinsics.
@item
The @samp{ALWAYS_FLUSH} macro is no longer defined when
building @code{libf2c}, which should result in improved
I/O performance, especially over NFS.
@emph{Note:} If you have code that depends on the behavior
of @code{libf2c} when built with @samp{ALWAYS_FLUSH} defined,
you will have to modify @code{libf2c} accordingly before
building it from this and future versions of @code{g77}.
@xref{Output Assumed To Flush}, for more information.
@item
Dave Love's implementation of @code{libU77} has been
added to the version of @code{libf2c} distributed with
and built as part of @code{g77}.
@code{g77} now knows about the routines in this library
as intrinsics.
@item
New option @samp{-fvxt} specifies that the
source file is written in VXT Fortran, instead of GNU Fortran.
@xref{VXT Fortran}, for more information on the constructs
recognized when the @samp{-fvxt} option is specified.
@item
The @samp{-fvxt-not-f90} option has been deleted,
along with its inverse, @samp{-ff90-not-vxt}.
If you used one of these deleted options, you should
re-read the pertinent documentation to determine which
options, if any, are appropriate for compiling your
code with this version of @code{g77}.
@xref{Other Dialects}, for more information.
@item
The @samp{-fugly} option now issues a warning, as it
likely will be removed in a future version.
(Enabling all the @samp{-fugly-*} options is unlikely
to be feasible, or sensible, in the future,
so users should learn to specify only those
@samp{-fugly-*} options they really need for a
particular source file.)
@item
The @samp{-fugly-assumed} option, introduced in
version 0.5.19, has been changed to
better accommodate old and new code.
@xref{Ugly Assumed-Size Arrays}, for more information.
@item
Related to supporting Alpha (AXP) machines, the @code{LOC()}
intrinsic and @code{%LOC()} construct now return
values of @code{INTEGER(KIND=0)} type,
as defined by the GNU Fortran language.
This type is wide enough
(holds the same number of bits)
as the character-pointer type on the machine.
On most machines, this won't make a difference,
whereas, on Alphas and other systems with 64-bit pointers,
the @code{INTEGER(KIND=0)} type is equivalent to @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
instead of the more common @code{INTEGER(KIND=1)}
(often referred to as @code{INTEGER*4}).
@item
Emulate @code{COMPLEX} arithmetic in the @code{g77} front
end, to avoid bugs in @code{complex} support in the
@code{gcc} back end.
New option @samp{-fno-emulate-complex}
causes @code{g77} to revert the 0.5.19 behavior.
@item
Dummy arguments are no longer assumed to potentially alias
(overlap)
other dummy arguments or @code{COMMON} areas when any of
these are defined (assigned to) by Fortran code.
This can result in faster and/or smaller programs when
compiling with optimization enabled, though on some
systems this effect is observed only when @samp{-fforce-addr}
also is specified.
New options @samp{-falias-check}, @samp{-fargument-alias},
@samp{-fargument-noalias},
and @samp{-fno-argument-noalias-global} control the
way @code{g77} handles potential aliasing.
@xref{Aliasing Assumed To Work}, for detailed information on why the
new defaults might result in some programs no longer working the way they
did when compiled by previous versions of @code{g77}.
@item
New option @samp{-fugly-assign} specifies that the
same memory locations are to be used to hold the
values assigned by both statements @samp{I = 3} and
@samp{ASSIGN 10 TO I}, for example.
(Normally, @code{g77} uses a separate memory location
to hold assigned statement labels.)
@xref{Ugly Assigned Labels}, for more information.
@item
@code{FORMAT} and @code{ENTRY} statements now are allowed to
precede @code{IMPLICIT NONE} statements.
@item
Enable full support of @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
available in
@code{libf2c} and @file{f2c.h} so that @code{f2c} users
may make full use of its features via the @code{g77}
version of @file{f2c.h} and the @code{INTEGER(KIND=2)}
support routines in the @code{g77} version of @code{libf2c}.
@item
Improve @code{g77} driver and @code{libf2c} so that @samp{g77 -v}
yields version information on the library.
@item
The @code{SNGL} and @code{FLOAT} intrinsics now are
specific intrinsics, instead of synonyms for the
generic intrinsic @code{REAL}.
@item
New intrinsics have been added.
These are @code{REALPART}, @code{IMAGPART},
@code{COMPLEX},
@code{LONG}, and @code{SHORT}.
@item
A new group of intrinsics, @samp{gnu}, has been added
to contain the new @code{REALPART}, @code{IMAGPART},
and @code{COMPLEX} intrinsics.
An old group, @samp{dcp}, has been removed.
@item
Complain about industry-wide ambiguous references
@samp{REAL(@var{expr})} and @samp{AIMAG(@var{expr})},
where @var{expr} is @code{DOUBLE COMPLEX} (or any
complex type other than @code{COMPLEX}), unless
@samp{-ff90} option specifies Fortran 90 interpretation
or new @samp{-fugly-complex} option, in conjunction with
@samp{-fnot-f90}, specifies @code{f2c} interpretation.
@end itemize
@heading In 0.5.19:
@itemize @bullet
@item
A temporary kludge option provides bare-bones information on
@code{COMMON} and @code{EQUIVALENCE} members at debug time.
@xref{Code Gen Options,,Options for Code Generation Conventions},
for information on the @samp{-fdebug-kludge} option.
@item
New @samp{-fonetrip} option specifies FORTRAN-66-style
one-trip @code{DO} loops.
@item
New @samp{-fno-silent} option causes names of program units
to be printed as they are compiled, in a fashion similar to
UNIX @code{f77} and @code{f2c}.
@item
New @samp{-fugly-assumed} option specifies that arrays
dimensioned via @samp{DIMENSION X(1)}, for example, are to be
treated as assumed-size.
@item
New @samp{-fno-typeless-boz} option specifies that non-decimal-radix
constants using the prefixed-radix form (such as @samp{Z'1234'})
are to be interpreted as @code{INTEGER(KIND=1)} constants.
@item
New @samp{-ff66} option is a ``shorthand'' option that specifies
behaviors considered appropriate for FORTRAN 66 programs.
@item
New @samp{-ff77} option is a ``shorthand'' option that specifies
behaviors considered appropriate for UNIX @code{f77} programs.
@item
New @samp{-fugly-comma} and @samp{-fugly-logint} options provided
to perform some of what @samp{-fugly} used to do.
@samp{-fugly} and @samp{-fno-ugly} are now ``shorthand'' options,
in that they do nothing more than enable (or disable) other
@samp{-fugly-*} options.
@item
Change code generation for list-directed I/O so it allows
for new versions of @code{libf2c} that might return non-zero
status codes for some operations previously assumed to always
return zero.
This change not only affects how @code{IOSTAT=} variables
are set by list-directed I/O, it also affects whether
@code{END=} and @code{ERR=} labels are reached by these
operations.
@item
Add intrinsic support for new @code{FTELL} and @code{FSEEK}
procedures in @code{libf2c}.
@item
Add options @samp{--help} and @samp{--version} to the
@code{g77} command, to conform to GNU coding guidelines.
Also add printing of @code{g77} version number when
the @samp{--verbose} (@samp{-v}) option is used.
@end itemize
@heading In 0.5.18:
@itemize @bullet
@item
The @code{BYTE} and @code{WORD} statements now are supported,
to a limited extent.
@item
@code{INTEGER*1}, @code{INTEGER*2}, @code{INTEGER*8},
and their @code{LOGICAL}
equivalents, now are supported to a limited extent.
Among the missing elements are complete intrinsic and constant
support.
@item
Support automatic arrays in procedures.
For example, @samp{REAL A(N)}, where @samp{A} is
not a dummy argument, specifies that @samp{A} is
an automatic array.
The size of @samp{A} is calculated from the value
of @samp{N} each time the procedure is called,
that amount of space is allocated, and that space
is freed when the procedure returns to its caller.
@item
Add @samp{-fno-zeros} option, enabled by default,
to reduce compile-time CPU and memory usage for
code that provides initial zero values for variables
and arrays.
@item
Introduce three new options that apply to all compilations
by @code{g77}-aware GNU compilers---@samp{-fmove-all-movables},
@samp{-freduce-all-givs}, and @samp{-frerun-loop-opt}---which
can improve the run-time performance of some programs.
@item
Replace much of the existing documentation with a single
Info document.
@item
New option @samp{-fno-second-underscore}.
@end itemize
@heading In 0.5.17:
@itemize @bullet
@item
The @code{ERF()} and @code{ERFC()} intrinsics now are generic
intrinsics, mapping to @code{ERF}/@code{DERF} and
@code{ERFC}/@code{DERFC}, respectively.
@emph{Note:} Use @samp{INTRINSIC ERF,ERFC} in any code that
might reference these as generic intrinsics, to
improve the likelihood of diagnostics (instead of subtle run-time
bugs) when using compilers that don't support these as intrinsics.
@item
New option @samp{-Wsurprising}.
@item
DO loops with non-@code{INTEGER} variables now diagnosed only when
@samp{-Wsurprising} specified.
Previously, this was diagnosed @emph{unless} @samp{-fpedantic} or
@samp{-fugly} was specified.
@end itemize
@heading In 0.5.16:
@itemize @bullet
@item
@code{libf2c} changed to output a leading zero (0) digit for floating-point
values output via list-directed and formatted output (to bring @code{g77}
more into line with many existing Fortran implementations---the
ANSI FORTRAN 77 standard leaves this choice to the implementation).
@item
@code{libf2c} no longer built with debugging information
intact, making it much smaller.
@item
Automatic installation of the @code{g77} command now works.
@item
Diagnostic messages now more informative, a la @code{gcc},
including messages like @samp{In function `foo':} and @samp{In file
included from...:}.
@item
New group of intrinsics called @samp{unix}, including @code{ABORT},
@code{DERF}, @code{DERFC}, @code{ERF}, @code{ERFC}, @code{EXIT},
@code{FLUSH}, @code{GETARG}, @code{GETENV}, @code{SIGNAL}, and
@code{SYSTEM}.
@item
@samp{-funix-intrinsics-@{delete,hide,disable,enable@}}
options added.
@item
@samp{-fno-underscoring} option added.
@item
@samp{--driver} option added to the @code{g77} command.
@item
Support for the @code{gcc} options @samp{-fident} and @samp{-fno-ident}
added.
@item
@samp{g77 -v} returns much more version info, making the submission
of better bug reports easily.
@item
Many improvements to the @code{g77} command to better fulfill its role as
a front-end to the @code{gcc} driver.
For example, @code{g77} now
recognizes @samp{--verbose} as a verbose way of specifying @samp{-v}.
@item
Compiling preprocessed (@file{*.F} and @file{*.fpp}) files now
results in better diagnostics and debugging information, as the
source-location info now is passed all the
way through the compilation process instead of being lost.
@end itemize
@node Language @node Language
@chapter The GNU Fortran Language @chapter The GNU Fortran Language
...@@ -11426,7 +10679,7 @@ or installing @code{g77} is not provided here. ...@@ -11426,7 +10679,7 @@ or installing @code{g77} is not provided here.
@xref{Problems Installing}. @xref{Problems Installing}.
To find out about major bugs discovered in the current release and To find out about major bugs discovered in the current release and
possible workarounds for them, retrieve possible workarounds for them, see
@uref{ftp://alpha.gnu.org/g77.plan}. @uref{ftp://alpha.gnu.org/g77.plan}.
(Note that some of this portion of the manual is lifted (Note that some of this portion of the manual is lifted
...@@ -11439,7 +10692,7 @@ gcc,Using and Porting GNU CC}.) ...@@ -11439,7 +10692,7 @@ gcc,Using and Porting GNU CC}.)
@menu @menu
* But-bugs:: Bugs really in other programs or elsewhere. * But-bugs:: Bugs really in other programs or elsewhere.
* Actual Bugs:: Bugs and misfeatures we will fix later. * Known Bugs:: Bugs known to be in this version of @code{g77}.
* Missing Features:: Features we already know we want to add later. * Missing Features:: Features we already know we want to add later.
* Disappointments:: Regrettable things we can't change. * Disappointments:: Regrettable things we can't change.
* Non-bugs:: Things we think are right, but some others disagree. * Non-bugs:: Things we think are right, but some others disagree.
...@@ -11999,7 +11252,6 @@ GNU Fortran language: ...@@ -11999,7 +11252,6 @@ GNU Fortran language:
* Intrinsics in PARAMETER Statements:: * Intrinsics in PARAMETER Statements::
* SELECT CASE on CHARACTER Type:: * SELECT CASE on CHARACTER Type::
* RECURSIVE Keyword:: * RECURSIVE Keyword::
* AUTOMATIC Statement::
* Popular Non-standard Types:: * Popular Non-standard Types::
* Full Support for Compiler Types:: * Full Support for Compiler Types::
* Array Bounds Expressions:: * Array Bounds Expressions::
...@@ -12016,6 +11268,7 @@ GNU Fortran dialects: ...@@ -12016,6 +11268,7 @@ GNU Fortran dialects:
* STRUCTURE UNION RECORD MAP:: * STRUCTURE UNION RECORD MAP::
* OPEN CLOSE and INQUIRE Keywords:: * OPEN CLOSE and INQUIRE Keywords::
* ENCODE and DECODE:: * ENCODE and DECODE::
* AUTOMATIC Statement::
* Suppressing Space Padding:: * Suppressing Space Padding::
* Fortran Preprocessor:: * Fortran Preprocessor::
* Bit Operations on Floating-point Data:: * Bit Operations on Floating-point Data::
...@@ -12158,30 +11411,6 @@ designed to do recursion. ...@@ -12158,30 +11411,6 @@ designed to do recursion.
All recursive code can be rewritten to not use recursion, All recursive code can be rewritten to not use recursion,
but the result is not pretty. but the result is not pretty.
@node AUTOMATIC Statement
@subsection @code{AUTOMATIC} Statement
@cindex @code{AUTOMATIC} statement
@cindex statements, @code{AUTOMATIC}
@cindex automatic variables
@cindex variables, automatic
@code{g77} doesn't support the @code{AUTOMATIC} keyword that
@code{f2c} does.
It is not yet clear exactly what this statement would achieve.
The semantic equivalent would be provided by @code{RECURSIVE}
combined with lack of @code{SAVE}.
In that sense, perhaps all it would provide is an
overriding of an unadorned (blanket) @code{SAVE} statement
for specific variables.
It might also serve as a hint to the compiler that placing
even a very large array on the stack is acceptable.
Perhaps it should disallow @code{DATA}
or other specification of any initial values
for affected variables as well.
@node Increasing Precision/Range @node Increasing Precision/Range
@subsection Increasing Precision/Range @subsection Increasing Precision/Range
@cindex -r8 @cindex -r8
...@@ -12573,6 +11802,30 @@ with: ...@@ -12573,6 +11802,30 @@ with:
It is entirely possible that @code{ENCODE} and @code{DECODE} will It is entirely possible that @code{ENCODE} and @code{DECODE} will
be supported by a future version of @code{g77}. be supported by a future version of @code{g77}.
@node AUTOMATIC Statement
@subsection @code{AUTOMATIC} Statement
@cindex @code{AUTOMATIC} statement
@cindex statements, @code{AUTOMATIC}
@cindex automatic variables
@cindex variables, automatic
@code{g77} doesn't support the @code{AUTOMATIC} keyword that
@code{f2c} does.
It is not yet clear exactly what this statement would achieve.
The semantic equivalent would be provided by @code{RECURSIVE}
combined with lack of @code{SAVE}.
In that sense, perhaps all it would provide is an
overriding of an unadorned (blanket) @code{SAVE} statement
for specific variables.
It might also serve as a hint to the compiler that placing
even a very large array on the stack is acceptable.
Perhaps it should disallow @code{DATA}
or other specification of any initial values
for affected variables as well.
@node Suppressing Space Padding @node Suppressing Space Padding
@subsection Suppressing Space Padding of Source Lines @subsection Suppressing Space Padding of Source Lines
......
@c Copyright (C) 1995-1998 Free Software Foundation, Inc. @c Copyright (C) 1995-1999 Free Software Foundation, Inc.
@c This is part of the G77 manual. @c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi. @c For copying conditions, see the file g77.texi.
@c When changing the above copyright notice, be sure to
@c change the one in `install0.texi' accordingly, to effect
@c the change in the derived file `INSTALL'.
@c The text of this file appears in the file INSTALL @c The text of this file appears in the file INSTALL
@c in the G77 distribution, as well as in the G77 manual. @c in the G77 distribution, as well as in the G77 manual.
@c 1998-07-13 @c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. INSTALL).
@set copyrights 1995-1999
@set last-update-install 1999-03-13
@include root.texi
@ifset DOC-INSTALL
@c The immediately following lines apply to the INSTALL file
@c which is generated using this file.
@emph{Note:} This file is automatically generated from the files
@file{install0.texi} and @file{g77install.texi}.
@file{INSTALL} is @emph{not} a source file,
although it is normally included within source distributions.
This file contains installation information for the GNU Fortran compiler.
Copyright (C) @value{copyrights-install} Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Installing GNU Fortran
@end ifset
@set version-g77 0.5.24
@set version-gcc 2.8.1 @set version-gcc 2.8.1
@set version-autoconf 2.12 @set version-autoconf 2.12
@set version-bison 1.25 @set version-bison 1.25
...@@ -24,20 +42,32 @@ ...@@ -24,20 +42,32 @@
@set version-tar 1.12 @set version-tar 1.12
@set version-texinfo 3.12 @set version-texinfo 3.12
@ifclear INSTALLONLY @ifset DOC-G77
@node Installation @node Installation
@chapter Installing GNU Fortran @chapter Installing GNU Fortran
@end ifclear
@cindex installing, GNU Fortran @cindex installing, GNU Fortran
@end ifset
The following information describes how to install @code{g77}. The following information describes how to install @code{g77}.
@ifset EGCS-G77
@set OMIT-FSF-G77
Note that, for @code{egcs} users, Note that, for @code{egcs} users,
much of this information is obsolete, much of the information is obsolete,
and is superceded by the and is superceded by the
@code{egcs} installation procedures. @code{egcs} installation procedures.
Such information is explicitly flagged as such. Such information is accordingly omitted and flagged as such.
@ifset DEVELOPMENT
@ifclear DOC-INSTALL
@clear OMIT-FSF-G77
(It is not actually omitted from the development version of this documentation,
so the @code{g77} developers can easily find all the documentation
for all versions of @code{g77} in one place.)
@end ifclear
@end ifset
@end ifset
@ifclear OMIT-FSF-G77
The information in this file generally pertains to dealing The information in this file generally pertains to dealing
with @emph{source} distributions of @code{g77} and @code{gcc}. with @emph{source} distributions of @code{g77} and @code{gcc}.
It is possible that some of this information will be applicable It is possible that some of this information will be applicable
...@@ -49,6 +79,25 @@ whoever built and first distributed them. ...@@ -49,6 +79,25 @@ whoever built and first distributed them.
Nevertheless, efforts to make @code{g77} easier to both build Nevertheless, efforts to make @code{g77} easier to both build
and install from source and package up as a binary distribution and install from source and package up as a binary distribution
are ongoing. are ongoing.
@end ifclear
@ifset DEVELOPMENT
@emph{Warning:} The information below is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this information is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
@end ifset
The following information was last updated on @value{last-update-install}:
@menu @menu
* Prerequisites:: Make sure your system is ready for @code{g77}. * Prerequisites:: Make sure your system is ready for @code{g77}.
...@@ -63,10 +112,12 @@ are ongoing. ...@@ -63,10 +112,12 @@ are ongoing.
@section Prerequisites @section Prerequisites
@cindex prerequisites @cindex prerequisites
@emph{Version info:} @ifset EGCS-G77
For @code{egcs} users, the following information is For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions. superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
The procedures described to unpack, configure, build, and The procedures described to unpack, configure, build, and
install @code{g77} assume your system has certain programs install @code{g77} assume your system has certain programs
already installed. already installed.
...@@ -342,6 +393,8 @@ instead of the entire @file{.tar.gz} distribution ...@@ -342,6 +393,8 @@ instead of the entire @file{.tar.gz} distribution
to rebuild derived files, such as @code{makeinfo}). to rebuild derived files, such as @code{makeinfo}).
@end table @end table
@end ifclear
@node Problems Installing @node Problems Installing
@section Problems Installing @section Problems Installing
@cindex problems installing @cindex problems installing
...@@ -389,7 +442,7 @@ so there are no plans for an interim fix. ...@@ -389,7 +442,7 @@ so there are no plans for an interim fix.
This requirement does not mean you must already have @code{gcc} This requirement does not mean you must already have @code{gcc}
installed to build @code{g77}. installed to build @code{g77}.
As long as you have a working C compiler, you can use a As long as you have a working C compiler, you can use a
bootstrap build to automate the process of first building ``bootstrap'' build to automate the process of first building
@code{gcc} using the working C compiler you have, then building @code{gcc} using the working C compiler you have, then building
@code{g77} and rebuilding @code{gcc} using that just-built @code{gcc}, @code{g77} and rebuilding @code{gcc} using that just-built @code{gcc},
and so on. and so on.
...@@ -429,10 +482,12 @@ is not yet established. ...@@ -429,10 +482,12 @@ is not yet established.
@cindex @code{ld}, can't find _strtoul @cindex @code{ld}, can't find _strtoul
@cindex SunOS4 @cindex SunOS4
@emph{Version info:} @ifset EGCS-G77
The following information does not apply to the This information does not apply to the
@code{egcs} version of @code{g77}. @code{egcs} version of @code{g77}.
@end ifset
@ifclear OMIT-FSF-G77
On SunOS4 systems, linking the @code{f771} program used to On SunOS4 systems, linking the @code{f771} program used to
produce an error message concerning an undefined symbol named produce an error message concerning an undefined symbol named
@samp{_strtoul}, because the @samp{strtoul} library function @samp{_strtoul}, because the @samp{strtoul} library function
...@@ -447,7 +502,7 @@ but every attempt at this has failed for at least one kind of system. ...@@ -447,7 +502,7 @@ but every attempt at this has failed for at least one kind of system.
To limit the failures to those few systems actually missing the To limit the failures to those few systems actually missing the
required routines, the bare-bones versions are still provided, required routines, the bare-bones versions are still provided,
in @file{gcc/f/proj.c}, in @file{@value{path-g77}/proj.c},
if the appropriate macros are defined. if the appropriate macros are defined.
These are @code{NEED_BSEARCH} for @samp{bsearch} and These are @code{NEED_BSEARCH} for @samp{bsearch} and
@code{NEED_STRTOUL} for @samp{NEED_STRTOUL}. @code{NEED_STRTOUL} for @samp{NEED_STRTOUL}.
...@@ -455,7 +510,7 @@ These are @code{NEED_BSEARCH} for @samp{bsearch} and ...@@ -455,7 +510,7 @@ These are @code{NEED_BSEARCH} for @samp{bsearch} and
Therefore, if you are sure your system is missing Therefore, if you are sure your system is missing
@code{bsearch} or @code{strtoul} in its library, @code{bsearch} or @code{strtoul} in its library,
define the relevant macro(s) before building @code{g77}. define the relevant macro(s) before building @code{g77}.
This can be done by editing @file{gcc/f/proj.c} and inserting This can be done by editing @file{@value{path-g77}/proj.c} and inserting
either or both of the following @samp{#define} statements either or both of the following @samp{#define} statements
before the comment shown: before the comment shown:
...@@ -474,15 +529,17 @@ To build with the bundled @code{cc} on SunOS4, for example, try: ...@@ -474,15 +529,17 @@ To build with the bundled @code{cc} on SunOS4, for example, try:
make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL' make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL'
@end smallexample @end smallexample
If you then encounter problems compiling @file{gcc/f/proj.c}, If you then encounter problems compiling @file{@value{path-g77}/proj.c},
it might be due to a discrepancy between how @samp{bsearch} it might be due to a discrepancy between how @samp{bsearch}
or @samp{strtoul} are defined by that file and how they're or @samp{strtoul} are defined by that file and how they're
declared by your system's header files. declared by your system's header files.
In that case, you'll have to use some basic knowledge of C In that case, you'll have to use some basic knowledge of C
to work around the problem, perhaps by editing @file{gcc/f/proj.c} to work around the problem, perhaps by editing @file{@value{path-g77}/proj.c}
somewhat. somewhat.
@end ifclear
@node Cleanup Kills Stage Directories @node Cleanup Kills Stage Directories
@subsubsection Cleanup Kills Stage Directories @subsubsection Cleanup Kills Stage Directories
@cindex stage directories @cindex stage directories
...@@ -536,7 +593,9 @@ be fixed in a future version of @code{gcc}. ...@@ -536,7 +593,9 @@ be fixed in a future version of @code{gcc}.
A linker bug on some versions of AIX 4.1 might prevent building A linker bug on some versions of AIX 4.1 might prevent building
when @code{g77} is built within @code{gcc}. when @code{g77} is built within @code{gcc}.
It might also occur when building within @code{egcs}. It might also occur when building within @code{egcs}.
@ifset DOC-G77
@xref{LINKFAIL}. @xref{LINKFAIL}.
@end ifset
@node Cross-compiler Problems @node Cross-compiler Problems
@subsection Cross-compiler Problems @subsection Cross-compiler Problems
...@@ -601,7 +660,7 @@ system, depending on the systems involved in the configuration. ...@@ -601,7 +660,7 @@ system, depending on the systems involved in the configuration.
@section Changing Settings Before Building @section Changing Settings Before Building
Here are some internal @code{g77} settings that can be changed Here are some internal @code{g77} settings that can be changed
by editing source files in @file{gcc/f/} before building. by editing source files in @file{@value{path-g77}/} before building.
This information, and perhaps even these settings, represent This information, and perhaps even these settings, represent
stop-gap solutions to problems people doing various ports stop-gap solutions to problems people doing various ports
...@@ -641,7 +700,7 @@ the use of unit numbers higher than 99, you can change the ...@@ -641,7 +700,7 @@ the use of unit numbers higher than 99, you can change the
value of the @samp{MXUNIT} macro, which represents the maximum unit value of the @samp{MXUNIT} macro, which represents the maximum unit
number, to an appropriately higher value. number, to an appropriately higher value.
To do this, edit the file @file{f/runtime/libI77/fio.h} in your To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
@code{g77} source tree, changing the following line: @code{g77} source tree, changing the following line:
@example @example
...@@ -707,7 +766,7 @@ modify the @code{g77} source tree so that the version of ...@@ -707,7 +766,7 @@ modify the @code{g77} source tree so that the version of
@code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro @code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro
defined, enabling this behavior. defined, enabling this behavior.
To do this, find this line in @file{f/runtime/f2c.h} in To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
your @code{g77} source tree: your @code{g77} source tree:
@example @example
...@@ -729,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate. ...@@ -729,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate.
@cindex segmentation violation @cindex segmentation violation
@code{g77}, on most machines, puts many variables and arrays on the stack @code{g77}, on most machines, puts many variables and arrays on the stack
where possible, and can be configured (by changing where possible, and can be configured (by changing
@samp{FFECOM_sizeMAXSTACKITEM} in @file{gcc/f/com.c}) to force @samp{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents stack (which can improve run-time performance, as it presents
...@@ -777,7 +836,7 @@ a factor of 10. ...@@ -777,7 +836,7 @@ a factor of 10.
This size currently is quite small, since @code{g77} This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory currently has a known bug requiring too much memory
and time to handle such cases. and time to handle such cases.
In @file{gcc/f/data.c}, the macro In @file{@value{path-g77}/data.c}, the macro
@samp{FFEDATA_sizeTOO_BIG_INIT_} is defined @samp{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear. to the minimum size for the warning to appear.
The size is specified in storage units, The size is specified in storage units,
...@@ -831,10 +890,12 @@ systems. ...@@ -831,10 +890,12 @@ systems.
@section Quick Start @section Quick Start
@cindex quick start @cindex quick start
@emph{Version info:} @ifset EGCS-G77
For @code{egcs} users, the following information is For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions. superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
This procedure configures, builds, and installs @code{g77} This procedure configures, builds, and installs @code{g77}
``out of the box'' and works on most UNIX systems. ``out of the box'' and works on most UNIX systems.
Each command is identified by a unique number, Each command is identified by a unique number,
...@@ -1112,13 +1173,17 @@ around anymore. ...@@ -1112,13 +1173,17 @@ around anymore.
Removing them can free up a lot of disk space. Removing them can free up a lot of disk space.
@end table @end table
@end ifclear
@node Complete Installation @node Complete Installation
@section Complete Installation @section Complete Installation
@emph{Version info:} @ifset EGCS-G77
For @code{egcs} users, the following information is For @code{egcs} users, this information is
mostly superceded by the @code{egcs} installation instructions. superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
Here is the complete @code{g77}-specific information on how Here is the complete @code{g77}-specific information on how
to configure, build, and install @code{g77}. to configure, build, and install @code{g77}.
...@@ -1270,7 +1335,7 @@ the directories they create.) ...@@ -1270,7 +1335,7 @@ the directories they create.)
If your version of @code{gcc} is older than the oldest version If your version of @code{gcc} is older than the oldest version
supported by @code{g77} supported by @code{g77}
(as casually determined by listing the contents of @file{gcc/f/INSTALL/}, (as casually determined by listing the contents of @file{@value{path-g77}/INSTALL/},
which contains these installation instructions in plain-text format), which contains these installation instructions in plain-text format),
you should obtain a newer, supported version of @code{gcc}. you should obtain a newer, supported version of @code{gcc}.
(You could instead obtain an older version of @code{g77}, (You could instead obtain an older version of @code{g77},
...@@ -1295,9 +1360,7 @@ it is likely that @file{gcc-2.8.2} would work well with @code{g77}. ...@@ -1295,9 +1360,7 @@ it is likely that @file{gcc-2.8.2} would work well with @code{g77}.
However, @file{gcc-2.9.0} would almost certainly However, @file{gcc-2.9.0} would almost certainly
not work with that version of @code{g77} not work with that version of @code{g77}
without appropriate modifications, without appropriate modifications,
so a new version of @code{g77} would be needed (and you should so a new version of @code{g77} would be needed.
wait for it rather than bothering the maintainers---@pxref{Changes,,
User-Visible Changes}).
@cindex distributions, why separate @cindex distributions, why separate
@cindex separate distributions @cindex separate distributions
...@@ -1314,7 +1377,7 @@ and such changes require corresponding changes to ...@@ -1314,7 +1377,7 @@ and such changes require corresponding changes to
the @code{g77} front end (FFE). the @code{g77} front end (FFE).
@c @pindex config-lang.in @c @pindex config-lang.in
@c @emph{Note:} @code{g77}'s configuration file @file{gcc/f/config-lang.in} @c @emph{Note:} @code{g77}'s configuration file @file{@value{path-g77}/config-lang.in}
@c sometimes ensures that the source code for the version of @code{gcc} @c sometimes ensures that the source code for the version of @code{gcc}
@c being configured has at least one indication of being an appropriate @c being configured has at least one indication of being an appropriate
@c version as required specifically by @code{g77}. @c version as required specifically by @code{g77}.
...@@ -1907,7 +1970,7 @@ do @emph{not} do @samp{make maintainer-clean}, and, to ensure that ...@@ -1907,7 +1970,7 @@ do @emph{not} do @samp{make maintainer-clean}, and, to ensure that
type these commands: type these commands:
@example @example
sh# @kbd{cd gcc/f/runtime} sh# @kbd{cd @value{path-libf2c}}
sh# @kbd{touch configure libU77/configure} sh# @kbd{touch configure libU77/configure}
sh# @kbd{cd ../../..} sh# @kbd{cd ../../..}
sh# sh#
...@@ -1978,11 +2041,19 @@ sh# @kbd{cd ..} ...@@ -1978,11 +2041,19 @@ sh# @kbd{cd ..}
sh# sh#
@end example @end example
@end ifclear
@node Distributing Binaries @node Distributing Binaries
@section Distributing Binaries @section Distributing Binaries
@cindex binaries, distributing @cindex binaries, distributing
@cindex code, distributing @cindex code, distributing
@ifset EGCS-G77
For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
If you are building @code{g77} for distribution to others in binary form, If you are building @code{g77} for distribution to others in binary form,
first make sure you are aware of your legal responsibilities (read first make sure you are aware of your legal responsibilities (read
the file @file{gcc/COPYING} thoroughly). the file @file{gcc/COPYING} thoroughly).
...@@ -2101,7 +2172,7 @@ If it is not included, users will have trouble understanding ...@@ -2101,7 +2172,7 @@ If it is not included, users will have trouble understanding
diagnostics messages and other such things, and will send diagnostics messages and other such things, and will send
you a lot of email asking questions. you a lot of email asking questions.
Please edit this documentation (by editing @file{gcc/f/*.texi} Please edit this documentation (by editing @file{@value{path-g77}/*.texi}
and doing @samp{make doc} from the @file{/usr/src/gcc} directory) and doing @samp{make doc} from the @file{/usr/src/gcc} directory)
to reflect any changes you've made to @code{g77}, or at to reflect any changes you've made to @code{g77}, or at
least to encourage users of your binary distribution to least to encourage users of your binary distribution to
...@@ -2172,3 +2243,5 @@ and distributions, about which nothing could be done for the ...@@ -2172,3 +2243,5 @@ and distributions, about which nothing could be done for the
user. user.
Once you are quite certain a bug report does not involve Once you are quite certain a bug report does not involve
your efforts, you can forward it to us. your efforts, you can forward it to us.
@end ifclear
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@c %**start of header @c %**start of header
@setfilename INSTALL @setfilename INSTALL
@set INSTALLONLY
@c %**end of header @c %**end of header
@c The immediately following lines apply to the INSTALL file @c This tells g77install.texi that it's generating just the INSTALL file.
@c which is generated using this file. @set DOC-INSTALL
NOTE: This file is automatically generated from the files
`install0.texi' and `g77install.texi'. `INSTALL' is *not* a source
file, although it is normally included within source distributions.
This file contains installation information for the GNU Fortran compiler.
Copyright (C) 1995-1998 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Installing GNU Fortran
@include g77install.texi @include g77install.texi
@bye @bye
...@@ -2,22 +2,64 @@ ...@@ -2,22 +2,64 @@
@c This is part of the G77 manual. @c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi. @c For copying conditions, see the file g77.texi.
@c When changing the above copyright notice, be sure to @c The text of this file appears in the file NEWS
@c change the one in `news0.texi' accordingly, to effect
@c the change in the derived file `NEWS'.
@c The text of this file appears in the file BUGS
@c in the G77 distribution, as well as in the G77 manual. @c in the G77 distribution, as well as in the G77 manual.
@c 1999-03-06 @c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. NEWS).
@set copyrights-news 1995-1999
@set last-update-news 1999-03-13
@include root.texi
@ifclear NEWSONLY @ifset DOC-NEWS
@c The immediately following lines apply to the NEWS file
@c which is derived from this file.
@emph{Note:} This file is automatically generated from the files
@file{news0.texi} and @file{news.texi}.
@file{NEWS} is @emph{not} a source file,
although it is normally included within source distributions.
This file lists news about the @value{which-g77} version
(and some other versions) of the GNU Fortran compiler.
Copyright (C) @value{copyrights-news} Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter News About GNU Fortran
@end ifset
@ifset DOC-G77
@ifset USERVISONLY
@node Changes
@chapter User-visible Changes
@cindex versions, recent
@cindex recent versions
@cindex changes, user-visible
@cindex user-visible changes
This chapter describes changes to @code{g77} that are visible
to the programmers who actually write and maintain Fortran
code they compile with @code{g77}.
Information on changes to installation procedures,
changes to the documentation, and bug fixes is
not provided here, unless it is likely to affect how
users use @code{g77}.
@xref{News,,News About GNU Fortran}, for information on
such changes to @code{g77}.
@end ifset
@ifclear USERVISONLY
@node News @node News
@chapter News About GNU Fortran @chapter News About GNU Fortran
@end ifclear
@cindex versions, recent @cindex versions, recent
@cindex recent versions @cindex recent versions
@end ifclear
@end ifset
@ifclear USERVISONLY
Changes made to recent versions of GNU Fortran are listed Changes made to recent versions of GNU Fortran are listed
below, with the most recent version first. below, with the most recent version first.
...@@ -49,6 +91,7 @@ Miscellany ...@@ -49,6 +91,7 @@ Miscellany
This order is not strict---for example, some items This order is not strict---for example, some items
involve a combination of these elements. involve a combination of these elements.
@end ifclear
Note that two variants of @code{g77} are tracked below. Note that two variants of @code{g77} are tracked below.
The @code{egcs} variant is described vis-a-vis The @code{egcs} variant is described vis-a-vis
...@@ -62,8 +105,55 @@ though this can make getting a complete picture ...@@ -62,8 +105,55 @@ though this can make getting a complete picture
of what a particular @code{egcs} version contains of what a particular @code{egcs} version contains
somewhat more difficult. somewhat more difficult.
@heading In @code{egcs} 1.2: @ifset DOC-G77
For information on bugs in the @value{which-g77} version of @code{g77},
@ref{Known Bugs,,Known Bugs In GNU Fortran}.
@end ifset
@ifset DOC-BUGS
For information on bugs in the @value{which-g77} version of @code{g77},
see @file{@value{path-g77}/BUGS}.
@end ifset
@ifset DEVELOPMENT
@emph{Warning:} The information below is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this information is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
Nevertheless, information on @emph{previous} releases of @code{g77}, below,
is likely to be more up-to-date and accurate
than the equivalent information that accompanied
those releases,
assuming the last-updated date of the information below
is later than the dates of those releases.
That's due to attempts to keep this development version
of news about previous @code{g77} versions up-to-date.
@end ifset
@ifclear USERVISONLY
An online, ``live'' version of this document
(derived directly from the mainline, development version
of @code{g77} within @code{egcs})
is available at
@uref{http://egcs.cygnus.com/onlinedocs/g77_news.html}.
@end ifclear
The following information was last updated on @value{last-update-news}:
@heading In @code{egcs} 1.2 (versus 1.1.2):
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
Fix @code{g77} so it no longer crashes when compiling Fix @code{g77} so it no longer crashes when compiling
I/O statements using keywords that define @code{INTEGER} values, I/O statements using keywords that define @code{INTEGER} values,
...@@ -71,10 +161,13 @@ such as @samp{IOSTAT=@var{j}}, ...@@ -71,10 +161,13 @@ such as @samp{IOSTAT=@var{j}},
where @var{j} is other than default @code{INTEGER} where @var{j} is other than default @code{INTEGER}
(such as @code{INTEGER*2}). (such as @code{INTEGER*2}).
Instead, it issues a diagnostic. Instead, it issues a diagnostic.
@end ifclear
@ifclear USERVISONLY
@item @item
The @samp{-ax} option is now obeyed when compiling Fortran programs. The @samp{-ax} option is now obeyed when compiling Fortran programs.
(It is passed to the @file{f771} driver.) (It is passed to the @file{f771} driver.)
@end ifclear
@item @item
Source file names with the suffixes @samp{.FOR} and @samp{.FPP} Source file names with the suffixes @samp{.FOR} and @samp{.FPP}
...@@ -89,19 +182,26 @@ of catching references to the implementations of these intrinsics ...@@ -89,19 +182,26 @@ of catching references to the implementations of these intrinsics
using the @samp{EXTERNAL} mechanism using the @samp{EXTERNAL} mechanism
(which would avoid the new warnings). (which would avoid the new warnings).
@ifset DOC-G77
@xref{Year 2000 (Y2K) Problems}, for more information. @xref{Year 2000 (Y2K) Problems}, for more information.
@end ifset
@ifclear USERVISONLY
@item @item
@code{g77} now warns about a reference to a function @code{g77} now warns about a reference to a function
when the corresponding @emph{subsequent} function program unit when the corresponding @emph{subsequent} function program unit
disagrees with the reference concerning the type of the function. disagrees with the reference concerning the type of the function.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve documentation and indexing, Improve documentation and indexing,
including information on Year 2000 (Y2K) compliance. including information on Year 2000 (Y2K) compliance.
@end ifclear
@end itemize @end itemize
@heading In 0.5.24 and @code{egcs} 1.1.2 (versus 0.5.23 and 1.1.1): @heading In 0.5.24 and @code{egcs} 1.1.2 (versus 0.5.23 and 1.1.1):
@ifclear USERVISONLY
@itemize @bullet @itemize @bullet
@item @item
Fix the @code{IDate} Intrinsic (VXT) Fix the @code{IDate} Intrinsic (VXT)
...@@ -109,10 +209,10 @@ so the returned year is in the documented, non-Y2K-compliant range ...@@ -109,10 +209,10 @@ so the returned year is in the documented, non-Y2K-compliant range
of 0--99, of 0--99,
instead of being returned as 100 in the year 2000. instead of being returned as 100 in the year 2000.
@ifnothtml @ifset DOC-G77
@xref{IDate Intrinsic (VXT)}, @xref{IDate Intrinsic (VXT)},
for more information. for more information.
@end ifnothtml @end ifset
@item @item
Fix the @samp{Date_and_Time} intrinsic (in @code{libg2c}) Fix the @samp{Date_and_Time} intrinsic (in @code{libg2c})
...@@ -127,8 +227,10 @@ in @var{SArray}(7). ...@@ -127,8 +227,10 @@ in @var{SArray}(7).
@item @item
Improve documentation. Improve documentation.
@end itemize @end itemize
@end ifclear
@heading In 0.5.24 and @code{egcs} 1.1.1 (versus 0.5.23 and 1.1): @heading In 0.5.24 and @code{egcs} 1.1.1 (versus 0.5.23 and 1.1):
@ifclear USERVISONLY
@itemize @bullet @itemize @bullet
@item @item
Fix @code{libg2c} so it performs an implicit @code{ENDFILE} operation Fix @code{libg2c} so it performs an implicit @code{ENDFILE} operation
...@@ -156,20 +258,26 @@ better on some systems ...@@ -156,20 +258,26 @@ better on some systems
on @samp{if} constructs on @samp{if} constructs
for the completion code to be set properly). for the completion code to be set properly).
@end itemize @end itemize
@end ifclear
@heading In @code{egcs} 1.1 (versus 0.5.24): @heading In @code{egcs} 1.1 (versus 0.5.24):
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash compiling code Fix @code{g77} crash compiling code
containing the construct @samp{CMPLX(0.)} or similar. containing the construct @samp{CMPLX(0.)} or similar.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash Fix @code{g77} crash
(or apparently infinite run-time) (or apparently infinite run-time)
when compiling certain complicated expressions when compiling certain complicated expressions
involving @code{COMPLEX} arithmetic involving @code{COMPLEX} arithmetic
(especially multiplication). (especially multiplication).
@end ifclear
@ifclear USERVISONLY
@cindex DNRM2 @cindex DNRM2
@cindex stack, 387 coprocessor @cindex stack, 387 coprocessor
@cindex Intel x86 @cindex Intel x86
...@@ -183,6 +291,7 @@ the @samp{DNRM2} routine. ...@@ -183,6 +291,7 @@ the @samp{DNRM2} routine.
The x87 coprocessor stack was being The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO} mismanaged in cases involving assigned @code{GOTO}
and @code{ASSIGN}. and @code{ASSIGN}.
@end ifclear
@cindex alignment @cindex alignment
@cindex double-precision performance @cindex double-precision performance
...@@ -200,6 +309,7 @@ or given initial values via @code{DATA}. ...@@ -200,6 +309,7 @@ or given initial values via @code{DATA}.
@c 1998-09-01: egcs-1.1 released. @c 1998-09-01: egcs-1.1 released.
@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3): @heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3):
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
Fix bugs in the @code{libU77} intrinsic @samp{HostNm} Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
that wrote one byte beyond the end of its @samp{CHARACTER} that wrote one byte beyond the end of its @samp{CHARACTER}
...@@ -207,7 +317,9 @@ argument, ...@@ -207,7 +317,9 @@ argument,
and in the @code{libU77} intrinsics and in the @code{libU77} intrinsics
@samp{GMTime} and @samp{LTime} @samp{GMTime} and @samp{LTime}
that overwrote their arguments. that overwrote their arguments.
@end ifclear
@ifclear USERVISONLY
@item @item
Assumed arrays with negative bounds Assumed arrays with negative bounds
(such as @samp{REAL A(-1:*)}) (such as @samp{REAL A(-1:*)})
...@@ -218,7 +330,9 @@ different sizes than integers. ...@@ -218,7 +330,9 @@ different sizes than integers.
This bug is not known to have existed in any This bug is not known to have existed in any
recent version of @code{gcc}. recent version of @code{gcc}.
It was introduced in an early release of @code{egcs}. It was introduced in an early release of @code{egcs}.
@end ifclear
@ifclear USERVISONLY
@item @item
Valid combinations of @code{EXTERNAL}, Valid combinations of @code{EXTERNAL},
passing that external as a dummy argument passing that external as a dummy argument
...@@ -227,14 +341,19 @@ and, in a subsequent program unit, ...@@ -227,14 +341,19 @@ and, in a subsequent program unit,
referencing that external as referencing that external as
an external function with a different type an external function with a different type
no longer crash @code{g77}. no longer crash @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{CASE DEFAULT} no longer crashes @code{g77}. @code{CASE DEFAULT} no longer crashes @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item @item
The @samp{-Wunused} option no longer issues a spurious The @samp{-Wunused} option no longer issues a spurious
warning about the ``master'' procedure generated by warning about the ``master'' procedure generated by
@code{g77} for procedures containing @code{ENTRY} statements. @code{g77} for procedures containing @code{ENTRY} statements.
@end ifclear
@item @item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
...@@ -267,6 +386,7 @@ that have their own (non-Fortran) @code{main()} routine ...@@ -267,6 +386,7 @@ that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library. when @code{libf2c} (now @code{libg2c}) is a shared library.
@ifclear USERVISONLY
@item @item
@code{g77} no longer installs the @file{f77} command @code{g77} no longer installs the @file{f77} command
and @file{f77.1} man page and @file{f77.1} man page
...@@ -274,7 +394,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy, ...@@ -274,7 +394,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f77-install-ok} file exists even if the @file{f77-install-ok} file exists
in the source or build directory. in the source or build directory.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{g77} no longer installs the @file{libf2c.a} library @code{g77} no longer installs the @file{libf2c.a} library
and @file{f2c.h} include file and @file{f2c.h} include file
...@@ -282,7 +404,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy, ...@@ -282,7 +404,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist
in the source or build directory. in the source or build directory.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item @item
The @file{libf2c.a} library produced by @code{g77} has been The @file{libf2c.a} library produced by @code{g77} has been
renamed to @file{libg2c.a}. renamed to @file{libg2c.a}.
...@@ -292,7 +416,9 @@ This allows system administrators and users to choose which ...@@ -292,7 +416,9 @@ This allows system administrators and users to choose which
version of the @code{libf2c} library from @code{netlib} they version of the @code{libf2c} library from @code{netlib} they
wish to use on a case-by-case basis. wish to use on a case-by-case basis.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item @item
The @file{f2c.h} include (header) file produced by @code{g77} The @file{f2c.h} include (header) file produced by @code{g77}
has been renamed to @file{g2c.h}. has been renamed to @file{g2c.h}.
...@@ -302,6 +428,7 @@ This allows system administrators and users to choose which ...@@ -302,6 +428,7 @@ This allows system administrators and users to choose which
version of the include file from @code{netlib} they version of the include file from @code{netlib} they
wish to use on a case-by-case basis. wish to use on a case-by-case basis.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@item @item
The @code{g77} command now expects the run-time library The @code{g77} command now expects the run-time library
...@@ -309,17 +436,21 @@ to be named @code{libg2c.a} instead of @code{libf2c.a}, ...@@ -309,17 +436,21 @@ to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up. installed as part of the same @code{g77} version is picked up.
@ifclear USERVISONLY
@item @item
During the configuration and build process, During the configuration and build process,
@code{g77} creates subdirectories it needs only as it @code{g77} creates subdirectories it needs only as it
needs them. needs them.
Other cleaning up of the configuration and build process Other cleaning up of the configuration and build process
has been performed as well. has been performed as well.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{install-info} now used to update the directory of @code{install-info} now used to update the directory of
Info documentation to contain an entry for @code{g77} Info documentation to contain an entry for @code{g77}
(during installation). (during installation).
@end ifclear
@item @item
Some diagnostics have been changed from warnings to errors, Some diagnostics have been changed from warnings to errors,
...@@ -330,41 +461,53 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and ...@@ -330,41 +461,53 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements, @code{WRITE} statements,
and about truncations of various sorts of constants. and about truncations of various sorts of constants.
@ifclear USERVISONLY
@item @item
Improve compilation of @code{FORMAT} expressions so that Improve compilation of @code{FORMAT} expressions so that
a null byte is appended to the last operand if it a null byte is appended to the last operand if it
is a constant. is a constant.
This provides a cleaner run-time diagnostic as provided This provides a cleaner run-time diagnostic as provided
by @code{libf2c} for statements like @samp{PRINT '(I1', 42}. by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve documentation and indexing. Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item @item
The upgrade to @code{libf2c} as of 1998-06-18 The upgrade to @code{libf2c} as of 1998-06-18
should fix a variety of problems, including should fix a variety of problems, including
those involving some uses of the @samp{T} format those involving some uses of the @samp{T} format
specifier, and perhaps some build (porting) problems specifier, and perhaps some build (porting) problems
as well. as well.
@end ifclear
@end itemize @end itemize
@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23): @heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23):
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
@code{g77} no longer produces incorrect code @code{g77} no longer produces incorrect code
and initial values and initial values
for @samp{EQUIVALENCE} and @samp{COMMON} for @samp{EQUIVALENCE} and @samp{COMMON}
aggregates that, due to ``unnatural'' ordering of members aggregates that, due to ``unnatural'' ordering of members
vis-a-vis their types, require initial padding. vis-a-vis their types, require initial padding.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{g77} no longer crashes when compiling code @code{g77} no longer crashes when compiling code
containing specification statements such as containing specification statements such as
@samp{INTEGER(KIND=7) PTR}. @samp{INTEGER(KIND=7) PTR}.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{g77} no longer crashes when compiling code @code{g77} no longer crashes when compiling code
such as @samp{J = SIGNAL(1, 2)}. such as @samp{J = SIGNAL(1, 2)}.
@end ifclear
@item @item
@code{g77} now treats @samp{%LOC(@var{expr})} and @code{g77} now treats @samp{%LOC(@var{expr})} and
...@@ -411,13 +554,30 @@ The F90 @samp{System_Clock} intrinsic allows ...@@ -411,13 +554,30 @@ The F90 @samp{System_Clock} intrinsic allows
the optional arguments (except for the @samp{Count} the optional arguments (except for the @samp{Count}
argument) to be omitted. argument) to be omitted.
@ifclear USERVISONLY
@item @item
Upgrade to @code{libf2c} as of 1998-06-18. Upgrade to @code{libf2c} as of 1998-06-18.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve documentation and indexing. Improve documentation and indexing.
@end ifclear
@end itemize @end itemize
@ifset DOC-NEWS
@heading In previous versions:
Information on previous versions is not provided
in this @file{@value{path-g77}/NEWS} file,
to keep it short.
See @file{@value{path-g77}/news.texi},
or any of its other derivations
(Info, HTML, dvi forms)
for such information.
@end ifset
@ifclear DOC-NEWS
@c 1998-05-20: 0.5.23 released. @c 1998-05-20: 0.5.23 released.
@heading In 0.5.23 (versus 0.5.22): @heading In 0.5.23 (versus 0.5.22):
@itemize @bullet @itemize @bullet
...@@ -428,16 +588,6 @@ version 0.5.22 of @code{g77}, due to using the ...@@ -428,16 +588,6 @@ version 0.5.22 of @code{g77}, due to using the
it to fix a few bugs and improve performance in a it to fix a few bugs and improve performance in a
few cases. few cases.
@ifhtml
See the page on Fortran news
@end ifhtml
@ifnothtml
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
@end ifnothtml
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version Features that have been dropped from this version
of @code{g77} due to their being implemented of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc} via @code{g77}-specific patches to the @code{gcc}
...@@ -477,10 +627,13 @@ applying to stack-allocated data ...@@ -477,10 +627,13 @@ applying to stack-allocated data
as well as statically-allocate data. as well as statically-allocate data.
@end itemize @end itemize
@ifclear USERVISONLY
Note that the @file{gcc/f/gbe/} subdirectory has been removed Note that the @file{gcc/f/gbe/} subdirectory has been removed
from this distribution as a result of @code{g77} no longer from this distribution as a result of @code{g77} no longer
including patches for the @code{gcc} back end. including patches for the @code{gcc} back end.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix bugs in the @code{libU77} intrinsic @samp{HostNm} Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
that wrote one byte beyond the end of its @samp{CHARACTER} that wrote one byte beyond the end of its @samp{CHARACTER}
...@@ -488,22 +641,26 @@ argument, ...@@ -488,22 +641,26 @@ argument,
and in the @code{libU77} intrinsics and in the @code{libU77} intrinsics
@samp{GMTime} and @samp{LTime} @samp{GMTime} and @samp{LTime}
that overwrote their arguments. that overwrote their arguments.
@end ifclear
@item @item
Support @code{gcc} version 2.8, Support @code{gcc} version 2.8,
and remove support for prior versions of @code{gcc}. and remove support for prior versions of @code{gcc}.
@cindex -@w{}-driver option @cindex -@w{}-driver option
@cindex g77 options, -@w{}-driver @cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver @cindex options, -@w{}-driver
@item @item
Remove support for the @samp{--driver} option, Remove support for the @samp{--driver} option,
as @code{g77} now does all the driving, as @code{g77} now does all the driving,
just like @code{gcc}. just like @code{gcc}.
@ifclear USERVISONLY
@item @item
@code{CASE DEFAULT} no longer crashes @code{g77}. @code{CASE DEFAULT} no longer crashes @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item @item
Valid combinations of @code{EXTERNAL}, Valid combinations of @code{EXTERNAL},
passing that external as a dummy argument passing that external as a dummy argument
...@@ -512,7 +669,9 @@ and, in a subsequent program unit, ...@@ -512,7 +669,9 @@ and, in a subsequent program unit,
referencing that external as referencing that external as
an external function with a different type an external function with a different type
no longer crash @code{g77}. no longer crash @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{g77} no longer installs the @file{f77} command @code{g77} no longer installs the @file{f77} command
and @file{f77.1} man page and @file{f77.1} man page
...@@ -520,7 +679,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy, ...@@ -520,7 +679,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f77-install-ok} file exists even if the @file{f77-install-ok} file exists
in the source or build directory. in the source or build directory.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{g77} no longer installs the @file{libf2c.a} library @code{g77} no longer installs the @file{libf2c.a} library
and @file{f2c.h} include file and @file{f2c.h} include file
...@@ -528,7 +689,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy, ...@@ -528,7 +689,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist
in the source or build directory. in the source or build directory.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item @item
The @file{libf2c.a} library produced by @code{g77} has been The @file{libf2c.a} library produced by @code{g77} has been
renamed to @file{libg2c.a}. renamed to @file{libg2c.a}.
...@@ -538,7 +701,9 @@ This allows system administrators and users to choose which ...@@ -538,7 +701,9 @@ This allows system administrators and users to choose which
version of the @code{libf2c} library from @code{netlib} they version of the @code{libf2c} library from @code{netlib} they
wish to use on a case-by-case basis. wish to use on a case-by-case basis.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item @item
The @file{f2c.h} include (header) file produced by @code{g77} The @file{f2c.h} include (header) file produced by @code{g77}
has been renamed to @file{g2c.h}. has been renamed to @file{g2c.h}.
...@@ -548,6 +713,7 @@ This allows system administrators and users to choose which ...@@ -548,6 +713,7 @@ This allows system administrators and users to choose which
version of the include file from @code{netlib} they version of the include file from @code{netlib} they
wish to use on a case-by-case basis. wish to use on a case-by-case basis.
See the installation documentation for more information. See the installation documentation for more information.
@end ifclear
@item @item
The @code{g77} command now expects the run-time library The @code{g77} command now expects the run-time library
...@@ -555,10 +721,12 @@ to be named @code{libg2c.a} instead of @code{libf2c.a}, ...@@ -555,10 +721,12 @@ to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up. installed as part of the same @code{g77} version is picked up.
@ifclear USERVISONLY
@item @item
The @samp{-Wunused} option no longer issues a spurious The @samp{-Wunused} option no longer issues a spurious
warning about the ``master'' procedure generated by warning about the ``master'' procedure generated by
@code{g77} for procedures containing @code{ENTRY} statements. @code{g77} for procedures containing @code{ENTRY} statements.
@end ifclear
@item @item
@code{g77}'s version of @code{libf2c} separates out @code{g77}'s version of @code{libf2c} separates out
...@@ -572,6 +740,7 @@ that have their own (non-Fortran) @code{main()} routine ...@@ -572,6 +740,7 @@ that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library. when @code{libf2c} (now @code{libg2c}) is a shared library.
@ifclear USERVISONLY
@item @item
During the configuration and build process, During the configuration and build process,
@code{g77} creates subdirectories it needs only as it @code{g77} creates subdirectories it needs only as it
...@@ -579,11 +748,14 @@ needs them, thus avoiding unnecessary creation of, for example, ...@@ -579,11 +748,14 @@ needs them, thus avoiding unnecessary creation of, for example,
@file{stage1/f/runtime} when doing a non-bootstrap build. @file{stage1/f/runtime} when doing a non-bootstrap build.
Other cleaning up of the configuration and build process Other cleaning up of the configuration and build process
has been performed as well. has been performed as well.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{install-info} now used to update the directory of @code{install-info} now used to update the directory of
Info documentation to contain an entry for @code{g77} Info documentation to contain an entry for @code{g77}
(during installation). (during installation).
@end ifclear
@item @item
Some diagnostics have been changed from warnings to errors, Some diagnostics have been changed from warnings to errors,
...@@ -594,9 +766,12 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and ...@@ -594,9 +766,12 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements, @code{WRITE} statements,
and about truncations of various sorts of constants. and about truncations of various sorts of constants.
@ifclear USERVISONLY
@item @item
Improve documentation and indexing. Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item @item
Upgrade to @code{libf2c} as of 1998-04-20. Upgrade to @code{libf2c} as of 1998-04-20.
...@@ -604,17 +779,21 @@ This should fix a variety of problems, including ...@@ -604,17 +779,21 @@ This should fix a variety of problems, including
those involving some uses of the @samp{T} format those involving some uses of the @samp{T} format
specifier, and perhaps some build (porting) problems specifier, and perhaps some build (porting) problems
as well. as well.
@end ifclear
@end itemize @end itemize
@c 1998-03-16: 0.5.22 released. @c 1998-03-16: 0.5.22 released.
@heading In 0.5.22 (versus 0.5.21): @heading In 0.5.22 (versus 0.5.21):
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
Fix code generation for iterative @code{DO} loops that Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable, have one or more references to the iteration variable,
or to aliases of it, in their control expressions. or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly. For example, @samp{DO 10 J=2,J} now is compiled correctly.
@end ifclear
@ifclear USERVISONLY
@cindex DNRM2 @cindex DNRM2
@cindex stack, 387 coprocessor @cindex stack, 387 coprocessor
@cindex Intel x86 @cindex Intel x86
...@@ -628,49 +807,66 @@ the @samp{DNRM2} routine. ...@@ -628,49 +807,66 @@ the @samp{DNRM2} routine.
The x87 coprocessor stack was being The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO} mismanaged in cases involving assigned @code{GOTO}
and @code{ASSIGN}. and @code{ASSIGN}.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{DTime} intrinsic so as not to truncate Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems). results to integer values (on some systems).
@end ifclear
@item @item
Fix @code{Signal} intrinsic so it offers portable Fix @code{Signal} intrinsic so it offers portable
support for 64-bit systems (such as Digital Alphas support for 64-bit systems (such as Digital Alphas
running GNU/Linux). running GNU/Linux).
@ifclear USERVISONLY
@item @item
Fix run-time crash involving @code{NAMELIST} on 64-bit Fix run-time crash involving @code{NAMELIST} on 64-bit
machines such as Alphas. machines such as Alphas.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} version of @code{libf2c} so it no longer Fix @code{g77} version of @code{libf2c} so it no longer
produces a spurious @samp{I/O recursion} diagnostic at run time produces a spurious @samp{I/O recursion} diagnostic at run time
when an I/O operation (such as @samp{READ *,I}) is interrupted when an I/O operation (such as @samp{READ *,I}) is interrupted
in a manner that causes the program to be terminated in a manner that causes the program to be terminated
via the @samp{f_exit} routine (such as via @kbd{C-c}). via the @samp{f_exit} routine (such as via @kbd{C-c}).
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash triggered by @code{CASE} statement with Fix @code{g77} crash triggered by @code{CASE} statement with
an omitted lower or upper bound. an omitted lower or upper bound.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash compiling references to @code{CPU_Time} Fix @code{g77} crash compiling references to @code{CPU_Time}
intrinsic. intrinsic.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash Fix @code{g77} crash
(or apparently infinite run-time) (or apparently infinite run-time)
when compiling certain complicated expressions when compiling certain complicated expressions
involving @code{COMPLEX} arithmetic involving @code{COMPLEX} arithmetic
(especially multiplication). (especially multiplication).
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash on statements such as Fix @code{g77} crash on statements such as
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where @samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
@samp{Z} is @code{DOUBLE COMPLEX}. @samp{Z} is @code{DOUBLE COMPLEX}.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix a @code{g++} crash. Fix a @code{g++} crash.
@end ifclear
@item @item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
...@@ -681,9 +877,11 @@ Fix @code{g77} @samp{-g} option so procedures that ...@@ -681,9 +877,11 @@ Fix @code{g77} @samp{-g} option so procedures that
use @samp{ENTRY} can be stepped through, line by line, use @samp{ENTRY} can be stepped through, line by line,
in @code{gdb}. in @code{gdb}.
@ifclear USERVISONLY
@item @item
Fix a profiling-related bug in @code{gcc} back end for Fix a profiling-related bug in @code{gcc} back end for
Intel x86 architecture. Intel x86 architecture.
@end ifclear
@item @item
Allow any @code{REAL} argument to intrinsics Allow any @code{REAL} argument to intrinsics
...@@ -706,9 +904,11 @@ C programs. ...@@ -706,9 +904,11 @@ C programs.
Support for @code{restrict} is now more like support Support for @code{restrict} is now more like support
for @code{complex}. for @code{complex}.
@ifclear USERVISONLY
@item @item
Fix @samp{-fpedantic} to not reject procedure invocations Fix @samp{-fpedantic} to not reject procedure invocations
such as @samp{I=J()} and @samp{CALL FOO()}. such as @samp{I=J()} and @samp{CALL FOO()}.
@end ifclear
@item @item
Fix @samp{-fugly-comma} to affect invocations of Fix @samp{-fugly-comma} to affect invocations of
...@@ -720,6 +920,7 @@ arguments to intrinsics, as in @samp{I=MAX(3,4,,)}. ...@@ -720,6 +920,7 @@ arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options. @samp{-fbadu77-intrinsics-*} options.
@ifclear USERVISONLY
@item @item
Improve diagnostic messages from @code{libf2c} Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the so it is more likely that the printing of the
...@@ -732,45 +933,63 @@ format string specified via a @code{FORMAT} statement. ...@@ -732,45 +933,63 @@ format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1} anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.) by printing @samp{(I)garbage} as the format string.)
@end ifclear
@ifclear USERVISONLY
@item @item
Improve compilation of @code{FORMAT} expressions so that Improve compilation of @code{FORMAT} expressions so that
a null byte is appended to the last operand if it a null byte is appended to the last operand if it
is a constant. is a constant.
This provides a cleaner run-time diagnostic as provided This provides a cleaner run-time diagnostic as provided
by @code{libf2c} for statements like @samp{PRINT '(I1', 42}. by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix various crashes involving code with diagnosed errors. Fix various crashes involving code with diagnosed errors.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix cross-compilation bug when configuring @code{libf2c}. Fix cross-compilation bug when configuring @code{libf2c}.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve diagnostics. Improve diagnostics.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve documentation and indexing. Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item @item
Upgrade to @code{libf2c} as of 1997-09-23. Upgrade to @code{libf2c} as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers 64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux). (such as Digital Alpha running GNU/Linux).
@end ifclear
@end itemize @end itemize
@c 1998-03-15: egcs-1.0.2 released. @c 1998-03-15: egcs-1.0.2 released.
@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1): @heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1):
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash triggered by @code{CASE} statement with Fix @code{g77} crash triggered by @code{CASE} statement with
an omitted lower or upper bound. an omitted lower or upper bound.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} crash on statements such as Fix @code{g77} crash on statements such as
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where @samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
@samp{Z} is @code{DOUBLE COMPLEX}. @samp{Z} is @code{DOUBLE COMPLEX}.
@end ifclear
@ifclear USERVISONLY
@cindex ELF support @cindex ELF support
@cindex support, ELF @cindex support, ELF
@cindex -fPIC option @cindex -fPIC option
...@@ -779,16 +998,21 @@ Fix @code{g77} crash on statements such as ...@@ -779,16 +998,21 @@ Fix @code{g77} crash on statements such as
Fix @samp{-fPIC} (such as compiling for ELF targets) Fix @samp{-fPIC} (such as compiling for ELF targets)
on the Intel x86 architecture target on the Intel x86 architecture target
so invalid assembler code is no longer produced. so invalid assembler code is no longer produced.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @samp{-fpedantic} to not reject procedure invocations Fix @samp{-fpedantic} to not reject procedure invocations
such as @samp{I=J()} and @samp{CALL FOO()}. such as @samp{I=J()} and @samp{CALL FOO()}.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @samp{-fugly-comma} to affect invocations of Fix @samp{-fugly-comma} to affect invocations of
only external procedures. only external procedures.
Restore rejection of gratuitous trailing omitted Restore rejection of gratuitous trailing omitted
arguments to intrinsics, as in @samp{I=MAX(3,4,,)}. arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
@end ifclear
@item @item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
...@@ -797,11 +1021,13 @@ Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and ...@@ -797,11 +1021,13 @@ Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@c 1998-01-02: egcs-1.0.1 released. @c 1998-01-02: egcs-1.0.1 released.
@heading In @code{egcs} 1.0.1 (versus @code{egcs} 1.0): @heading In @code{egcs} 1.0.1 (versus @code{egcs} 1.0):
@ifclear USERVISONLY
@itemize @bullet @itemize @bullet
@item @item
Fix run-time crash involving @code{NAMELIST} on 64-bit Fix run-time crash involving @code{NAMELIST} on 64-bit
machines such as Alphas. machines such as Alphas.
@end itemize @end itemize
@end ifclear
@c 1997-12-03: egcs-1.0 released. @c 1997-12-03: egcs-1.0 released.
@heading In @code{egcs} 1.0 (versus 0.5.21): @heading In @code{egcs} 1.0 (versus 0.5.21):
...@@ -815,16 +1041,6 @@ due to using the ...@@ -815,16 +1041,6 @@ due to using the
it to fix a few bugs and improve performance in a it to fix a few bugs and improve performance in a
few cases. few cases.
@ifhtml
See the page on Fortran news
@end ifhtml
@ifnothtml
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
@end ifnothtml
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version Features that have been dropped from this version
of @code{g77} due to their being implemented of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc} via @code{g77}-specific patches to the @code{gcc}
...@@ -844,21 +1060,28 @@ applying to stack-allocated data ...@@ -844,21 +1060,28 @@ applying to stack-allocated data
as well as statically-allocate data. as well as statically-allocate data.
@end itemize @end itemize
@ifclear USERVISONLY
Note that the @file{gcc/f/gbe/} subdirectory has been removed Note that the @file{gcc/f/gbe/} subdirectory has been removed
from this distribution as a result of @code{g77} from this distribution as a result of @code{g77}
being fully integrated with being fully integrated with
the @code{egcs} variant of the @code{gcc} back end. the @code{egcs} variant of the @code{gcc} back end.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix code generation for iterative @code{DO} loops that Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable, have one or more references to the iteration variable,
or to aliases of it, in their control expressions. or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly. For example, @samp{DO 10 J=2,J} now is compiled correctly.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{DTime} intrinsic so as not to truncate Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems). results to integer values (on some systems).
@end ifclear
@ifclear USERVISONLY
@item @item
@c Toon Moene discovered these. @c Toon Moene discovered these.
Some Fortran code, miscompiled Some Fortran code, miscompiled
...@@ -870,12 +1093,15 @@ It is believed that a C function known to miscompile ...@@ -870,12 +1093,15 @@ It is believed that a C function known to miscompile
on that configuration on that configuration
when using the @samp{-O2 -funroll-loops} options when using the @samp{-O2 -funroll-loops} options
also is now compiled correctly. also is now compiled correctly.
@end ifclear
@ifclear USERVISONLY
@item @item
Remove support for non-@code{egcs} versions of @code{gcc}. Remove support for non-@code{egcs} versions of @code{gcc}.
@end ifclear
@cindex -@w{}-driver option @cindex -@w{}-driver option
@cindex g77 options, -@w{}-driver @cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver @cindex options, -@w{}-driver
@item @item
Remove support for the @samp{--driver} option, Remove support for the @samp{--driver} option,
...@@ -886,6 +1112,7 @@ just like @code{gcc}. ...@@ -886,6 +1112,7 @@ just like @code{gcc}.
Allow any numeric argument to intrinsics Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}. @code{Int2} and @code{Int8}.
@ifclear USERVISONLY
@item @item
Improve diagnostic messages from @code{libf2c} Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the so it is more likely that the printing of the
...@@ -898,17 +1125,21 @@ format string specified via a @code{FORMAT} statement. ...@@ -898,17 +1125,21 @@ format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1} anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.) by printing @samp{(I)garbage} as the format string.)
@end ifclear
@ifclear USERVISONLY
@item @item
Upgrade to @code{libf2c} as of 1997-09-23. Upgrade to @code{libf2c} as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers 64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux). (such as Digital Alpha running GNU/Linux).
@end ifclear
@end itemize @end itemize
@c 1997-09-09: 0.5.21 released. @c 1997-09-09: 0.5.21 released.
@heading In 0.5.21: @heading In 0.5.21:
@itemize @bullet @itemize @bullet
@ifclear USERVISONLY
@item @item
Fix a code-generation bug introduced by 0.5.20 Fix a code-generation bug introduced by 0.5.20
caused by loop unrolling (by specifying caused by loop unrolling (by specifying
...@@ -916,7 +1147,9 @@ caused by loop unrolling (by specifying ...@@ -916,7 +1147,9 @@ caused by loop unrolling (by specifying
This bug afflicted all code compiled by This bug afflicted all code compiled by
version 2.7.2.2.f.2 of @code{gcc} (C, C++, version 2.7.2.2.f.2 of @code{gcc} (C, C++,
Fortran, and so on). Fortran, and so on).
@end ifclear
@ifclear USERVISONLY
@item @item
Fix a code-generation bug manifested when Fix a code-generation bug manifested when
combining local @code{EQUIVALENCE} with a combining local @code{EQUIVALENCE} with a
...@@ -925,7 +1158,9 @@ the first executable statement (or is ...@@ -925,7 +1158,9 @@ the first executable statement (or is
treated as an executable-context statement treated as an executable-context statement
as a result of using the @samp{-fpedantic} as a result of using the @samp{-fpedantic}
option). option).
@end ifclear
@ifclear USERVISONLY
@item @item
Fix a compiler crash that occured when an Fix a compiler crash that occured when an
integer division by a constant zero is detected. integer division by a constant zero is detected.
...@@ -934,27 +1169,44 @@ the @code{gcc} back end issues a warning about such a case. ...@@ -934,27 +1169,44 @@ the @code{gcc} back end issues a warning about such a case.
This bug afflicted all code compiled by This bug afflicted all code compiled by
version 2.7.2.2.f.2 of @code{gcc} (C, C++, version 2.7.2.2.f.2 of @code{gcc} (C, C++,
Fortran, and so on). Fortran, and so on).
@end ifclear
@ifset USERVISONLY
@item
When the @samp{-W} option is specified, @code{gcc}, @code{g77},
and other GNU compilers that incorporate the @code{gcc}
back end as modified by @code{g77}, issue
a warning about integer division by constant zero.
@end ifset
@ifclear USERVISONLY
@item @item
Fix a compiler crash that occurred in some cases Fix a compiler crash that occurred in some cases
of procedure inlining. of procedure inlining.
(Such cases became more frequent in 0.5.20.) (Such cases became more frequent in 0.5.20.)
@end ifclear
@ifclear USERVISONLY
@item @item
Fix a compiler crash resulting from using @code{DATA} Fix a compiler crash resulting from using @code{DATA}
or similar to initialize a @code{COMPLEX} variable or or similar to initialize a @code{COMPLEX} variable or
array to zero. array to zero.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix compiler crashes involving use of @code{AND}, @code{OR}, Fix compiler crashes involving use of @code{AND}, @code{OR},
or @code{XOR} intrinsics. or @code{XOR} intrinsics.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix compiler bug triggered when using a @code{COMMON} Fix compiler bug triggered when using a @code{COMMON}
or @code{EQUIVALENCE} variable or @code{EQUIVALENCE} variable
as the target of an @code{ASSIGN} as the target of an @code{ASSIGN}
or assigned-@code{GOTO} statement. or assigned-@code{GOTO} statement.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix compiler crashes due to using the name of a some Fix compiler crashes due to using the name of a some
non-standard intrinsics (such as @samp{FTELL} or non-standard intrinsics (such as @samp{FTELL} or
...@@ -962,6 +1214,7 @@ non-standard intrinsics (such as @samp{FTELL} or ...@@ -962,6 +1214,7 @@ non-standard intrinsics (such as @samp{FTELL} or
or common block. or common block.
Such dual use of a name in a program is allowed by Such dual use of a name in a program is allowed by
the standard. the standard.
@end ifclear
@c @code{g77}'s version of @code{libf2c} has been modified @c @code{g77}'s version of @code{libf2c} has been modified
@c so that the external names of library's procedures do not @c so that the external names of library's procedures do not
...@@ -988,16 +1241,20 @@ the standard. ...@@ -988,16 +1241,20 @@ the standard.
@c the new @code{libf2c} routine @samp{fputc_}, which is @c the new @code{libf2c} routine @samp{fputc_}, which is
@c simply a jacket routine that calls @samp{G77_fputc_0}. @c simply a jacket routine that calls @samp{G77_fputc_0}.
@ifclear USERVISONLY
@item @item
Place automatic arrays on the stack, even if Place automatic arrays on the stack, even if
@code{SAVE} or the @samp{-fno-automatic} option @code{SAVE} or the @samp{-fno-automatic} option
is in effect. is in effect.
This avoids a compiler crash in some cases. This avoids a compiler crash in some cases.
@end ifclear
@ifclear USERVISONLY
@item @item
The @samp{-malign-double} option now reliably aligns The @samp{-malign-double} option now reliably aligns
@code{DOUBLE PRECISION} optimally on Pentium and @code{DOUBLE PRECISION} optimally on Pentium and
Pentium Pro architectures (586 and 686 in @code{gcc}). Pentium Pro architectures (586 and 686 in @code{gcc}).
@end ifclear
@item @item
New option @samp{-Wno-globals} disables warnings New option @samp{-Wno-globals} disables warnings
...@@ -1027,41 +1284,53 @@ This option also disables inlining of global procedures, ...@@ -1027,41 +1284,53 @@ This option also disables inlining of global procedures,
to avoid compiler crashes resulting from coding errors to avoid compiler crashes resulting from coding errors
that these diagnostics normally would identify. that these diagnostics normally would identify.
@ifclear USERVISONLY
@item @item
Diagnose cases where a reference to a procedure Diagnose cases where a reference to a procedure
disagrees with the type of that procedure, or disagrees with the type of that procedure, or
where disagreements about the number or nature where disagreements about the number or nature
of arguments exist. of arguments exist.
This avoids a compiler crash. This avoids a compiler crash.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix parsing bug whereby @code{g77} rejected a Fix parsing bug whereby @code{g77} rejected a
second initialization specification immediately second initialization specification immediately
following the first's closing @samp{/} without following the first's closing @samp{/} without
an intervening comma in a @code{DATA} statement, an intervening comma in a @code{DATA} statement,
and the second specification was an implied-DO list. and the second specification was an implied-DO list.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve performance of the @code{gcc} back end so Improve performance of the @code{gcc} back end so
certain complicated expressions involving @code{COMPLEX} certain complicated expressions involving @code{COMPLEX}
arithmetic (especially multiplication) don't appear to arithmetic (especially multiplication) don't appear to
take forever to compile. take forever to compile.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix a couple of profiling-related bugs in @code{gcc} Fix a couple of profiling-related bugs in @code{gcc}
back end. back end.
@end ifclear
@ifclear USERVISONLY
@item @item
Integrate GNU Ada's (GNAT's) changes to the back end, Integrate GNU Ada's (GNAT's) changes to the back end,
which consist almost entirely of bug fixes. which consist almost entirely of bug fixes.
These fixes are circa version 3.10p of GNAT. These fixes are circa version 3.10p of GNAT.
@end ifclear
@ifclear USERVISONLY
@item @item
Include some other @code{gcc} fixes that seem useful in Include some other @code{gcc} fixes that seem useful in
@code{g77}'s version of @code{gcc}. @code{g77}'s version of @code{gcc}.
(See @file{gcc/ChangeLog} for details---compare it (See @file{gcc/ChangeLog} for details---compare it
to that file in the vanilla @code{gcc-2.7.2.3.tar.gz} to that file in the vanilla @code{gcc-2.7.2.3.tar.gz}
distribution.) distribution.)
@end ifclear
@item @item
Fix @code{libU77} routines that accept file and other names Fix @code{libU77} routines that accept file and other names
...@@ -1079,11 +1348,13 @@ that have embedded blanks, commas, and so on. ...@@ -1079,11 +1348,13 @@ that have embedded blanks, commas, and so on.
Fix @code{SIGNAL} intrinsic so it accepts an Fix @code{SIGNAL} intrinsic so it accepts an
optional third @samp{Status} argument. optional third @samp{Status} argument.
@ifclear USERVISONLY
@item @item
Fix @code{IDATE()} intrinsic subroutine (VXT form) Fix @code{IDATE()} intrinsic subroutine (VXT form)
so it accepts arguments in the correct order. so it accepts arguments in the correct order.
Documentation fixed accordingly, and for Documentation fixed accordingly, and for
@code{GMTIME()} and @code{LTIME()} as well. @code{GMTIME()} and @code{LTIME()} as well.
@end ifclear
@item @item
Make many changes to @code{libU77} intrinsics to Make many changes to @code{libU77} intrinsics to
...@@ -1097,42 +1368,57 @@ return @code{INTEGER(KIND=2)} values, ...@@ -1097,42 +1368,57 @@ return @code{INTEGER(KIND=2)} values,
and placing functions that are intended to perform and placing functions that are intended to perform
side effects in a new intrinsic group, @code{badu77}. side effects in a new intrinsic group, @code{badu77}.
@ifclear USERVISONLY
@item @item
Improve @code{libU77} so it is more portable. Improve @code{libU77} so it is more portable.
@end ifclear
@item @item
Add options @samp{-fbadu77-intrinsics-delete}, Add options @samp{-fbadu77-intrinsics-delete},
@samp{-fbadu77-intrinsics-hide}, and so on. @samp{-fbadu77-intrinsics-hide}, and so on.
@ifclear USERVISONLY
@item @item
Fix crashes involving diagnosed or invalid code. Fix crashes involving diagnosed or invalid code.
@end ifclear
@ifclear USERVISONLY
@item @item
@code{g77} and @code{gcc} now do a somewhat better @code{g77} and @code{gcc} now do a somewhat better
job detecting and diagnosing arrays that are too job detecting and diagnosing arrays that are too
large to handle before these cause diagnostics large to handle before these cause diagnostics
during the assembler or linker phase, a compiler during the assembler or linker phase, a compiler
crash, or generation of incorrect code. crash, or generation of incorrect code.
@end ifclear
@ifclear USERVISONLY
@item @item
Make some fixes to alias analysis code. Make some fixes to alias analysis code.
@end ifclear
@ifclear USERVISONLY
@item @item
Add support for @code{restrict} keyword in @code{gcc} Add support for @code{restrict} keyword in @code{gcc}
front end. front end.
@end ifclear
@ifclear USERVISONLY
@item @item
Support @code{gcc} version 2.7.2.3 Support @code{gcc} version 2.7.2.3
(modified by @code{g77} into version 2.7.2.3.f.1), (modified by @code{g77} into version 2.7.2.3.f.1),
and remove and remove
support for prior versions of @code{gcc}. support for prior versions of @code{gcc}.
@end ifclear
@ifclear USERVISONLY
@item @item
Incorporate GNAT's patches to the @code{gcc} back Incorporate GNAT's patches to the @code{gcc} back
end into @code{g77}'s, so GNAT users do not need end into @code{g77}'s, so GNAT users do not need
to apply GNAT's patches to build both GNAT and @code{g77} to apply GNAT's patches to build both GNAT and @code{g77}
from the same source tree. from the same source tree.
@end ifclear
@ifclear USERVISONLY
@item @item
Modify @code{make} rules and related code so that Modify @code{make} rules and related code so that
generation of Info documentation doesn't require generation of Info documentation doesn't require
...@@ -1140,6 +1426,7 @@ compilation using @code{gcc}. ...@@ -1140,6 +1426,7 @@ compilation using @code{gcc}.
Now, any ANSI C compiler should be adequate to Now, any ANSI C compiler should be adequate to
produce the @code{g77} documentation (in particular, produce the @code{g77} documentation (in particular,
the tables of intrinsics) from scratch. the tables of intrinsics) from scratch.
@end ifclear
@item @item
Add @code{INT2} and @code{INT8} intrinsics. Add @code{INT2} and @code{INT8} intrinsics.
...@@ -1154,46 +1441,64 @@ Add @code{ALARM} intrinsic. ...@@ -1154,46 +1441,64 @@ Add @code{ALARM} intrinsic.
@code{CTIME} intrinsic now accepts any @code{INTEGER} @code{CTIME} intrinsic now accepts any @code{INTEGER}
argument, not just @code{INTEGER(KIND=2)}. argument, not just @code{INTEGER(KIND=2)}.
@ifclear USERVISONLY
@item @item
Warn when explicit type declaration disagrees with Warn when explicit type declaration disagrees with
the type of an intrinsic invocation. the type of an intrinsic invocation.
@end ifclear
@ifclear USERVISONLY
@item @item
Support @samp{*f771} entry in @code{gcc} @file{specs} file. Support @samp{*f771} entry in @code{gcc} @file{specs} file.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix typo in @code{make} rule @samp{g77-cross}, used only for Fix typo in @code{make} rule @samp{g77-cross}, used only for
cross-compiling. cross-compiling.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{libf2c} build procedure to re-archive library Fix @code{libf2c} build procedure to re-archive library
if previous attempt to archive was interrupted. if previous attempt to archive was interrupted.
@end ifclear
@ifclear USERVISONLY
@item @item
Change @code{gcc} to unroll loops only during the last Change @code{gcc} to unroll loops only during the last
invocation (of as many as two invocations) of loop invocation (of as many as two invocations) of loop
optimization. optimization.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve handling of @samp{-fno-f2c} so that code that Improve handling of @samp{-fno-f2c} so that code that
attempts to pass an intrinsic as an actual argument, attempts to pass an intrinsic as an actual argument,
such as @samp{CALL FOO(ABS)}, is rejected due to the fact such as @samp{CALL FOO(ABS)}, is rejected due to the fact
that the run-time-library routine is, effectively, that the run-time-library routine is, effectively,
compiled with @samp{-ff2c} in effect. compiled with @samp{-ff2c} in effect.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} driver to recognize @samp{-fsyntax-only} Fix @code{g77} driver to recognize @samp{-fsyntax-only}
as an option that inhibits linking, just like @samp{-c} or as an option that inhibits linking, just like @samp{-c} or
@samp{-S}, and to recognize and properly handle the @samp{-S}, and to recognize and properly handle the
@samp{-nostdlib}, @samp{-M}, @samp{-MM}, @samp{-nodefaultlibs}, @samp{-nostdlib}, @samp{-M}, @samp{-MM}, @samp{-nodefaultlibs},
and @samp{-Xlinker} options. and @samp{-Xlinker} options.
@end ifclear
@ifclear USERVISONLY
@item @item
Upgrade to @code{libf2c} as of 1997-08-16. Upgrade to @code{libf2c} as of 1997-08-16.
@end ifclear
@ifclear USERVISONLY
@item @item
Modify @code{libf2c} to consistently and clearly diagnose Modify @code{libf2c} to consistently and clearly diagnose
recursive I/O (at run time). recursive I/O (at run time).
@end ifclear
@item @item
@code{g77} driver now prints version information (such as produced @code{g77} driver now prints version information (such as produced
...@@ -1204,26 +1509,36 @@ The @samp{.r} suffix now designates a Ratfor source file, ...@@ -1204,26 +1509,36 @@ The @samp{.r} suffix now designates a Ratfor source file,
to be preprocessed via the @code{ratfor} command, available to be preprocessed via the @code{ratfor} command, available
separately. separately.
@ifclear USERVISONLY
@item @item
Fix some aspects of how @code{gcc} determines what kind of Fix some aspects of how @code{gcc} determines what kind of
system is being configured and what kinds are supported. system is being configured and what kinds are supported.
For example, GNU Linux/Alpha ELF systems now are directly For example, GNU Linux/Alpha ELF systems now are directly
supported. supported.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve diagnostics. Improve diagnostics.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve documentation and indexing. Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item @item
Include all pertinent files for @code{libf2c} that come Include all pertinent files for @code{libf2c} that come
from @code{netlib.bell-labs.com}; give any such files from @code{netlib.bell-labs.com}; give any such files
that aren't quite accurate in @code{g77}'s version of that aren't quite accurate in @code{g77}'s version of
@code{libf2c} the suffix @samp{.netlib}. @code{libf2c} the suffix @samp{.netlib}.
@end ifclear
@ifclear USERVISONLY
@item @item
Reserve @code{INTEGER(KIND=0)} for future use. Reserve @code{INTEGER(KIND=0)} for future use.
@end ifclear
@end itemize @end itemize
@c 1997-02-28: 0.5.20 released. @c 1997-02-28: 0.5.20 released.
...@@ -1234,13 +1549,18 @@ The @samp{-fno-typeless-boz} option is now the default. ...@@ -1234,13 +1549,18 @@ The @samp{-fno-typeless-boz} option is now the default.
This option specifies that non-decimal-radix This option specifies that non-decimal-radix
constants using the prefixed-radix form (such as @samp{Z'1234'}) constants using the prefixed-radix form (such as @samp{Z'1234'})
are to be interpreted as @code{INTEGER} constants. are to be interpreted as @code{INTEGER(KIND=1)} constants.
Specify @samp{-ftypeless-boz} to cause such Specify @samp{-ftypeless-boz} to cause such
constants to be interpreted as typeless. constants to be interpreted as typeless.
(Version 0.5.19 introduced @samp{-fno-typeless-boz} and (Version 0.5.19 introduced @samp{-fno-typeless-boz} and
its inverse.) its inverse.)
@ifset DOC-G77
@xref{Fortran Dialect Options,,Options Controlling Fortran Dialect},
for information on the @samp{-ftypeless-boz} option.
@end ifset
@item @item
Options @samp{-ff90-intrinsics-enable} and Options @samp{-ff90-intrinsics-enable} and
@samp{-fvxt-intrinsics-enable} now are the @samp{-fvxt-intrinsics-enable} now are the
...@@ -1265,6 +1585,10 @@ of @code{libf2c} when built with @samp{ALWAYS_FLUSH} defined, ...@@ -1265,6 +1585,10 @@ of @code{libf2c} when built with @samp{ALWAYS_FLUSH} defined,
you will have to modify @code{libf2c} accordingly before you will have to modify @code{libf2c} accordingly before
building it from this and future versions of @code{g77}. building it from this and future versions of @code{g77}.
@ifset DOC-G77
@xref{Output Assumed To Flush}, for more information.
@end ifset
@item @item
Dave Love's implementation of @code{libU77} has been Dave Love's implementation of @code{libU77} has been
added to the version of @code{libf2c} distributed with added to the version of @code{libf2c} distributed with
...@@ -1276,6 +1600,11 @@ as intrinsics. ...@@ -1276,6 +1600,11 @@ as intrinsics.
New option @samp{-fvxt} specifies that the New option @samp{-fvxt} specifies that the
source file is written in VXT Fortran, instead of GNU Fortran. source file is written in VXT Fortran, instead of GNU Fortran.
@ifset DOC-G77
@xref{VXT Fortran}, for more information on the constructs
recognized when the @samp{-fvxt} option is specified.
@end ifset
@item @item
The @samp{-fvxt-not-f90} option has been deleted, The @samp{-fvxt-not-f90} option has been deleted,
along with its inverse, @samp{-ff90-not-vxt}. along with its inverse, @samp{-ff90-not-vxt}.
...@@ -1285,6 +1614,10 @@ re-read the pertinent documentation to determine which ...@@ -1285,6 +1614,10 @@ re-read the pertinent documentation to determine which
options, if any, are appropriate for compiling your options, if any, are appropriate for compiling your
code with this version of @code{g77}. code with this version of @code{g77}.
@ifset DOC-G77
@xref{Other Dialects}, for more information.
@end ifset
@item @item
The @samp{-fugly} option now issues a warning, as it The @samp{-fugly} option now issues a warning, as it
likely will be removed in a future version. likely will be removed in a future version.
...@@ -1300,23 +1633,35 @@ The @samp{-fugly-assumed} option, introduced in ...@@ -1300,23 +1633,35 @@ The @samp{-fugly-assumed} option, introduced in
version 0.5.19, has been changed to version 0.5.19, has been changed to
better accommodate old and new code. better accommodate old and new code.
@ifset DOC-G77
@xref{Ugly Assumed-Size Arrays}, for more information.
@end ifset
@ifclear USERVISONLY
@item @item
Make a number of fixes to the @code{g77} front end and Make a number of fixes to the @code{g77} front end and
the @code{gcc} back end to better support Alpha (AXP) the @code{gcc} back end to better support Alpha (AXP)
machines. machines.
This includes providing at least one bug-fix to the This includes providing at least one bug-fix to the
@code{gcc} back end for Alphas. @code{gcc} back end for Alphas.
@end ifclear
@item @item
Related to supporting Alpha (AXP) machines, the @code{LOC()} Related to supporting Alpha (AXP) machines, the @code{LOC()}
intrinsic and @code{%LOC()} construct now return intrinsic and @code{%LOC()} construct now return
values of integer type that is the same width (holds values of @code{INTEGER(KIND=0)} type,
the same number of bits) as the pointer type on the as defined by the GNU Fortran language.
machine.
On most machines, this won't make a difference, whereas This type is wide enough
on Alphas, the type these constructs return is (holds the same number of bits)
@code{INTEGER*8} instead of the more common @code{INTEGER*4}. as the character-pointer type on the machine.
On most machines, this won't make a difference,
whereas, on Alphas and other systems with 64-bit pointers,
the @code{INTEGER(KIND=0)} type is equivalent to @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
instead of the more common @code{INTEGER(KIND=1)}
(often referred to as @code{INTEGER*4}).
@item @item
Emulate @code{COMPLEX} arithmetic in the @code{g77} front Emulate @code{COMPLEX} arithmetic in the @code{g77} front
...@@ -1325,19 +1670,24 @@ end, to avoid bugs in @code{complex} support in the ...@@ -1325,19 +1670,24 @@ end, to avoid bugs in @code{complex} support in the
New option @samp{-fno-emulate-complex} New option @samp{-fno-emulate-complex}
causes @code{g77} to revert the 0.5.19 behavior. causes @code{g77} to revert the 0.5.19 behavior.
@ifclear USERVISONLY
@item @item
Fix bug whereby @samp{REAL A(1)}, for example, caused Fix bug whereby @samp{REAL A(1)}, for example, caused
a compiler crash if @samp{-fugly-assumed} was in effect a compiler crash if @samp{-fugly-assumed} was in effect
and @var{A} was a local (automatic) array. and @var{A} was a local (automatic) array.
That case is no longer affected by the new That case is no longer affected by the new
handling of @samp{-fugly-assumed}. handling of @samp{-fugly-assumed}.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix @code{g77} command driver so that @samp{g77 -o foo.f} Fix @code{g77} command driver so that @samp{g77 -o foo.f}
no longer deletes @file{foo.f} before issuing other no longer deletes @file{foo.f} before issuing other
diagnostics, and so the @samp{-x} option is properly diagnostics, and so the @samp{-x} option is properly
handled. handled.
@end ifclear
@ifclear USERVISONLY
@item @item
Enable inlining of subroutines and functions by the @code{gcc} Enable inlining of subroutines and functions by the @code{gcc}
back end. back end.
...@@ -1345,6 +1695,7 @@ This works as it does for @code{gcc} itself---program units ...@@ -1345,6 +1695,7 @@ This works as it does for @code{gcc} itself---program units
may be inlined for invocations that follow them in the same may be inlined for invocations that follow them in the same
program unit, as long as the appropriate compile-time program unit, as long as the appropriate compile-time
options are specified. options are specified.
@end ifclear
@item @item
Dummy arguments are no longer assumed to potentially alias Dummy arguments are no longer assumed to potentially alias
...@@ -1362,10 +1713,19 @@ New options @samp{-falias-check}, @samp{-fargument-alias}, ...@@ -1362,10 +1713,19 @@ New options @samp{-falias-check}, @samp{-fargument-alias},
and @samp{-fno-argument-noalias-global} control the and @samp{-fno-argument-noalias-global} control the
way @code{g77} handles potential aliasing. way @code{g77} handles potential aliasing.
@ifset DOC-G77
@xref{Aliasing Assumed To Work}, for detailed information on why the
new defaults might result in some programs no longer working the way they
did when compiled by previous versions of @code{g77}.
@end ifset
@ifclear USERVISONLY
@item @item
The @code{CONJG()} and @code{DCONJG()} intrinsics now The @code{CONJG()} and @code{DCONJG()} intrinsics now
are compiled in-line. are compiled in-line.
@end ifclear
@ifclear USERVISONLY
@item @item
The bug-fix for 0.5.19.1 has been re-done. The bug-fix for 0.5.19.1 has been re-done.
The @code{g77} compiler has been changed back to The @code{g77} compiler has been changed back to
...@@ -1390,6 +1750,7 @@ particular, if the linker complains about unresolved ...@@ -1390,6 +1750,7 @@ particular, if the linker complains about unresolved
references to names like @samp{g77__fvers__}---that references to names like @samp{g77__fvers__}---that
strongly suggests your installation has an obsolete strongly suggests your installation has an obsolete
version of @code{libf2c}.) version of @code{libf2c}.)
@end ifclear
@item @item
New option @samp{-fugly-assign} specifies that the New option @samp{-fugly-assign} specifies that the
...@@ -1399,17 +1760,26 @@ values assigned by both statements @samp{I = 3} and ...@@ -1399,17 +1760,26 @@ values assigned by both statements @samp{I = 3} and
(Normally, @code{g77} uses a separate memory location (Normally, @code{g77} uses a separate memory location
to hold assigned statement labels.) to hold assigned statement labels.)
@ifset DOC-G77
@xref{Ugly Assigned Labels}, for more information.
@end ifset
@item @item
@code{FORMAT} and @code{ENTRY} statements now are allowed to @code{FORMAT} and @code{ENTRY} statements now are allowed to
precede @code{IMPLICIT NONE} statements. precede @code{IMPLICIT NONE} statements.
@ifclear USERVISONLY
@item @item
Produce diagnostic for unsupported @code{SELECT CASE} on Produce diagnostic for unsupported @code{SELECT CASE} on
@code{CHARACTER} type, instead of crashing, at compile time. @code{CHARACTER} type, instead of crashing, at compile time.
@end ifclear
@ifclear USERVISONLY
@item @item
Fix crashes involving diagnosed or invalid code. Fix crashes involving diagnosed or invalid code.
@end ifclear
@ifclear USERVISONLY
@item @item
Change approach to building @code{libf2c} archive Change approach to building @code{libf2c} archive
(@file{libf2c.a}) so that members are added to it (@file{libf2c.a}) so that members are added to it
...@@ -1418,27 +1788,36 @@ an already-built @code{g77} doesn't need to have write ...@@ -1418,27 +1788,36 @@ an already-built @code{g77} doesn't need to have write
access to the build tree (whereas the user doing the access to the build tree (whereas the user doing the
build might not have access to install new software build might not have access to install new software
on the system). on the system).
@end ifclear
@ifclear USERVISONLY
@item @item
Support @code{gcc} version 2.7.2.2 Support @code{gcc} version 2.7.2.2
(modified by @code{g77} into version 2.7.2.2.f.2), (modified by @code{g77} into version 2.7.2.2.f.2),
and remove and remove
support for prior versions of @code{gcc}. support for prior versions of @code{gcc}.
@end ifclear
@ifclear USERVISONLY
@item @item
Upgrade to @code{libf2c} as of 1997-02-08, and Upgrade to @code{libf2c} as of 1997-02-08, and
fix up some of the build procedures. fix up some of the build procedures.
@end ifclear
@ifclear USERVISONLY
@item @item
Improve general build procedures for @code{g77}, Improve general build procedures for @code{g77},
fixing minor bugs (such as deletion of any file fixing minor bugs (such as deletion of any file
named @file{f771} in the parent directory of @code{gcc/}). named @file{f771} in the parent directory of @code{gcc/}).
@end ifclear
@item @item
Enable full support of @code{INTEGER*8} available in Enable full support of @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
available in
@code{libf2c} and @file{f2c.h} so that @code{f2c} users @code{libf2c} and @file{f2c.h} so that @code{f2c} users
may make full use of its features via the @code{g77} may make full use of its features via the @code{g77}
version of @file{f2c.h} and the @code{INTEGER*8} version of @file{f2c.h} and the @code{INTEGER(KIND=2)}
support routines in the @code{g77} version of @code{libf2c}. support routines in the @code{g77} version of @code{libf2c}.
@item @item
...@@ -1471,12 +1850,17 @@ complex type other than @code{COMPLEX}), unless ...@@ -1471,12 +1850,17 @@ complex type other than @code{COMPLEX}), unless
or new @samp{-fugly-complex} option, in conjunction with or new @samp{-fugly-complex} option, in conjunction with
@samp{-fnot-f90}, specifies @code{f2c} interpretation. @samp{-fnot-f90}, specifies @code{f2c} interpretation.
@ifclear USERVISONLY
@item @item
Make improvements to diagnostics. Make improvements to diagnostics.
@end ifclear
@ifclear USERVISONLY
@item @item
Speed up compiler a bit. Speed up compiler a bit.
@end ifclear
@ifclear USERVISONLY
@item @item
Improvements to documentation and indexing, including Improvements to documentation and indexing, including
a new chapter containing information on one, later a new chapter containing information on one, later
...@@ -1486,8 +1870,18 @@ up automatically via a message in the diagnostic itself. ...@@ -1486,8 +1870,18 @@ up automatically via a message in the diagnostic itself.
(Hence the menu item @samp{M} for the node (Hence the menu item @samp{M} for the node
@samp{Diagnostics} in the top-level menu of @samp{Diagnostics} in the top-level menu of
the Info documentation.) the Info documentation.)
@end ifclear
@end itemize @end itemize
@ifclear DOC-OLDNEWS
@heading In previous versions:
Information on previous versions is archived
in @file{@value{path-g77}/news.texi}
following the test of the @samp{DOC-OLDNEWS} macro.
@end ifclear
@ifset DOC-OLDNEWS
@c 1997-02-01: 0.5.19.1 released. @c 1997-02-01: 0.5.19.1 released.
@heading In 0.5.19.1: @heading In 0.5.19.1:
@itemize @bullet @itemize @bullet
...@@ -2088,8 +2482,7 @@ macros defined in @file{gcc/f/target.h} and used in places like ...@@ -2088,8 +2482,7 @@ macros defined in @file{gcc/f/target.h} and used in places like
Add warning to be printed for each invocation of the compiler Add warning to be printed for each invocation of the compiler
if the target machine @code{INTEGER}, @code{REAL}, or @code{LOGICAL} size if the target machine @code{INTEGER}, @code{REAL}, or @code{LOGICAL} size
is not 32 bits, is not 32 bits,
since @code{g77} is known to not work well for such cases (to be since @code{g77} is known to not work well for such cases.
fixed in Version 0.6---@pxref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet}).
@item @item
Lots of new documentation (though work is still needed to put it into Lots of new documentation (though work is still needed to put it into
...@@ -2378,3 +2771,6 @@ Generate better code for some kinds of array references. ...@@ -2378,3 +2771,6 @@ Generate better code for some kinds of array references.
Speed up lexing somewhat (this makes the compilation phase noticeably Speed up lexing somewhat (this makes the compilation phase noticeably
faster). faster).
@end itemize @end itemize
@end ifset
@end ifclear
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@c %**start of header @c %**start of header
@setfilename NEW @setfilename NEWS
@set NEWSONLY
@c %**end of header @c %**end of header
@c The immediately following lines apply to the NEWS file @c This tells news.texi that it's generating just the NEWS file.
@c which is generated using this file. @set DOC-NEWS
NOTE: This file is automatically generated from the files
`news0.texi' and `news.texi'. `NEWS' is *not* a source file,
although it is normally included within source distributions.
This file lists recent changes to the GNU Fortran compiler.
Copyright (C) 1995-1999 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter News About GNU Fortran
@include news.texi @include news.texi
@bye @bye
@c DEVELOPMENT is set to indicate an in-development version,
@c as compared to a release version. When making a release
@c (e.g. a release branch in the CVS repository for egcs),
@c clear this and set the version information correctly.
@set DEVELOPMENT
@set version-g77 0.5.24
@set version-egcs 1.2
@c EGCS-G77 is set to indicate this is the EGCS version of g77.
@set EGCS-G77
@ifclear EGCS-G77
@c FSF-G77 is set to indicate this is the FSF version of g77.
@set FSF-G77
@end ifclear
@ifset EGCS-G77
@set email-general egcs@@egcs.cygnus.com
@set email-bugs egcs-bugs@@egcs.cygnus.com
@set path-g77 egcs/gcc/f
@set path-libf2c egcs/libf2c
@set which-g77 EGCS-@value{version-egcs}
@end ifset
@ifset FSF-G77
@set email-general fortran@@gnu.org
@set email-bugs fortran@@gnu.org
@set path-g77 gcc/f
@set path-libf2c gcc/f/runtime
@set which-g77 FSF-@value{version-g77}
@end ifset
@set email-burley craig@@jcb-sc.com
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment