-@c Copyright (C) 1995-1999 Free Software Foundation, Inc.
+@c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@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 copyrights-news 1995,1996,1997,1998,1999,2000,2001
-@set last-update-news 1999-04-25
+@set last-update-news 2001-04-21
@include root.texi
Note that two variants of @code{g77} are tracked below.
The @code{egcs} variant is described vis-a-vis
previous versions of @code{egcs} and/or
-an official FSF version,
-as appropriate.
+an official FSF version, as appropriate.
+Note that all such variants are obsolete @emph{as of July 1999} -
+the information is retained here only for its historical value.
Therefore, @code{egcs} versions sometimes have multiple listings
to help clarify how they differ from other versions,
@ifclear USERVISONLY
An online, ``live'' version of this document
(derived directly from the mainline, development version
-of @code{g77} within @code{egcs})
+of @code{g77} within @code{gcc})
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 @code{egcs} 1.2 (versus 1.1.2):
+@heading In development, 0.5.27, @code{GCC} 3.1 versus @code{GCC} 3.0:
+@itemize @bullet
+@ifclear USERVISONLY
+@item
+[ Nothing yet ]
+@end ifclear
+@end itemize
+
+@heading In prerelease, 0.5.26, @code{GCC} 3.0 versus @code{GCC} 2.95:
+@itemize @bullet
+@ifclear USERVISONLY
+@item
+When a REWIND was issued after a WRITE statement on an unformatted
+file, the implicit truncation was performed by copying the truncated
+file to /tmp and copying the result back. This has been fixed by using
+the @code{ftruncate} OS function. Thanks go to the GAMESS developers
+for bringing this to our attention.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+It is not necessary anymore to use the option @code{-femulate-complex}
+to compile Fortran code using COMPLEX arithmetic, even on 64-bit machines
+(like the Alpha). This will improve code generation.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+INTRINSIC arithmetic functions are now treated as routines that do not
+depend on anything but their argument(s). This enables further instruction
+scheduling, because it is known that they cannot read or modify arbitrary
+locations.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+Upgrade to @code{libf2c} as of 2000-12-05.
+
+This fixes a bug where a namelist containing initialization of LOGICAL
+items and a variable starting with T or F would be read incorrectly.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+Using options @code{-g}, @code{-ggdb} or @code{-gdwarf[-2]} (where
+appropriate for your target) now also enables debugging information
+for COMMON BLOCK and EQUIVALENCE items to be emitted.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+The @code{TtyNam} intrinsics now set @var{Name} to all spaces (at run time)
+if the system has no @code{ttyname} implementation available.
+@end ifclear
+
+@ifclear USERVISONLY
+@item
+Upgrade to @code{libf2c} as of 1999-06-28.
+
+This 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
+@end itemize
+
+@heading In 0.5.25, @code{GCC} 2.95 (@code{EGCS} 1.2) versus @code{EGCS} 1.1.2:
@itemize @bullet
@ifclear USERVISONLY
@item
@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
@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}},
@end ifclear
@item
-The new @samp{-fsubscript-check} option
+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.
-The current implementation uses the @code{libf2c}
-library routine @code{s_rnge} to print the diagnostic.
-Since a future version of @code{g77} might use a different implementation,
-use the new @samp{-ff2c-subscript-check} option
-if your application requires use of @code{s_rnge} or a compile-time diagnostic.
+@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}
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, the @code{libg2c} has been changed to increase the likelihood
+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).
@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
+
+@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
@ifclear USERVISONLY
@item
-Upgrade to @code{libf2c} as of 1999-03-17.
+Upgrade to @code{libf2c} as of 1999-05-10.
@end ifclear
@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 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
@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
@end itemize
@end ifclear
-@heading In @code{egcs} 1.1 (versus 0.5.24):
-@itemize @bullet
-@ifclear USERVISONLY
-@item
-Fix @code{g77} crash compiling code
-containing the construct @samp{CMPLX(0.)} or similar.
-@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
-@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
-
-@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
@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
@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}.
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
@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
@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
@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
@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
@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}