OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / f / news.texi
index dea4e66..c187a8f 100644 (file)
@@ -1,19 +1,65 @@
-@c Copyright (C) 1995-1997 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 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 1998-09-04
+@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,1996,1997,1998,1999,2000,2001
 
-@ifclear NEWSONLY
+@set last-update-news 2001-04-21
+
+@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,12 +91,14 @@ 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
 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,
@@ -58,56 +106,427 @@ though this can make getting a complete picture
 of what a particular @code{egcs} version contains
 somewhat more difficult.
 
-@heading In @code{egcs} 1.1 (versus 0.5.24):
+@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 mainline, development version
+of @code{g77} within @code{gcc})
+is available at
+@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 development, 0.5.27, @code{GCC} 3.1 versus @code{GCC} 3.0:
 @itemize @bullet
+@ifclear USERVISONLY
 @item
-Fix @code{g77} crash compiling code
-containing the construct @samp{CMPLX(0.)} or similar.
+[ 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
-Fix @code{g77} crash
-(or apparently infinite run-time)
-when compiling certain complicated expressions
-involving @code{COMPLEX} arithmetic
-(especially multiplication).
+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
 
-@cindex DNRM2
-@cindex stack, 387 coprocessor
-@cindex Intel x86
-@cindex -O2
+@ifclear USERVISONLY
 @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.
+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
 
-The x87 coprocessor stack was being
-mismanaged in cases involving assigned @code{GOTO}
-and @code{ASSIGN}.
+@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
+@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
-Align static double-precision variables and arrays
-on Intel x86 targets
-regardless of whether @samp{-malign-double} is specified.
+The @samp{-malign-double} option
+now reliably aligns @emph{all} double-precision variables and arrays
+on Intel x86 targets.
 
-Generally, this affects only local variables and arrays
-having the @code{SAVE} attribute
-or given initial values via @code{DATA}.
+@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
+
+@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 @code{egcs} 1.1 (versus @code{egcs} 1.0.3):
+@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 bugs in the @code{libU77} intrinsic @samp{HostNm}
-that wrote one byte beyond the end of its @samp{CHARACTER}
+Fix the @code{IDate} intrinsic (VXT) (in @code{libg2c})
+so the returned year is in the documented, non-Y2K-compliant range
+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 @code{Date_and_Time} intrinsic (in @code{libg2c})
+to return the milliseconds value properly
+in @var{Values}(8).
+
+@item
+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
+
+@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
+(as appropriate)
+whenever a @code{REWIND} is done.
+
+(This bug was introduced in 0.5.23 and @code{egcs} 1.1 in
+@code{g77}'s version of @code{libf2c}.)
+
+@item
+Fix @code{libg2c} so it no longer crashes with a spurious diagnostic
+upon doing any I/O following a direct formatted write.
+
+(This bug was introduced in 0.5.23 and @code{egcs} 1.1 in
+@code{g77}'s version of @code{libf2c}.)
+
+@item
+Fix @code{g77} so it no longer crashes compiling references
+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 @code{if} constructs
+for the completion code to be set properly).
+@end itemize
+@end ifclear
+
+@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 @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:*)})
@@ -118,7 +537,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
@@ -127,14 +548,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
@@ -142,7 +568,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
@@ -167,6 +593,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
@@ -174,7 +601,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
@@ -182,7 +611,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}.
@@ -192,7 +623,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}.
@@ -202,6 +635,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
@@ -209,17 +643,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,
@@ -230,37 +668,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
@@ -275,6 +752,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
@@ -291,31 +789,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
@@ -324,17 +839,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.
 
-@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 --
+@itemize @minus
 @item
 Support for @code{__restrict__} keyword,
 the options @samp{-fargument-alias}, @samp{-fargument-noalias},
@@ -368,33 +878,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
@@ -403,7 +920,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
@@ -411,7 +930,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
@@ -419,7 +940,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}.
@@ -429,7 +952,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}.
@@ -439,6 +964,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
@@ -446,10 +972,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
@@ -463,6 +991,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
@@ -470,11 +999,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,
@@ -485,27 +1017,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
@@ -514,54 +1053,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
@@ -569,12 +1125,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
@@ -597,9 +1155,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
@@ -611,6 +1171,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
@@ -623,45 +1184,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
@@ -670,32 +1249,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}
@@ -706,17 +1292,12 @@ due to using the
 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 --
+@itemize @minus
 @item
 Support for the C-language @code{restrict} keyword.
 
@@ -730,26 +1311,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,
@@ -760,6 +1363,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
@@ -772,17 +1376,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
@@ -790,7 +1398,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
@@ -799,7 +1409,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.
@@ -808,34 +1420,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
@@ -848,30 +1478,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
@@ -901,41 +1535,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
@@ -951,13 +1597,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
@@ -971,42 +1619,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
@@ -1014,6 +1677,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.
@@ -1028,46 +1692,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
@@ -1078,26 +1760,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.
@@ -1108,13 +1800,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
@@ -1130,15 +1827,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
@@ -1150,6 +1851,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}.
@@ -1159,6 +1865,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.
@@ -1174,23 +1884,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
@@ -1199,19 +1921,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.
@@ -1219,6 +1946,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
@@ -1236,10 +1964,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
@@ -1264,6 +2001,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
@@ -1273,17 +2011,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
@@ -1292,27 +2039,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
@@ -1331,10 +2087,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
@@ -1345,23 +2101,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
@@ -1373,14 +2144,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
@@ -1392,7 +2163,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
@@ -1476,7 +2247,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
@@ -1488,7 +2259,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
@@ -1700,7 +2471,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
@@ -1739,7 +2510,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
@@ -1818,7 +2589,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.
 
@@ -1900,12 +2671,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
@@ -1962,8 +2733,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
@@ -2163,7 +2933,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.
 
@@ -2191,7 +2961,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.
 
@@ -2252,3 +3022,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