diff options
author | Craig Burley <burley@gnu.org> | 1998-09-01 05:03:34 -0400 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-09-01 03:03:34 -0600 |
commit | 7d20b493cb92ecccafd42ead640d9cc06f92fdab (patch) | |
tree | 5dd72875bf151af5127203f083a61c727b73f036 /gcc/f | |
parent | 5cd60685eba456ac54b118f51619beb30f0153de (diff) | |
download | gcc-7d20b493cb92ecccafd42ead640d9cc06f92fdab.tar.gz |
bugs.texi, [...]: Doc updates from Craig.
* bugs.texi, g77.1, g77.texi, intdoc.in, news.texi: Doc updates
from Craig.
Too late for egcs-1.1, but installed so they'll be in minor releases.
From-SVN: r22149
Diffstat (limited to 'gcc/f')
-rw-r--r-- | gcc/f/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/f/bugs.texi | 23 | ||||
-rw-r--r-- | gcc/f/g77.1 | 16 | ||||
-rw-r--r-- | gcc/f/g77.texi | 190 | ||||
-rw-r--r-- | gcc/f/intdoc.in | 22 | ||||
-rw-r--r-- | gcc/f/news.texi | 362 |
6 files changed, 562 insertions, 56 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index 7f914e69c58..a9f26122496 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,8 @@ +Tue Sep 1 10:00:21 1998 Craig Burley <burley@gnu.org> + + * bugs.texi, g77.1, g77.texi, intdoc.in, news.texi: Doc updates + from Craig. + 1998-08-23 Dave Love <d.love@dl.ac.uk> * g77.texi: Increment `version-g77' and fix a few typos. diff --git a/gcc/f/bugs.texi b/gcc/f/bugs.texi index 436caa49b94..af18d80cdbc 100644 --- a/gcc/f/bugs.texi +++ b/gcc/f/bugs.texi @@ -5,7 +5,7 @@ @c The text of this file appears in the file BUGS @c in the G77 distribution, as well as in the G77 manual. -@c 1998-07-15 +@c 1998-09-01 @ifclear BUGSONLY @node Actual Bugs @@ -73,6 +73,13 @@ and @code{ASSIGN} are involved. Fixed in @code{egcs} version 1.1. @item +@code{g77} fails to warn about +use of a ``live'' iterative-DO variable +as an implied-DO variable +in a @samp{WRITE} or @samp{PRINT} statement +(although it does warn about this in a @samp{READ} statement). + +@item A compiler crash, or apparently infinite run time, can result when compiling complicated expressions involving @code{COMPLEX} arithmetic @@ -231,17 +238,13 @@ by versions of @code{g77} prior to 0.5.20. @cindex -fPIC option @cindex options, -fPIC @item -There seem to be some problems with passing constants, and perhaps -general expressions (other than simple variables/arrays), to procedures -when compiling on some systems (such as i386) with @samp{-fPIC}, as in -when compiling for ELF targets. +@code{g77} sometimes produces invalid assembler code +when using the @samp{-fPIC} option (such as compiling for ELF targets) +on the Intel x86 architecture target. The symptom is that the assembler complains about invalid opcodes. -This bug is in the gcc back end, -and it apparently occurs only when -compiling sufficiently complicated functions @emph{without} the -@samp{-O} option. +This bug is in the gcc back end. -Fixed in @code{egcs} version 1.1. +Fixed in @code{egcs} version 1.0.2. @cindex padding @cindex structures diff --git a/gcc/f/g77.1 b/gcc/f/g77.1 index 3a8504dd610..d6a465b07ea 100644 --- a/gcc/f/g77.1 +++ b/gcc/f/g77.1 @@ -1,20 +1,20 @@ .\" Copyright (c) 1995-1997 Free Software Foundation -*-Text-*- .\" See section COPYING for conditions for redistribution .\" FIXME: no info here on predefines. Should there be? extra for F77... -.TH G77 1 "1998-04-17" "GNU Tools" "GNU Tools" +.TH G77 1 "1998-09-01" "GNU Tools" "GNU Tools" .de BP .sp .ti \-.2i \(** .. .SH NAME -g77 \- GNU project Fortran Compiler (v0.5.23) +g77 \- GNU project Fortran Compiler (v0.5.24) .SH SYNOPSIS .RB g77 " [" \c .IR option " | " "filename " ].\|.\|. .SH WARNING The information in this man page is an extract from the full -documentation of the GNU Fortran compiler (version 0.5.23), +documentation of the GNU Fortran compiler (version 0.5.24), and is limited to the meaning of some of the options. .PP This man page is not up to date, since no volunteers want to @@ -22,8 +22,8 @@ maintain it. If you find a discrepancy between the man page and the software, please check the Info file, which is the authoritative documentation. .\" .PP -.\" The version of GNU Fortran documented by the Info file is 0.5.23, -.\" which includes substantial improvements and changes since 0.5.23, +.\" The version of GNU Fortran documented by the Info file is 0.5.24, +.\" which includes substantial improvements and changes since 0.5.24, .\" the version documented in this man page. .PP If we find that the things in this man page that are out of date cause @@ -37,7 +37,7 @@ For complete and current documentation, refer to the Info file `\|\c .B g77\c \&\|' or the manual .I -Using and Porting GNU Fortran (for version 0.5.23)\c +Using and Porting GNU Fortran (for version 0.5.24)\c \&. Both are made from the Texinfo source file .BR g77.texi . .PP @@ -268,7 +268,7 @@ a.out link edited output .br \fILIBDIR\fR/f771 compiler .br -\fILIBDIR\fR/libf2c.a Fortran run-time library +\fILIBDIR\fR/libg2c.a Fortran run-time library .br \fILIBDIR\fR/libgcc.a GCC subroutine library .br @@ -311,7 +311,7 @@ entries in \&. .br .I -Using and Porting GNU Fortran (for version 0.5.23)\c +Using and Porting GNU Fortran (for version 0.5.24)\c , James Craig Burley; .I Using and Porting GNU CC (for version 2.0)\c diff --git a/gcc/f/g77.texi b/gcc/f/g77.texi index b69fde8dfe9..f335961e908 100644 --- a/gcc/f/g77.texi +++ b/gcc/f/g77.texi @@ -14,7 +14,7 @@ @c %**start of header @setfilename g77.info -@set last-up-date 1998-08-23 +@set last-up-date 1998-09-01 @set version-g77 0.5.24 @set email-general egcs@@cygnus.com @set email-bugs egcs-bugs@@cygnus.com @@ -3310,7 +3310,71 @@ or, if you cannot do that, email @email{fortran@@gnu.org} asking for a recent copy of the GNU Fortran @file{.plan} file. -@heading In @code{egcs} 1.1: +@heading In @code{egcs} 1.1 (versus 0.5.24): +@itemize @bullet +@cindex alignment +@cindex double-precision performance +@cindex -malign-double +@item +Align static double-precision variables and arrays +on Intel x86 targets +regardless of whether @samp{-malign-double} is specified. + +Generally, this affects only local variables and arrays +having the @code{SAVE} attribute +or given initial values via @code{DATA}. +@end itemize + +@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3): +@itemize @bullet +@item +Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a +compile-time constant @code{INTEGER} expression. + +@item +Fix @code{g77} @samp{-g} option so procedures that +use @samp{ENTRY} can be stepped through, line by line, +in @code{gdb}. + +@item +Allow any @code{REAL} argument to intrinsics +@code{Second} and @code{CPU_Time}. + +@item +Use @code{tempnam}, if available, to open scratch files +(as in @samp{OPEN(STATUS='SCRATCH')}) +so that the @code{TMPDIR} environment variable, +if present, is used. + +@item +@code{g77}'s version of @code{libf2c} separates out +the setting of global state +(such as command-line arguments and signal handling) +from @file{main.o} into distinct, new library +archive members. + +This should make it easier to write portable applications +that have their own (non-Fortran) @code{main()} routine +properly set up the @code{libf2c} environment, even +when @code{libf2c} (now @code{libg2c}) is a shared library. + +@item +The @code{g77} command now expects the run-time library +to be named @code{libg2c.a} instead of @code{libf2c.a}, +to ensure that a version other than the one built and +installed as part of the same @code{g77} version is picked up. + +@item +Some diagnostics have been changed from warnings to errors, +to prevent inadvertent use of the resulting, probably buggy, +programs. +These mostly include diagnostics about use of unsupported features +in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and +@code{WRITE} statements, +and about truncations of various sorts of constants. +@end itemize + +@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23): @itemize @bullet @item @code{g77} now treats @samp{%LOC(@var{expr})} and @@ -3335,16 +3399,27 @@ when the generated code wants to link to the one in @code{libf2c} (@code{libg2c}). @item -The F90 @samp{DATE_AND_TIME} intrinsic now is +@code{g77} emits more debugging information when +@samp{-g} is used. + +This new information allows, for example, +@kbd{which __g77_length_a} to be used in @code{gdb} +to determine the type of the phantom length argument +supplied with @samp{CHARACTER} variables. + +This information pertains to internally-generated +type, variable, and other information, +not to the longstanding deficiencies vis-a-vis +@samp{COMMON} and @samp{EQUIVALENCE}. + +@item +The F90 @samp{Date_and_Time} intrinsic now is supported. @item -The F90 @samp{SYSTEM_CLOCK} intrinsic allows +The F90 @samp{System_Clock} intrinsic allows the optional arguments (except for the @samp{Count} argument) to be omitted. - -@item -Upgrade to @code{libf2c} as of 1998-06-18. @end itemize @heading In 0.5.23: @@ -3373,7 +3448,7 @@ the options @samp{-fargument-alias}, @samp{-fargument-noalias}, and @samp{-fargument-noalias-global}, and the corresponding alias-analysis code. -(Version 1.0.1 of @code{egcs} has the alias-analysis +(@code{egcs} has the alias-analysis code, but not the @code{__restrict__} keyword. @code{egcs} @code{g77} users benefit from the alias-analysis code despite the lack of the @code{__restrict__} keyword, @@ -3385,7 +3460,7 @@ Support for the GNU compiler options @samp{-freduce-all-givs}, and @samp{-frerun-loop-opt}. -(Version 1.0.1 of @code{egcs} supports these options. +(@code{egcs} supports these options. @code{g77} users of @code{egcs} benefit from them even if they are not explicitly specified, because the defaults are optimized for @code{g77} users.) @@ -3443,7 +3518,7 @@ and about truncations of various sorts of constants. @heading In 0.5.22: @itemize @bullet @item -Fix @code{SIGNAL} intrinsic so it offers portable +Fix @code{Signal} intrinsic so it offers portable support for 64-bit systems (such as Digital Alphas running GNU/Linux). @@ -3466,7 +3541,7 @@ Allow any numeric argument to intrinsics @item Use @code{tempnam}, if available, to open scratch files -(as in @samp{OPEN(STATUS='SCRATCH')} +(as in @samp{OPEN(STATUS='SCRATCH')}) so that the @code{TMPDIR} environment variable, if present, is used. @@ -3488,6 +3563,61 @@ Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and @samp{-fbadu77-intrinsics-*} options. @end itemize +@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1): +@itemize @bullet +@item +Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and +@samp{-fbadu77-intrinsics-*} options. +@end itemize + +@heading In @code{egcs} 1.0 (versus 0.5.21): +@itemize @bullet +@item +Version 1.0 of @code{egcs} +contains several regressions against +version 0.5.21 of @code{g77}, +due to using the +``vanilla'' @code{gcc} back end instead of patching +it to fix a few bugs and improve performance in a +few cases. + +@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet}, +available in plain-text format in @code{gcc/f/BUGS}, +for information on the known bugs in this version, +including the regressions. + +Features that have been dropped from this version +of @code{g77} due to their being implemented +via @code{g77}-specific patches to the @code{gcc} +back end in previous releases include: + +@itemize -- +@item +Support for the C-language @code{restrict} keyword. + +@item +Support for the @samp{-W} option warning about +integer division by zero. + +@item +The Intel x86-specific option @samp{-malign-double} +applying to stack-allocated data +as well as statically-allocate data. +@end itemize + +@cindex -@w{}-driver option +@cindex g77 options, -@w{}-driver +@cindex options, -@w{}-driver +@item +Remove support for the @samp{--driver} option, +as @code{g77} now does all the driving, +just like @code{gcc}. + +@item +Allow any numeric argument to intrinsics +@code{Int2} and @code{Int8}. +@end itemize + @heading In 0.5.21: @itemize @bullet @item @@ -3525,9 +3655,16 @@ to avoid compiler crashes resulting from coding errors that these diagnostics normally would identify. @item -Fix @code{libU77} routines that accept file names -to strip trailing spaces from them, for consistency +Fix @code{libU77} routines that accept file and other names +to strip trailing blanks from them, for consistency with other implementations. +Blanks may be forcibly appended to such names by +appending a single null character (@samp{CHAR(0)}) +to the significant trailing blanks. + +@item +Fix @code{CHMOD} intrinsic to work with file names +that have embedded blanks, commas, and so on. @item Fix @code{SIGNAL} intrinsic so it accepts an @@ -3556,8 +3693,20 @@ Add @code{INT2} and @code{INT8} intrinsics. Add @code{CPU_TIME} intrinsic. @item +Add @code{ALARM} intrinsic. + +@item @code{CTIME} intrinsic now accepts any @code{INTEGER} argument, not just @code{INTEGER(KIND=2)}. + +@item +@code{g77} driver now prints version information (such as produced +by @kbd{g77 -v}) to @code{stderr} instead of @code{stdout}. + +@item +The @samp{.r} suffix now designates a Ratfor source file, +to be preprocessed via the @code{ratfor} command, available +separately. @end itemize @heading In 0.5.20: @@ -3606,7 +3755,7 @@ building it from this and future versions of @code{g77}. @item Dave Love's implementation of @code{libU77} has been added to the version of @code{libf2c} distributed with -and built by @code{g77}. +and built as part of @code{g77}. @code{g77} now knows about the routines in this library as intrinsics. @@ -3654,8 +3803,8 @@ This type is wide enough (holds the same number of bits) as the character-pointer type on the machine. -On most systems, this won't make a noticeable difference, -whereas on Alphas and other systems with 64-bit pointers, +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)} @@ -3731,6 +3880,15 @@ A new group of intrinsics, @samp{gnu}, has been added to contain the new @code{REALPART}, @code{IMAGPART}, and @code{COMPLEX} intrinsics. An old group, @samp{dcp}, has been removed. + +@item +Complain about industry-wide ambiguous references +@samp{REAL(@var{expr})} and @samp{AIMAG(@var{expr})}, +where @var{expr} is @code{DOUBLE COMPLEX} (or any +complex type other than @code{COMPLEX}), unless +@samp{-ff90} option specifies Fortran 90 interpretation +or new @samp{-fugly-complex} option, in conjunction with +@samp{-fnot-f90}, specifies @code{f2c} interpretation. @end itemize @heading In 0.5.19: diff --git a/gcc/f/intdoc.in b/gcc/f/intdoc.in index d7a85a01bef..62b93645b1e 100644 --- a/gcc/f/intdoc.in +++ b/gcc/f/intdoc.in @@ -2058,9 +2058,10 @@ Fills @var{@1@} with the system's host name returned by @code{gethostname(2)}, returning 0 on success or a non-zero error code (@code{ENOSYS} if the system does not provide @code{gethostname(2)}). -On some systems (specifically SCO) it might be necessary to link the -``socket'' library if you call this routine, i.e.@: append -@samp{-lg2c -lsocket -lm} to the @code{g77} arguments. +On some systems (specifically SCO) it may be necessary to link the +``socket'' library if you call this routine. +Typically this means adding @samp{-lg2c -lsocket -lm} +to the @code{g77} command line when linking the program. ") DEFDOC (HOSTNM_subr, "Get host name.", "\ @@ -2074,9 +2075,10 @@ Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine, or do not support the (optional) @var{@2@} argument. -On some systems (specifically SCO) it might be necessary to link the -``socket'' library if you call this routine, i.e.@: append -@samp{-lg2c -lsocket -lm} to the @code{g77} arguments. +On some systems (specifically SCO) it may be necessary to link the +``socket'' library if you call this routine. +Typically this means adding @samp{-lg2c -lsocket -lm} +to the @code{g77} command line when linking the program. ") DEFDOC (FLUSH, "Flush buffered output.", "\ @@ -2162,10 +2164,10 @@ Returns in DEFDOC (FSEEK, "Position file (low-level).", "\ Attempts to move Fortran unit @var{@1@} to the specified -@var{Offset}: absolute offset if @var{@2@}=0; relative to the -current offset if @var{@2@}=1; relative to the end of the file if -@var{@2@}=2. -It branches to label @var{@3@} if @var{@1@} is +@var{@2@}: absolute offset if @var{@3@}=0; relative to the +current offset if @var{@3@}=1; relative to the end of the file if +@var{@3@}=2. +It branches to label @var{@4@} if @var{@1@} is not open or if the call otherwise fails. ") diff --git a/gcc/f/news.texi b/gcc/f/news.texi index 61505847e1b..861709720b1 100644 --- a/gcc/f/news.texi +++ b/gcc/f/news.texi @@ -5,7 +5,7 @@ @c The text of this file appears in the file BUGS @c in the G77 distribution, as well as in the G77 manual. -@c 1998-05-20 +@c 1998-09-01 @ifclear NEWSONLY @node News @@ -46,7 +46,205 @@ Miscellany This order is not strict---for example, some items involve a combination of these elements. -@heading In @code{egcs} 1.1: +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. + +Therefore, @code{egcs} versions sometimes have multiple listings +to help clarify how they differ from other versions, +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): +@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 + +@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3): +@itemize @bullet +@item +Fix bugs in the @code{libU77} intrinsic @samp{HostNm} +that wrote one byte beyond the end of its @samp{CHARACTER} +argument, +and in the @code{libU77} intrinsics +@samp{GMTime} and @samp{LTime} +that overwrote their arguments. + +@item +Assumed arrays with negative bounds +(such as @samp{REAL A(-1:*)}) +no longer elicit spurious diagnostics from @code{g77}, +even on systems with pointers having +different sizes than integers. + +@item +Valid combinations of @code{EXTERNAL}, +passing that external as a dummy argument +without explicitly giving it a type, +and, in a subsequent program unit, +referencing that external as +an external function with a different type +no longer crash @code{g77}. + +@item +@code{CASE DEFAULT} no longer crashes @code{g77}. + +@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. + +@item +Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a +compile-time constant @code{INTEGER} expression. + +@item +Fix @code{g77} @samp{-g} option so procedures that +use @samp{ENTRY} can be stepped through, line by line, +in @code{gdb}. + +@item +Allow any @code{REAL} argument to intrinsics +@code{Second} and @code{CPU_Time}. + +@item +Use @code{tempnam}, if available, to open scratch files +(as in @samp{OPEN(STATUS='SCRATCH')}) +so that the @code{TMPDIR} environment variable, +if present, is used. + +@item +@code{g77}'s version of @code{libf2c} separates out +the setting of global state +(such as command-line arguments and signal handling) +from @file{main.o} into distinct, new library +archive members. + +This should make it easier to write portable applications +that have their own (non-Fortran) @code{main()} routine +properly set up the @code{libf2c} environment, even +when @code{libf2c} (now @code{libg2c}) is a shared library. + +@item +@code{g77} no longer installs the @file{f77} command +and @file{f77.1} man page +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. + +@item +@code{g77} no longer installs the @file{libf2c.a} library +and @file{f2c.h} include file +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. + +@item +The @file{libf2c.a} library produced by @code{g77} has been +renamed to @file{libg2c.a}. +It is installed only in the @code{gcc} ``private'' +directory heirarchy, @file{gcc-lib}. +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. + +@item +The @file{f2c.h} include (header) file produced by @code{g77} +has been renamed to @file{g2c.h}. +It is installed only in the @code{gcc} ``private'' +directory heirarchy, @file{gcc-lib}. +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. + +@item +The @code{g77} command now expects the run-time library +to be named @code{libg2c.a} instead of @code{libf2c.a}, +to ensure that a version other than the one built and +installed as part of the same @code{g77} version is picked up. + +@item +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. + +@item +@code{install-info} now used to update the directory of +Info documentation to contain an entry for @code{g77} +(during installation). + +@item +Some diagnostics have been changed from warnings to errors, +to prevent inadvertent use of the resulting, probably buggy, +programs. +These mostly include diagnostics about use of unsupported features +in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and +@code{WRITE} statements, +and about truncations of various sorts of constants. + +@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}. + +@item +Improve documentation and indexing. + +@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 +specifier, and perhaps some build (porting) problems +as well. +@end itemize + +@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23): @itemize @bullet @item @code{g77} no longer produces incorrect code @@ -97,11 +295,11 @@ not to the longstanding deficiencies vis-a-vis @samp{COMMON} and @samp{EQUIVALENCE}. @item -The F90 @samp{DATE_AND_TIME} intrinsic now is +The F90 @samp{Date_and_Time} intrinsic now is supported. @item -The F90 @samp{SYSTEM_CLOCK} intrinsic allows +The F90 @samp{System_Clock} intrinsic allows the optional arguments (except for the @samp{Count} argument) to be omitted. @@ -112,7 +310,8 @@ Upgrade to @code{libf2c} as of 1998-06-18. Improve documentation and indexing. @end itemize -@heading In 0.5.23: +@c 1998-05-20: 0.5.23 released. +@heading In 0.5.23 (versus 0.5.22): @itemize @bullet @item This release contains several regressions against @@ -138,7 +337,7 @@ the options @samp{-fargument-alias}, @samp{-fargument-noalias}, and @samp{-fargument-noalias-global}, and the corresponding alias-analysis code. -(Version 1.0.1 of @code{egcs} has the alias-analysis +(@code{egcs} has the alias-analysis code, but not the @code{__restrict__} keyword. @code{egcs} @code{g77} users benefit from the alias-analysis code despite the lack of the @code{__restrict__} keyword, @@ -150,7 +349,7 @@ Support for the GNU compiler options @samp{-freduce-all-givs}, and @samp{-frerun-loop-opt}. -(Version 1.0.1 of @code{egcs} supports these options. +(@code{egcs} supports these options. @code{g77} users of @code{egcs} benefit from them even if they are not explicitly specified, because the defaults are optimized for @code{g77} users.) @@ -294,7 +493,8 @@ specifier, and perhaps some build (porting) problems as well. @end itemize -@heading In 0.5.22: +@c 1998-03-16: 0.5.22 released. +@heading In 0.5.22 (versus 0.5.21): @itemize @bullet @item Fix code generation for iterative @code{DO} loops that @@ -304,7 +504,7 @@ For example, @samp{DO 10 J=2,J} now is compiled correctly. @cindex DNRM2 @cindex stack, 387 coprocessor -@cindex ix86 +@cindex Intel x86 @cindex -O2 @item Fix a code-generation bug that afflicted @@ -321,7 +521,7 @@ Fix @code{DTime} intrinsic so as not to truncate results to integer values (on some systems). @item -Fix @code{SIGNAL} intrinsic so it offers portable +Fix @code{Signal} intrinsic so it offers portable support for 64-bit systems (such as Digital Alphas running GNU/Linux). @@ -382,7 +582,7 @@ Allow any numeric argument to intrinsics @item Use @code{tempnam}, if available, to open scratch files -(as in @samp{OPEN(STATUS='SCRATCH')} +(as in @samp{OPEN(STATUS='SCRATCH')}) so that the @code{TMPDIR} environment variable, if present, is used. @@ -421,7 +621,7 @@ anyway for a statement like @samp{PRINT '(I)garbage', 1} by printing @samp{(I)garbage} as the format string.) @item -Improve compilation of FORMAT expressions so that +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 @@ -446,6 +646,137 @@ This fixes a formatted-I/O bug that afflicted (such as Digital Alpha running GNU/Linux). @end itemize +@c 1998-03-15: egcs-1.0.2 released. +@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1): +@itemize @bullet +@item +Fix @code{g77} crash triggered by @code{CASE} statement with +an omitted lower or upper bound. + +@item +Fix @code{g77} crash on statements such as +@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where +@samp{Z} is @code{DOUBLE COMPLEX}. + +@cindex ELF support +@cindex support, ELF +@cindex -fPIC option +@cindex options, -fPIC +@item +Fix @samp{-fPIC} (such as compiling for ELF targets) +on the Intel x86 architecture target +so invalid assembler code is no longer produced. + +@item +Fix @samp{-fpedantic} to not reject procedure invocations +such as @samp{I=J()} and @samp{CALL FOO()}. + +@item +Fix @samp{-fugly-comma} to affect invocations of +only external procedures. +Restore rejection of gratuitous trailing omitted +arguments to intrinsics, as in @samp{I=MAX(3,4,,)}. + +@item +Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and +@samp{-fbadu77-intrinsics-*} options. +@end itemize + +@c 1998-01-02: egcs-1.0.1 released. +@heading In @code{egcs} 1.0.1 (versus @code{egcs} 1.0): +@itemize @bullet +@item +Fix run-time crash involving @code{NAMELIST} on 64-bit +machines such as Alphas. +@end itemize + +@c 1997-12-03: egcs-1.0 released. +@heading In @code{egcs} 1.0 (versus 0.5.21): +@itemize @bullet +@item +Version 1.0 of @code{egcs} +contains several regressions against +version 0.5.21 of @code{g77}, +due to using the +``vanilla'' @code{gcc} back end instead of patching +it to fix a few bugs and improve performance in a +few cases. + +@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet}, +available in plain-text format in @code{gcc/f/BUGS}, +for information on the known bugs in this version, +including the regressions. + +Features that have been dropped from this version +of @code{g77} due to their being implemented +via @code{g77}-specific patches to the @code{gcc} +back end in previous releases include: + +@itemize -- +@item +Support for the C-language @code{restrict} keyword. + +@item +Support for the @samp{-W} option warning about +integer division by zero. + +@item +The Intel x86-specific option @samp{-malign-double} +applying to stack-allocated data +as well as statically-allocate data. +@end itemize + +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. + +@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. + +@item +Fix @code{DTime} intrinsic so as not to truncate +results to integer values (on some systems). + +@item +Remove support for non-@code{egcs} versions of @code{gcc}. + +@cindex -@w{}-driver option +@cindex g77 options, -@w{}-driver +@cindex options, -@w{}-driver +@item +Remove support for the @samp{--driver} option, +as @code{g77} now does all the driving, +just like @code{gcc}. + +@item +Allow any numeric argument to intrinsics +@code{Int2} and @code{Int8}. + +@item +Improve diagnostic messages from @code{libf2c} +so it is more likely that the printing of the +active format string is limited to the string, +with no trailing garbage being printed. + +(Unlike @code{f2c}, @code{g77} did not append +a null byte to its compiled form of every +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.) + +@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 itemize + +@c 1997-09-09: 0.5.21 released. @heading In 0.5.21: @itemize @bullet @item @@ -765,6 +1096,7 @@ that aren't quite accurate in @code{g77}'s version of Reserve @code{INTEGER(KIND=0)} for future use. @end itemize +@c 1997-02-28: 0.5.20 released. @heading In 0.5.20: @itemize @bullet @item @@ -1026,6 +1358,7 @@ up automatically via a message in the diagnostic itself. the Info documentation.) @end itemize +@c 1997-02-01: 0.5.19.1 released. @heading In 0.5.19.1: @itemize @bullet @item @@ -1050,6 +1383,7 @@ For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I} @code{DOUBLE COMPLEX}) have been fixed. @end itemize +@c 1996-12-07: 0.5.19 released. @heading In 0.5.19: @itemize @bullet @item @@ -1169,6 +1503,7 @@ of the areas. Improvements to documentation and indexing. @end itemize +@c 1996-04-01: 0.5.18 released. @heading In 0.5.18: @itemize @bullet @item @@ -1356,6 +1691,7 @@ named @code{netlib.bell-labs.com}, and the maintainer's new address is @email{dmg@@bell-labs.com}. @end itemize +@c 1995-11-18: 0.5.17 released. @heading In 0.5.17: @itemize @bullet @item @@ -1462,6 +1798,7 @@ Support @code{gcc} version 2.7.1. Upgrade to @code{libf2c} as of 1995-11-15. @end itemize +@c 1995-08-30: 0.5.16 released. @heading In 0.5.16: @itemize @bullet @item @@ -1634,6 +1971,7 @@ Build @code{libf2c} with @samp{-g0}, not @samp{-g2}, in effect smaller library without lots of debugging clutter. @end itemize +@c 1995-05-19: 0.5.15 released. @heading In 0.5.15: @itemize @bullet @item |