summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/f/news.texi
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/f/news.texi')
-rw-r--r--contrib/gcc/f/news.texi933
1 files changed, 780 insertions, 153 deletions
diff --git a/contrib/gcc/f/news.texi b/contrib/gcc/f/news.texi
index 3885137..a4b6d68 100644
--- a/contrib/gcc/f/news.texi
+++ b/contrib/gcc/f/news.texi
@@ -2,18 +2,64 @@
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
-@c The text of this file appears in the file BUGS
+@c The text of this file appears in the file NEWS
@c in the G77 distribution, as well as in the G77 manual.
-@c 1999-03-11
+@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
-@ifclear NEWSONLY
+@set last-update-news 1999-07-08
+
+@include root.texi
+
+@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
@chapter News About GNU Fortran
-@end ifclear
@cindex versions, recent
@cindex recent versions
+@end ifclear
+@end ifset
+@ifclear USERVISONLY
Changes made to recent versions of GNU Fortran are listed
below, with the most recent version first.
@@ -45,6 +91,7 @@ Miscellany
This order is not strict---for example, some items
involve a combination of these elements.
+@end ifclear
Note that two variants of @code{g77} are tracked below.
The @code{egcs} variant is described vis-a-vis
@@ -58,35 +105,315 @@ though this can make getting a complete picture
of what a particular @code{egcs} version contains
somewhat more difficult.
+@ifset DOC-G77
+For information on bugs in the @value{which-g77} version of @code{g77},
+see @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 up-to-date mainline version
+(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}.
+@uref{http://www.gnu.org/software/gcc/onlinedocs/g77_news.html}.
+@end ifclear
+
+The following information was last updated on @value{last-update-news}:
+
+@heading In 0.5.25, @code{GCC} 2.95 (@code{EGCS} 1.2) versus @code{EGCS} 1.1.2:
+@itemize @bullet
+@ifclear USERVISONLY
+@item
+@code{g77} no longer generates bad code for assignments,
+or other conversions,
+of @code{REAL} or @code{COMPLEX} constant expressions
+to type @code{INTEGER(KIND=2)}
+(often referred to as @code{INTEGER*8}).
+
+For example, @samp{INTEGER*8 J; J = 4E10} now works as documented.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+@code{g77} no longer truncates @code{INTEGER(KIND=2)}
+(usually @code{INTEGER*8})
+subscript expressions when evaluating array references
+on systems with pointers widers than @code{INTEGER(KIND=1)}
+(such as Alphas).
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+@code{g77} no longer generates bad code
+for an assignment to a @code{COMPLEX} variable or array
+that partially overlaps one or more of the sources
+of the same assignment
+(a very rare construction).
+It now assigns through a temporary,
+in cases where such partial overlap is deemed possible.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+@code{libg2c} (@code{libf2c}) no longer loses track
+of the file being worked on
+during a @code{BACKSPACE} operation.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+@code{libg2c} (@code{libf2c}) fixes a bug whereby
+input to a @code{NAMELIST} read involving a repeat count,
+such as @samp{K(5)=10*3},
+was not properly handled by @code{libf2c}.
+The first item was written to @samp{K(5)},
+but the remaining nine were written elsewhere (still within the array),
+not necessarily starting at @samp{K(6)}.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+@c Tim Prince reported this, regarding the TEST_FPU benchmark.
+Automatic arrays now seem to be working on HP-UX systems.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+The @code{Date} intrinsic now returns the correct result
+on big-endian systems.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+Fix @code{g77} so it no longer crashes when compiling
+I/O statements using keywords that define @code{INTEGER} values,
+such as @samp{IOSTAT=@var{j}},
+where @var{j} is other than default @code{INTEGER}
+(such as @code{INTEGER*2}).
+Instead, it issues a diagnostic.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+Fix @code{g77} so it properly handles @samp{DATA A/@var{rpt}*@var{val}/},
+where @var{rpt} is not default @code{INTEGER}, such as @code{INTEGER*2},
+instead of producing a spurious diagnostic.
+Also fix @samp{DATA (A(I),I=1,N)},
+where @samp{N} is not default @code{INTEGER}
+to work instead of crashing @code{g77}.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+The @samp{-ax} option is now obeyed when compiling Fortran programs.
+(It is passed to the @file{f771} driver.)
+@end ifclear
+
+@item
+The new @samp{-fbounds-check} option
+causes @code{g77} to compile run-time bounds checks
+of array subscripts, as well as of substring start and end points.
+
+@item
+@code{libg2c} now supports building as multilibbed library,
+which provides better support for systems
+that require options such as @samp{-mieee}
+to work properly.
+
+@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.
+
+@item
+The order of arguments to the @emph{subroutine} forms of the
+@code{CTime}, @code{DTime}, @code{ETime}, and @code{TtyNam}
+intrinsics has been swapped.
+The argument serving as the returned value
+for the corresponding function forms
+now is the @emph{second} argument,
+making these consistent with the other subroutine forms
+of @code{libU77} intrinsics.
+
+@item
+@code{g77} now warns about a reference to an intrinsic
+that has an interface that is not Year 2000 (Y2K) compliant.
+Also, @code{libg2c} has been changed to increase the likelihood
+of catching references to the implementations of these intrinsics
+using the @code{EXTERNAL} mechanism
+(which would avoid the new warnings).
+
+@ifset DOC-G77
+@xref{Year 2000 (Y2K) Problems}, for more information.
+@end ifset
+
+@ifclear USERVISONLY
+@item
+@code{g77} now warns about a reference to a function
+when the corresponding @emph{subsequent} function program unit
+disagrees with the reference concerning the type of the function.
+@end ifclear
+
+@item
+@samp{-fno-emulate-complex} is now the default option.
+This should result in improved performance
+of code that uses the @code{COMPLEX} data type.
+
+@cindex alignment
+@cindex double-precision performance
+@cindex -malign-double
+@item
+The @samp{-malign-double} option
+now reliably aligns @emph{all} double-precision variables and arrays
+on Intel x86 targets.
+
+@ifclear USERVISONLY
+@item
+Even without the @samp{-malign-double} option,
+@code{g77} reliably aligns local double-precision variables
+that are not in @code{EQUIVALENCE} areas
+and not @code{SAVE}'d.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+@code{g77} now open-codes (``inlines'') division of @code{COMPLEX} operands
+instead of generating a run-time call to
+the @code{libf2c} routines @code{c_div} or @code{z_div},
+unless the @samp{-Os} option is specified.
+@end ifclear
+
+@item
+@code{g77} no longer generates code to maintain @code{errno},
+a C-language concept,
+when performing operations such as the @code{SqRt} intrinsic.
+
+@ifclear USERVISONLY
+@item
+@code{g77} developers can temporarily use
+the @samp{-fflatten-arrays} option
+to compare how the compiler handles code generation
+using C-like constructs as compared to the
+Fortran-like method constructs normally used.
+@end ifclear
-@heading In 0.5.24 and @code{egcs} 1.1.2 (versus 0.5.23 and 1.1.1):
+@ifclear USERVISONLY
+@item
+A substantial portion of the @code{g77} front end's code-generation component
+was rewritten.
+It now generates code using facilities more robustly supported
+by the @code{gcc} back end.
+One effect of this rewrite is that some codes no longer produce
+a spurious ``label @var{lab} used before containing binding contour''
+message.
+@end ifclear
+
+@item
+Support for the @samp{-fugly} option has been removed.
+
+@ifclear USERVISONLY
+@item
+Improve documentation and indexing,
+including information on Year 2000 (Y2K) compliance,
+and providing more information on internals of the front end.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+Upgrade to @code{libf2c} as of 1999-05-10.
+@end ifclear
+@end itemize
+
+@heading In 0.5.24 versus 0.5.23:
+
+There is no @code{g77} version 0.5.24 at this time,
+or planned.
+0.5.24 is the version number designated for bug fixes and,
+perhaps, some new features added,
+to 0.5.23.
+Version 0.5.23 requires @code{gcc} 2.8.1,
+as 0.5.24 was planned to require.
+
+Due to @code{EGCS} becoming @code{GCC}
+(which is now an acronym for ``GNU Compiler Collection''),
+and @code{EGCS} 1.2 becoming officially designated @code{GCC} 2.95,
+there seems to be no need for an actual 0.5.24 release.
+
+To reduce the confusion already resulting from use of 0.5.24
+to designate @code{g77} versions within @code{EGCS} versions 1.0 and 1.1,
+as well as in versions of @code{g77} documentation and notices
+during that period,
+``mainline'' @code{g77} version numbering resumes
+at 0.5.25 with @code{GCC} 2.95 (@code{EGCS} 1.2),
+skipping over 0.5.24 as a placeholder version number.
+
+To repeat, there is no @code{g77} 0.5.24, but there is now a 0.5.25.
+Please remain calm and return to your keypunch units.
+
+@c 1999-03-15: EGCS 1.1.2 released.
+@heading In @code{EGCS} 1.1.2 versus @code{EGCS} 1.1.1:
+@ifclear USERVISONLY
@itemize @bullet
@item
-Fix the @code{IDate} Intrinsic (VXT)
+Fix the @code{IDate} intrinsic (VXT) (in @code{libg2c})
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.
+@ifset DOC-G77
+@xref{IDate Intrinsic (VXT)},
+for more information.
+@end ifset
+
@item
-Fix the @samp{Date_and_Time} intrinsic (in @code{libg2c})
+Fix the @code{Date_and_Time} intrinsic (in @code{libg2c})
to return the milliseconds value properly
in @var{Values}(8).
@item
-Fix the @samp{LStat} intrinsic (in @code{libg2c})
+Fix the @code{LStat} intrinsic (in @code{libg2c})
to return device-ID information properly
in @var{SArray}(7).
@item
Improve documentation.
@end itemize
+@end ifclear
-@heading In 0.5.24 and @code{egcs} 1.1.1 (versus 0.5.23 and 1.1):
+@c 1998-12-04: EGCS 1.1.1 released.
+@heading In @code{EGCS} 1.1.1 versus @code{EGCS} 1.1:
+@ifclear USERVISONLY
@itemize @bullet
@item
Fix @code{libg2c} so it performs an implicit @code{ENDFILE} operation
@@ -105,67 +432,31 @@ upon doing any I/O following a direct formatted write.
@item
Fix @code{g77} so it no longer crashes compiling references
-to the @samp{Rand} intrinsic on some systems.
+to the @code{Rand} intrinsic on some systems.
@item
Fix @code{g77} portion of installation process so it works
better on some systems
(those with shells requiring @samp{else true} clauses
-on @samp{if} constructs
+on @code{if} constructs
for the completion code to be set properly).
@end itemize
+@end ifclear
-@heading In @code{egcs} 1.1 (versus 0.5.24):
-@itemize @bullet
-@item
-Fix @code{g77} crash compiling code
-containing the construct @samp{CMPLX(0.)} or similar.
-
-@item
-Fix @code{g77} crash
-(or apparently infinite run-time)
-when compiling certain complicated expressions
-involving @code{COMPLEX} arithmetic
-(especially multiplication).
-
-@cindex DNRM2
-@cindex stack, 387 coprocessor
-@cindex Intel x86
-@cindex -O2
-@item
-Fix a code-generation bug that afflicted
-Intel x86 targets when @samp{-O2} was specified
-compiling, for example, an old version of
-the @samp{DNRM2} routine.
-
-The x87 coprocessor stack was being
-mismanaged in cases involving assigned @code{GOTO}
-and @code{ASSIGN}.
-
-@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
-
-@c 1998-09-01: egcs-1.1 released.
-@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3):
+@c 1998-09-03: EGCS 1.1 released.
+@heading In @code{EGCS} 1.1 versus @code{EGCS} 1.0.3:
@itemize @bullet
+@ifclear USERVISONLY
@item
-Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
-that wrote one byte beyond the end of its @samp{CHARACTER}
+Fix bugs in the @code{libU77} intrinsic @code{HostNm}
+that wrote one byte beyond the end of its @code{CHARACTER}
argument,
and in the @code{libU77} intrinsics
-@samp{GMTime} and @samp{LTime}
+@code{GMTime} and @code{LTime}
that overwrote their arguments.
+@end ifclear
+@ifclear USERVISONLY
@item
Assumed arrays with negative bounds
(such as @samp{REAL A(-1:*)})
@@ -176,7 +467,9 @@ different sizes than integers.
This bug is not known to have existed in any
recent version of @code{gcc}.
It was introduced in an early release of @code{egcs}.
+@end ifclear
+@ifclear USERVISONLY
@item
Valid combinations of @code{EXTERNAL},
passing that external as a dummy argument
@@ -185,14 +478,19 @@ and, in a subsequent program unit,
referencing that external as
an external function with a different type
no longer crash @code{g77}.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{CASE DEFAULT} no longer crashes @code{g77}.
+@end ifclear
+@ifclear USERVISONLY
@item
The @samp{-Wunused} option no longer issues a spurious
warning about the ``master'' procedure generated by
@code{g77} for procedures containing @code{ENTRY} statements.
+@end ifclear
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
@@ -200,7 +498,7 @@ 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,
+use @code{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@item
@@ -225,6 +523,7 @@ 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.
+@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{f77} command
and @file{f77.1} man page
@@ -232,7 +531,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f77-install-ok} file exists
in the source or build directory.
See the installation documentation for more information.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{libf2c.a} library
and @file{f2c.h} include file
@@ -240,7 +541,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist
in the source or build directory.
See the installation documentation for more information.
+@end ifclear
+@ifclear USERVISONLY
@item
The @file{libf2c.a} library produced by @code{g77} has been
renamed to @file{libg2c.a}.
@@ -250,7 +553,9 @@ This allows system administrators and users to choose which
version of the @code{libf2c} library from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
+@end ifclear
+@ifclear USERVISONLY
@item
The @file{f2c.h} include (header) file produced by @code{g77}
has been renamed to @file{g2c.h}.
@@ -260,6 +565,7 @@ This allows system administrators and users to choose which
version of the include file from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
+@end ifclear
@item
The @code{g77} command now expects the run-time library
@@ -267,17 +573,21 @@ 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.
+@ifclear USERVISONLY
@item
During the configuration and build process,
@code{g77} creates subdirectories it needs only as it
needs them.
Other cleaning up of the configuration and build process
has been performed as well.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{install-info} now used to update the directory of
Info documentation to contain an entry for @code{g77}
(during installation).
+@end ifclear
@item
Some diagnostics have been changed from warnings to errors,
@@ -288,41 +598,76 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
+@ifclear USERVISONLY
@item
Improve compilation of @code{FORMAT} expressions so that
a null byte is appended to the last operand if it
is a constant.
This provides a cleaner run-time diagnostic as provided
by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve documentation and indexing.
+@end ifclear
+@ifclear USERVISONLY
@item
The upgrade to @code{libf2c} as of 1998-06-18
should fix a variety of problems, including
-those involving some uses of the @samp{T} format
+those involving some uses of the @code{T} format
specifier, and perhaps some build (porting) problems
as well.
+@end ifclear
@end itemize
-@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23):
+@c 1998-09-03: EGCS 1.1 released.
+@heading In @code{EGCS} 1.1 versus @code{g77} 0.5.23:
@itemize @bullet
+@ifclear USERVISONLY
+@cindex DNRM2
+@cindex stack, 387 coprocessor
+@cindex Intel x86
+@cindex -O2
+@item
+Fix a code-generation bug that afflicted
+Intel x86 targets when @samp{-O2} was specified
+compiling, for example, an old version of
+the @code{DNRM2} routine.
+
+The x87 coprocessor stack was being
+mismanaged in cases involving assigned @code{GOTO}
+and @code{ASSIGN}.
+@end ifclear
+
+@ifclear USERVISONLY
@item
@code{g77} no longer produces incorrect code
and initial values
-for @samp{EQUIVALENCE} and @samp{COMMON}
+for @code{EQUIVALENCE} and @code{COMMON}
aggregates that, due to ``unnatural'' ordering of members
vis-a-vis their types, require initial padding.
+@end ifclear
+@ifclear USERVISONLY
+@item
+Fix @code{g77} crash compiling code
+containing the construct @samp{CMPLX(0.)} or similar.
+@end ifclear
+
+@ifclear USERVISONLY
@item
@code{g77} no longer crashes when compiling code
containing specification statements such as
@samp{INTEGER(KIND=7) PTR}.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{g77} no longer crashes when compiling code
such as @samp{J = SIGNAL(1, 2)}.
+@end ifclear
@item
@code{g77} now treats @samp{%LOC(@var{expr})} and
@@ -337,6 +682,27 @@ Previously, @code{g77} treated these expressions
as denoting special ``pointer'' arguments
for the purposes of filewide analysis.
+@ifclear USERVISONLY
+@item
+Fix @code{g77} crash
+(or apparently infinite run-time)
+when compiling certain complicated expressions
+involving @code{COMPLEX} arithmetic
+(especially multiplication).
+@end ifclear
+
+@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}.
+
@item
The @code{g77} driver now ensures that @samp{-lg2c}
is specified in the link phase prior to any
@@ -353,31 +719,48 @@ in @code{libf2c} (@code{libg2c}).
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.
+supplied with @code{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}.
+@code{COMMON} and @code{EQUIVALENCE}.
@item
-The F90 @samp{Date_and_Time} intrinsic now is
+The F90 @code{Date_and_Time} intrinsic now is
supported.
@item
-The F90 @samp{System_Clock} intrinsic allows
-the optional arguments (except for the @samp{Count}
+The F90 @code{System_Clock} intrinsic allows
+the optional arguments (except for the @code{Count}
argument) to be omitted.
+@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1998-06-18.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve documentation and indexing.
+@end ifclear
@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.
-@heading In 0.5.23 (versus 0.5.22):
+@heading In 0.5.23 versus 0.5.22:
@itemize @bullet
@item
This release contains several regressions against
@@ -386,24 +769,12 @@ version 0.5.22 of @code{g77}, due to using the
it to fix a few bugs and improve performance in a
few cases.
-@ifset last-up-date
-@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
-for information on the known bugs in this version,
-including the regressions.
-@end ifset
-
-@ifset NEWSONLY
-See @file{egcs/gcc/f/BUGS},
-for information on the known bugs in this version,
-including the regressions.
-@end ifset
-
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 --
+@itemize @minus
@item
Support for @code{__restrict__} keyword,
the options @samp{-fargument-alias}, @samp{-fargument-noalias},
@@ -437,33 +808,40 @@ applying to stack-allocated data
as well as statically-allocate data.
@end itemize
+@ifclear USERVISONLY
Note that the @file{gcc/f/gbe/} subdirectory has been removed
from this distribution as a result of @code{g77} no longer
including patches for the @code{gcc} back end.
+@end ifclear
+@ifclear USERVISONLY
@item
-Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
-that wrote one byte beyond the end of its @samp{CHARACTER}
+Fix bugs in the @code{libU77} intrinsic @code{HostNm}
+that wrote one byte beyond the end of its @code{CHARACTER}
argument,
and in the @code{libU77} intrinsics
-@samp{GMTime} and @samp{LTime}
+@code{GMTime} and @code{LTime}
that overwrote their arguments.
+@end ifclear
@item
Support @code{gcc} version 2.8,
and remove support for prior versions of @code{gcc}.
@cindex -@w{}-driver option
-@cindex g77 options, -@w{}-driver
+@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}.
+@ifclear USERVISONLY
@item
@code{CASE DEFAULT} no longer crashes @code{g77}.
+@end ifclear
+@ifclear USERVISONLY
@item
Valid combinations of @code{EXTERNAL},
passing that external as a dummy argument
@@ -472,7 +850,9 @@ and, in a subsequent program unit,
referencing that external as
an external function with a different type
no longer crash @code{g77}.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{f77} command
and @file{f77.1} man page
@@ -480,7 +860,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f77-install-ok} file exists
in the source or build directory.
See the installation documentation for more information.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{libf2c.a} library
and @file{f2c.h} include file
@@ -488,7 +870,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist
in the source or build directory.
See the installation documentation for more information.
+@end ifclear
+@ifclear USERVISONLY
@item
The @file{libf2c.a} library produced by @code{g77} has been
renamed to @file{libg2c.a}.
@@ -498,7 +882,9 @@ This allows system administrators and users to choose which
version of the @code{libf2c} library from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
+@end ifclear
+@ifclear USERVISONLY
@item
The @file{f2c.h} include (header) file produced by @code{g77}
has been renamed to @file{g2c.h}.
@@ -508,6 +894,7 @@ This allows system administrators and users to choose which
version of the include file from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
+@end ifclear
@item
The @code{g77} command now expects the run-time library
@@ -515,10 +902,12 @@ 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.
+@ifclear USERVISONLY
@item
The @samp{-Wunused} option no longer issues a spurious
warning about the ``master'' procedure generated by
@code{g77} for procedures containing @code{ENTRY} statements.
+@end ifclear
@item
@code{g77}'s version of @code{libf2c} separates out
@@ -532,6 +921,7 @@ 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.
+@ifclear USERVISONLY
@item
During the configuration and build process,
@code{g77} creates subdirectories it needs only as it
@@ -539,11 +929,14 @@ needs them, thus avoiding unnecessary creation of, for example,
@file{stage1/f/runtime} when doing a non-bootstrap build.
Other cleaning up of the configuration and build process
has been performed as well.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{install-info} now used to update the directory of
Info documentation to contain an entry for @code{g77}
(during installation).
+@end ifclear
@item
Some diagnostics have been changed from warnings to errors,
@@ -554,27 +947,34 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
+@ifclear USERVISONLY
@item
Improve documentation and indexing.
+@end ifclear
+@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1998-04-20.
This should fix a variety of problems, including
-those involving some uses of the @samp{T} format
+those involving some uses of the @code{T} format
specifier, and perhaps some build (porting) problems
as well.
+@end ifclear
@end itemize
@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
+@ifclear USERVISONLY
@item
Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly.
+@end ifclear
+@ifclear USERVISONLY
@cindex DNRM2
@cindex stack, 387 coprocessor
@cindex Intel x86
@@ -583,54 +983,71 @@ For example, @samp{DO 10 J=2,J} now is compiled correctly.
Fix a code-generation bug that afflicted
Intel x86 targets when @samp{-O2} was specified
compiling, for example, an old version of
-the @samp{DNRM2} routine.
+the @code{DNRM2} routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO}
and @code{ASSIGN}.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems).
+@end ifclear
@item
Fix @code{Signal} intrinsic so it offers portable
support for 64-bit systems (such as Digital Alphas
running GNU/Linux).
+@ifclear USERVISONLY
@item
Fix run-time crash involving @code{NAMELIST} on 64-bit
machines such as Alphas.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} version of @code{libf2c} so it no longer
produces a spurious @samp{I/O recursion} diagnostic at run time
when an I/O operation (such as @samp{READ *,I}) is interrupted
in a manner that causes the program to be terminated
-via the @samp{f_exit} routine (such as via @kbd{C-c}).
+via the @code{f_exit} routine (such as via @kbd{C-c}).
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} crash triggered by @code{CASE} statement with
an omitted lower or upper bound.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} crash compiling references to @code{CPU_Time}
intrinsic.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} crash
(or apparently infinite run-time)
when compiling certain complicated expressions
involving @code{COMPLEX} arithmetic
(especially multiplication).
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} crash on statements such as
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
@samp{Z} is @code{DOUBLE COMPLEX}.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix a @code{g++} crash.
+@end ifclear
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
@@ -638,12 +1055,14 @@ 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,
+use @code{ENTRY} can be stepped through, line by line,
in @code{gdb}.
+@ifclear USERVISONLY
@item
Fix a profiling-related bug in @code{gcc} back end for
Intel x86 architecture.
+@end ifclear
@item
Allow any @code{REAL} argument to intrinsics
@@ -666,9 +1085,11 @@ C programs.
Support for @code{restrict} is now more like support
for @code{complex}.
+@ifclear USERVISONLY
@item
Fix @samp{-fpedantic} to not reject procedure invocations
such as @samp{I=J()} and @samp{CALL FOO()}.
+@end ifclear
@item
Fix @samp{-fugly-comma} to affect invocations of
@@ -680,6 +1101,7 @@ arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
+@ifclear USERVISONLY
@item
Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the
@@ -692,45 +1114,63 @@ format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.)
+@end ifclear
+@ifclear USERVISONLY
@item
Improve compilation of @code{FORMAT} expressions so that
a null byte is appended to the last operand if it
is a constant.
This provides a cleaner run-time diagnostic as provided
by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix various crashes involving code with diagnosed errors.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix cross-compilation bug when configuring @code{libf2c}.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve diagnostics.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve documentation and indexing.
+@end ifclear
+@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux).
+@end ifclear
@end itemize
-@c 1998-03-15: egcs-1.0.2 released.
-@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1):
+@c 1998-03-18: EGCS 1.0.2 released.
+@heading In @code{EGCS} 1.0.2 versus @code{EGCS} 1.0.1:
@itemize @bullet
+@ifclear USERVISONLY
@item
Fix @code{g77} crash triggered by @code{CASE} statement with
an omitted lower or upper bound.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} crash on statements such as
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
@samp{Z} is @code{DOUBLE COMPLEX}.
+@end ifclear
+@ifclear USERVISONLY
@cindex ELF support
@cindex support, ELF
@cindex -fPIC option
@@ -739,32 +1179,39 @@ Fix @code{g77} crash on statements such as
Fix @samp{-fPIC} (such as compiling for ELF targets)
on the Intel x86 architecture target
so invalid assembler code is no longer produced.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @samp{-fpedantic} to not reject procedure invocations
such as @samp{I=J()} and @samp{CALL FOO()}.
+@end ifclear
+@ifclear USERVISONLY
@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,,)}.
+@end ifclear
@item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
@end itemize
-@c 1998-01-02: egcs-1.0.1 released.
-@heading In @code{egcs} 1.0.1 (versus @code{egcs} 1.0):
+@c 1998-01-06: EGCS 1.0.1 released.
+@heading In @code{EGCS} 1.0.1 versus @code{EGCS} 1.0:
+@ifclear USERVISONLY
@itemize @bullet
@item
Fix run-time crash involving @code{NAMELIST} on 64-bit
machines such as Alphas.
@end itemize
+@end ifclear
-@c 1997-12-03: egcs-1.0 released.
-@heading In @code{egcs} 1.0 (versus 0.5.21):
+@c 1997-12-03: EGCS 1.0 released.
+@heading In @code{EGCS} 1.0 versus @code{g77} 0.5.21:
@itemize @bullet
@item
Version 1.0 of @code{egcs}
@@ -775,24 +1222,12 @@ due to using the
it to fix a few bugs and improve performance in a
few cases.
-@ifset last-up-date
-@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
-for information on the known bugs in this version,
-including the regressions.
-@end ifset
-
-@ifset NEWSONLY
-See @file{egcs/gcc/f/BUGS},
-for information on the known bugs in this version,
-including the regressions.
-@end ifset
-
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 --
+@itemize @minus
@item
Support for the C-language @code{restrict} keyword.
@@ -806,26 +1241,48 @@ applying to stack-allocated data
as well as statically-allocate data.
@end itemize
+@ifclear USERVISONLY
Note that the @file{gcc/f/gbe/} subdirectory has been removed
from this distribution as a result of @code{g77}
being fully integrated with
the @code{egcs} variant of the @code{gcc} back end.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems).
+@end ifclear
+@ifclear USERVISONLY
+@item
+@c Toon Moene discovered these.
+Some Fortran code, miscompiled
+by @code{g77} built on @code{gcc} version 2.8.1
+on m68k-next-nextstep3 configurations
+when using the @samp{-O2} option,
+is now compiled correctly.
+It is believed that a C function known to miscompile
+on that configuration
+when using the @samp{-O2 -funroll-loops} options
+also is now compiled correctly.
+@end ifclear
+
+@ifclear USERVISONLY
@item
Remove support for non-@code{egcs} versions of @code{gcc}.
+@end ifclear
@cindex -@w{}-driver option
-@cindex g77 options, -@w{}-driver
+@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
@@ -836,6 +1293,7 @@ just like @code{gcc}.
Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}.
+@ifclear USERVISONLY
@item
Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the
@@ -848,17 +1306,21 @@ format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.)
+@end ifclear
+@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux).
+@end ifclear
@end itemize
@c 1997-09-09: 0.5.21 released.
@heading In 0.5.21:
@itemize @bullet
+@ifclear USERVISONLY
@item
Fix a code-generation bug introduced by 0.5.20
caused by loop unrolling (by specifying
@@ -866,7 +1328,9 @@ caused by loop unrolling (by specifying
This bug afflicted all code compiled by
version 2.7.2.2.f.2 of @code{gcc} (C, C++,
Fortran, and so on).
+@end ifclear
+@ifclear USERVISONLY
@item
Fix a code-generation bug manifested when
combining local @code{EQUIVALENCE} with a
@@ -875,7 +1339,9 @@ the first executable statement (or is
treated as an executable-context statement
as a result of using the @samp{-fpedantic}
option).
+@end ifclear
+@ifclear USERVISONLY
@item
Fix a compiler crash that occured when an
integer division by a constant zero is detected.
@@ -884,34 +1350,52 @@ the @code{gcc} back end issues a warning about such a case.
This bug afflicted all code compiled by
version 2.7.2.2.f.2 of @code{gcc} (C, C++,
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
Fix a compiler crash that occurred in some cases
of procedure inlining.
(Such cases became more frequent in 0.5.20.)
+@end ifclear
+@ifclear USERVISONLY
@item
Fix a compiler crash resulting from using @code{DATA}
or similar to initialize a @code{COMPLEX} variable or
array to zero.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix compiler crashes involving use of @code{AND}, @code{OR},
or @code{XOR} intrinsics.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix compiler bug triggered when using a @code{COMMON}
or @code{EQUIVALENCE} variable
as the target of an @code{ASSIGN}
or assigned-@code{GOTO} statement.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix compiler crashes due to using the name of a some
-non-standard intrinsics (such as @samp{FTELL} or
-@samp{FPUTC}) as such and as the name of a procedure
+non-standard intrinsics (such as @code{FTell} or
+@code{FPutC}) as such and as the name of a procedure
or common block.
Such dual use of a name in a program is allowed by
the standard.
+@end ifclear
@c @code{g77}'s version of @code{libf2c} has been modified
@c so that the external names of library's procedures do not
@@ -924,30 +1408,34 @@ the standard.
@c
@c For example, the intrinsic @code{FPUTC} previously was
@c implemented by @code{g77} as a call to the @code{libf2c}
-@c routine @samp{fputc_}.
+@c routine @code{fputc_}.
@c This would conflict with a Fortran procedure named @code{FPUTC}
@c (using default compiler options), and this conflict
@c would cause a crash under certain circumstances.
@c
-@c Now, the intrinsic @code{FPUTC} calls @samp{G77_fputc_0},
-@c which does not conflict with the @samp{fputc_} external
+@c Now, the intrinsic @code{FPUTC} calls @code{G77_fputc_0},
+@c which does not conflict with the @code{fputc_} external
@c that implements a Fortran procedure named @code{FPUTC}.
@c
@c Programs that refer to @code{FPUTC} as an external procedure
@c without supplying their own implementation will link to
-@c the new @code{libf2c} routine @samp{fputc_}, which is
-@c simply a jacket routine that calls @samp{G77_fputc_0}.
+@c the new @code{libf2c} routine @code{fputc_}, which is
+@c simply a jacket routine that calls @code{G77_fputc_0}.
+@ifclear USERVISONLY
@item
Place automatic arrays on the stack, even if
@code{SAVE} or the @samp{-fno-automatic} option
is in effect.
This avoids a compiler crash in some cases.
+@end ifclear
+@ifclear USERVISONLY
@item
The @samp{-malign-double} option now reliably aligns
@code{DOUBLE PRECISION} optimally on Pentium and
Pentium Pro architectures (586 and 686 in @code{gcc}).
+@end ifclear
@item
New option @samp{-Wno-globals} disables warnings
@@ -977,41 +1465,53 @@ This option also disables inlining of global procedures,
to avoid compiler crashes resulting from coding errors
that these diagnostics normally would identify.
+@ifclear USERVISONLY
@item
Diagnose cases where a reference to a procedure
disagrees with the type of that procedure, or
where disagreements about the number or nature
of arguments exist.
This avoids a compiler crash.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix parsing bug whereby @code{g77} rejected a
second initialization specification immediately
following the first's closing @samp{/} without
an intervening comma in a @code{DATA} statement,
and the second specification was an implied-DO list.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve performance of the @code{gcc} back end so
certain complicated expressions involving @code{COMPLEX}
arithmetic (especially multiplication) don't appear to
take forever to compile.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix a couple of profiling-related bugs in @code{gcc}
back end.
+@end ifclear
+@ifclear USERVISONLY
@item
Integrate GNU Ada's (GNAT's) changes to the back end,
which consist almost entirely of bug fixes.
These fixes are circa version 3.10p of GNAT.
+@end ifclear
+@ifclear USERVISONLY
@item
Include some other @code{gcc} fixes that seem useful in
@code{g77}'s version of @code{gcc}.
(See @file{gcc/ChangeLog} for details---compare it
to that file in the vanilla @code{gcc-2.7.2.3.tar.gz}
distribution.)
+@end ifclear
@item
Fix @code{libU77} routines that accept file and other names
@@ -1027,13 +1527,15 @@ that have embedded blanks, commas, and so on.
@item
Fix @code{SIGNAL} intrinsic so it accepts an
-optional third @samp{Status} argument.
+optional third @code{Status} argument.
+@ifclear USERVISONLY
@item
Fix @code{IDATE()} intrinsic subroutine (VXT form)
so it accepts arguments in the correct order.
Documentation fixed accordingly, and for
@code{GMTIME()} and @code{LTIME()} as well.
+@end ifclear
@item
Make many changes to @code{libU77} intrinsics to
@@ -1047,42 +1549,57 @@ return @code{INTEGER(KIND=2)} values,
and placing functions that are intended to perform
side effects in a new intrinsic group, @code{badu77}.
+@ifclear USERVISONLY
@item
Improve @code{libU77} so it is more portable.
+@end ifclear
@item
Add options @samp{-fbadu77-intrinsics-delete},
@samp{-fbadu77-intrinsics-hide}, and so on.
+@ifclear USERVISONLY
@item
Fix crashes involving diagnosed or invalid code.
+@end ifclear
+@ifclear USERVISONLY
@item
@code{g77} and @code{gcc} now do a somewhat better
job detecting and diagnosing arrays that are too
large to handle before these cause diagnostics
during the assembler or linker phase, a compiler
crash, or generation of incorrect code.
+@end ifclear
+@ifclear USERVISONLY
@item
Make some fixes to alias analysis code.
+@end ifclear
+@ifclear USERVISONLY
@item
Add support for @code{restrict} keyword in @code{gcc}
front end.
+@end ifclear
+@ifclear USERVISONLY
@item
Support @code{gcc} version 2.7.2.3
(modified by @code{g77} into version 2.7.2.3.f.1),
and remove
support for prior versions of @code{gcc}.
+@end ifclear
+@ifclear USERVISONLY
@item
Incorporate GNAT's patches to the @code{gcc} back
end into @code{g77}'s, so GNAT users do not need
to apply GNAT's patches to build both GNAT and @code{g77}
from the same source tree.
+@end ifclear
+@ifclear USERVISONLY
@item
Modify @code{make} rules and related code so that
generation of Info documentation doesn't require
@@ -1090,6 +1607,7 @@ compilation using @code{gcc}.
Now, any ANSI C compiler should be adequate to
produce the @code{g77} documentation (in particular,
the tables of intrinsics) from scratch.
+@end ifclear
@item
Add @code{INT2} and @code{INT8} intrinsics.
@@ -1104,46 +1622,64 @@ Add @code{ALARM} intrinsic.
@code{CTIME} intrinsic now accepts any @code{INTEGER}
argument, not just @code{INTEGER(KIND=2)}.
+@ifclear USERVISONLY
@item
Warn when explicit type declaration disagrees with
the type of an intrinsic invocation.
+@end ifclear
+@ifclear USERVISONLY
@item
Support @samp{*f771} entry in @code{gcc} @file{specs} file.
+@end ifclear
+@ifclear USERVISONLY
@item
-Fix typo in @code{make} rule @samp{g77-cross}, used only for
+Fix typo in @code{make} rule @code{g77-cross}, used only for
cross-compiling.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{libf2c} build procedure to re-archive library
if previous attempt to archive was interrupted.
+@end ifclear
+@ifclear USERVISONLY
@item
Change @code{gcc} to unroll loops only during the last
invocation (of as many as two invocations) of loop
optimization.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve handling of @samp{-fno-f2c} so that code that
attempts to pass an intrinsic as an actual argument,
such as @samp{CALL FOO(ABS)}, is rejected due to the fact
that the run-time-library routine is, effectively,
compiled with @samp{-ff2c} in effect.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} driver to recognize @samp{-fsyntax-only}
as an option that inhibits linking, just like @samp{-c} or
@samp{-S}, and to recognize and properly handle the
@samp{-nostdlib}, @samp{-M}, @samp{-MM}, @samp{-nodefaultlibs},
and @samp{-Xlinker} options.
+@end ifclear
+@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-08-16.
+@end ifclear
+@ifclear USERVISONLY
@item
Modify @code{libf2c} to consistently and clearly diagnose
recursive I/O (at run time).
+@end ifclear
@item
@code{g77} driver now prints version information (such as produced
@@ -1154,26 +1690,36 @@ The @samp{.r} suffix now designates a Ratfor source file,
to be preprocessed via the @code{ratfor} command, available
separately.
+@ifclear USERVISONLY
@item
Fix some aspects of how @code{gcc} determines what kind of
system is being configured and what kinds are supported.
For example, GNU Linux/Alpha ELF systems now are directly
supported.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve diagnostics.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve documentation and indexing.
+@end ifclear
+@ifclear USERVISONLY
@item
Include all pertinent files for @code{libf2c} that come
from @code{netlib.bell-labs.com}; give any such files
that aren't quite accurate in @code{g77}'s version of
@code{libf2c} the suffix @samp{.netlib}.
+@end ifclear
+@ifclear USERVISONLY
@item
Reserve @code{INTEGER(KIND=0)} for future use.
+@end ifclear
@end itemize
@c 1997-02-28: 0.5.20 released.
@@ -1184,13 +1730,18 @@ 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} constants.
+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.)
+@ifset DOC-G77
+@xref{Fortran Dialect Options,,Options Controlling Fortran Dialect},
+for information on the @samp{-ftypeless-boz} option.
+@end ifset
+
@item
Options @samp{-ff90-intrinsics-enable} and
@samp{-fvxt-intrinsics-enable} now are the
@@ -1206,15 +1757,19 @@ statements specifying that these names are not intended
to be names of intrinsics.
@item
-The @samp{ALWAYS_FLUSH} macro is no longer defined when
+The @code{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,
+of @code{libf2c} when built with @code{ALWAYS_FLUSH} defined,
you will have to modify @code{libf2c} accordingly before
building it from this and future versions of @code{g77}.
+@ifset DOC-G77
+@xref{Output Assumed To Flush}, for more information.
+@end ifset
+
@item
Dave Love's implementation of @code{libU77} has been
added to the version of @code{libf2c} distributed with
@@ -1226,6 +1781,11 @@ as intrinsics.
New option @samp{-fvxt} specifies that the
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
The @samp{-fvxt-not-f90} option has been deleted,
along with its inverse, @samp{-ff90-not-vxt}.
@@ -1235,6 +1795,10 @@ re-read the pertinent documentation to determine which
options, if any, are appropriate for compiling your
code with this version of @code{g77}.
+@ifset DOC-G77
+@xref{Other Dialects}, for more information.
+@end ifset
+
@item
The @samp{-fugly} option now issues a warning, as it
likely will be removed in a future version.
@@ -1250,23 +1814,35 @@ The @samp{-fugly-assumed} option, introduced in
version 0.5.19, has been changed to
better accommodate old and new code.
+@ifset DOC-G77
+@xref{Ugly Assumed-Size Arrays}, for more information.
+@end ifset
+
+@ifclear USERVISONLY
@item
Make a number of fixes to the @code{g77} front end and
the @code{gcc} back end to better support Alpha (AXP)
machines.
This includes providing at least one bug-fix to the
@code{gcc} back end for Alphas.
+@end ifclear
@item
Related to supporting Alpha (AXP) machines, the @code{LOC()}
intrinsic and @code{%LOC()} construct now return
-values of integer type that is the same width (holds
-the same number of bits) as the pointer type on the
-machine.
+values of @code{INTEGER(KIND=0)} type,
+as defined by the GNU Fortran language.
-On most machines, this won't make a difference, whereas
-on Alphas, the type these constructs return is
-@code{INTEGER*8} instead of the more common @code{INTEGER*4}.
+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
@@ -1275,19 +1851,24 @@ end, to avoid bugs in @code{complex} support in the
New option @samp{-fno-emulate-complex}
causes @code{g77} to revert the 0.5.19 behavior.
+@ifclear USERVISONLY
@item
Fix bug whereby @samp{REAL A(1)}, for example, caused
a compiler crash if @samp{-fugly-assumed} was in effect
and @var{A} was a local (automatic) array.
That case is no longer affected by the new
handling of @samp{-fugly-assumed}.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix @code{g77} command driver so that @samp{g77 -o foo.f}
no longer deletes @file{foo.f} before issuing other
diagnostics, and so the @samp{-x} option is properly
handled.
+@end ifclear
+@ifclear USERVISONLY
@item
Enable inlining of subroutines and functions by the @code{gcc}
back end.
@@ -1295,6 +1876,7 @@ This works as it does for @code{gcc} itself---program units
may be inlined for invocations that follow them in the same
program unit, as long as the appropriate compile-time
options are specified.
+@end ifclear
@item
Dummy arguments are no longer assumed to potentially alias
@@ -1312,10 +1894,19 @@ New options @samp{-falias-check}, @samp{-fargument-alias},
and @samp{-fno-argument-noalias-global} control the
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
The @code{CONJG()} and @code{DCONJG()} intrinsics now
are compiled in-line.
+@end ifclear
+@ifclear USERVISONLY
@item
The bug-fix for 0.5.19.1 has been re-done.
The @code{g77} compiler has been changed back to
@@ -1340,6 +1931,7 @@ particular, if the linker complains about unresolved
references to names like @samp{g77__fvers__}---that
strongly suggests your installation has an obsolete
version of @code{libf2c}.)
+@end ifclear
@item
New option @samp{-fugly-assign} specifies that the
@@ -1349,17 +1941,26 @@ values assigned by both statements @samp{I = 3} and
(Normally, @code{g77} uses a separate memory location
to hold assigned statement labels.)
+@ifset DOC-G77
+@xref{Ugly Assigned Labels}, for more information.
+@end ifset
+
@item
@code{FORMAT} and @code{ENTRY} statements now are allowed to
precede @code{IMPLICIT NONE} statements.
+@ifclear USERVISONLY
@item
Produce diagnostic for unsupported @code{SELECT CASE} on
@code{CHARACTER} type, instead of crashing, at compile time.
+@end ifclear
+@ifclear USERVISONLY
@item
Fix crashes involving diagnosed or invalid code.
+@end ifclear
+@ifclear USERVISONLY
@item
Change approach to building @code{libf2c} archive
(@file{libf2c.a}) so that members are added to it
@@ -1368,27 +1969,36 @@ an already-built @code{g77} doesn't need to have write
access to the build tree (whereas the user doing the
build might not have access to install new software
on the system).
+@end ifclear
+@ifclear USERVISONLY
@item
Support @code{gcc} version 2.7.2.2
(modified by @code{g77} into version 2.7.2.2.f.2),
and remove
support for prior versions of @code{gcc}.
+@end ifclear
+@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-02-08, and
fix up some of the build procedures.
+@end ifclear
+@ifclear USERVISONLY
@item
Improve general build procedures for @code{g77},
fixing minor bugs (such as deletion of any file
named @file{f771} in the parent directory of @code{gcc/}).
+@end ifclear
@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
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}.
@item
@@ -1407,10 +2017,10 @@ These are @code{REALPART}, @code{IMAGPART},
@code{LONG}, and @code{SHORT}.
@item
-A new group of intrinsics, @samp{gnu}, has been added
+A new group of intrinsics, @code{gnu}, has been added
to contain the new @code{REALPART}, @code{IMAGPART},
and @code{COMPLEX} intrinsics.
-An old group, @samp{dcp}, has been removed.
+An old group, @code{dcp}, has been removed.
@item
Complain about industry-wide ambiguous references
@@ -1421,23 +2031,38 @@ complex type other than @code{COMPLEX}), unless
or new @samp{-fugly-complex} option, in conjunction with
@samp{-fnot-f90}, specifies @code{f2c} interpretation.
+@ifclear USERVISONLY
@item
Make improvements to diagnostics.
+@end ifclear
+@ifclear USERVISONLY
@item
Speed up compiler a bit.
+@end ifclear
+@ifclear USERVISONLY
@item
Improvements to documentation and indexing, including
a new chapter containing information on one, later
more, diagnostics that users are directed to pull
up automatically via a message in the diagnostic itself.
-(Hence the menu item @samp{M} for the node
-@samp{Diagnostics} in the top-level menu of
+(Hence the menu item @code{M} for the node
+@code{Diagnostics} in the top-level menu of
the Info documentation.)
+@end ifclear
@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 @code{DOC-OLDNEWS} macro.
+@end ifclear
+
+@ifset DOC-OLDNEWS
@c 1997-02-01: 0.5.19.1 released.
@heading In 0.5.19.1:
@itemize @bullet
@@ -1449,14 +2074,14 @@ These bugs occurred when assigning the result of an
operation to a complex variable (or array element)
that also served as an input to that operation.
-The operations affected by this bug were: @samp{CONJG()},
-@samp{DCONJG()}, @samp{CCOS()}, @samp{CDCOS()},
-@samp{CLOG()}, @samp{CDLOG()}, @samp{CSIN()}, @samp{CDSIN()},
-@samp{CSQRT()}, @samp{CDSQRT()}, complex division, and
+The operations affected by this bug were: @code{CONJG()},
+@code{DCONJG()}, @code{CCOS()}, @code{CDCOS()},
+@code{CLOG()}, @code{CDLOG()}, @code{CSIN()}, @code{CDSIN()},
+@code{CSQRT()}, @code{CDSQRT()}, complex division, and
raising a @code{DOUBLE COMPLEX} operand to an @code{INTEGER}
power.
(The related generic and @samp{Z}-prefixed intrinsics,
-such as @samp{ZSIN()}, also were affected.)
+such as @code{ZSIN()}, also were affected.)
For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I}
(where @samp{C} is @code{COMPLEX} and @samp{Z} is
@@ -1468,7 +2093,7 @@ For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I}
@itemize @bullet
@item
Fix @code{FORMAT} statement parsing so negative values for
-specifiers such as @samp{P} (e.g. @samp{FORMAT(-1PF8.1)})
+specifiers such as @code{P} (e.g. @samp{FORMAT(-1PF8.1)})
are correctly processed as negative.
@item
@@ -1552,7 +2177,7 @@ procedures in @code{libf2c}.
@item
Modify @code{fseek_()} in @code{libf2c} to be more portable
(though, in practice, there might be no systems where this
-matters) and to catch invalid @samp{whence} arguments.
+matters) and to catch invalid @code{whence} arguments.
@item
Some useless warnings from the @samp{-Wunused} option have
@@ -1564,7 +2189,7 @@ on AIX systems by linking with the @samp{-bbigtoc} option.
@item
Abort configuration if @code{gcc} has not been patched
-using the patch file provided in the @samp{gcc/f/gbe/}
+using the patch file provided in the @file{gcc/f/gbe/}
subdirectory.
@item
@@ -1776,7 +2401,7 @@ maintainer's new address is @email{dmg@@bell-labs.com}.
@itemize @bullet
@item
@strong{Fix serious bug} in @samp{g77 -v} command that can cause removal of a
-system's @file{/dev/null} special file if run by user @samp{root}.
+system's @file{/dev/null} special file if run by user @code{root}.
@strong{All users} of version 0.5.16 should ensure that
they have not removed @file{/dev/null} or replaced it with an ordinary
@@ -1815,7 +2440,7 @@ never happen).
@item
Make @code{libf2c} build procedures work on more systems again by
-eliminating unnecessary invocations of @samp{ld -r -x} and @samp{mv}.
+eliminating unnecessary invocations of @samp{ld -r -x} and @code{mv}.
@item
Fix omission of @samp{-funix-intrinsics-@dots{}} options in list of permitted
@@ -1894,7 +2519,7 @@ This is known to fix code invoking @code{ERF()}, @code{ERFC()},
@item
Update @code{libf2c} to include netlib patches through 1995-08-16, and
-@code{#define} @samp{WANT_LEAD_0} to 1 to make @code{g77}-compiled code more
+@code{#define} @code{WANT_LEAD_0} to 1 to make @code{g77}-compiled code more
consistent with other Fortran implementations by outputting
leading zeros in formatted and list-directed output.
@@ -1976,12 +2601,12 @@ and @code{SYSTEM}, append a final argument specifying an @code{INTEGER}
variable or array element (e.g. @samp{CALL SYSTEM('rm foo',ISTAT)}).
@item
-Add new intrinsic group named @samp{unix} to contain the new intrinsics,
+Add new intrinsic group named @code{unix} to contain the new intrinsics,
and by default enable this new group.
@item
-Move @code{LOC()} intrinsic out of the @samp{vxt} group to the new
-@samp{unix} group.
+Move @code{LOC()} intrinsic out of the @code{vxt} group to the new
+@code{unix} group.
@item
Improve @code{g77} so that @samp{g77 -v} by itself (or with
@@ -2038,8 +2663,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
if the target machine @code{INTEGER}, @code{REAL}, or @code{LOGICAL} size
is not 32 bits,
-since @code{g77} is known to not work well for such cases (to be
-fixed in Version 0.6---@pxref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet}).
+since @code{g77} is known to not work well for such cases.
@item
Lots of new documentation (though work is still needed to put it into
@@ -2239,7 +2863,7 @@ Allow @code{RETURN} in main program unit.
Changes to Hollerith-constant support to obey Appendix C of the
standard:
-@itemize --
+@itemize @minus
@item
Now padded on the right with zeros, not spaces.
@@ -2267,7 +2891,7 @@ to widen to @code{INTEGER}), essentially.
@item
Changes and fixes to typeless-constant support:
-@itemize --
+@itemize @minus
@item
Now treated as a typeless double-length @code{INTEGER} value.
@@ -2328,3 +2952,6 @@ Generate better code for some kinds of array references.
Speed up lexing somewhat (this makes the compilation phase noticeably
faster).
@end itemize
+
+@end ifset
+@end ifclear
OpenPOWER on IntegriCloud