Commit 8cacfe11 by Dave Love

Regenerated.

From-SVN: r23710
parent a515a901
......@@ -219,7 +219,7 @@ Enough disk space
`makeinfo' is part of the GNU `texinfo' package; `makeinfo'
version 1.68 is distributed as part of GNU `texinfo' version
3.11.
3.12.
`makeinfo' is not needed in the typical case of installing `gcc'
and `g77'. *Note Missing tools?::, for information on when it
......
This file lists recent changes to the GNU Fortran compiler. Copyright
(C) 1995, 1996 Free Software Foundation, Inc. You may copy,
(C) 1995, 96, 97, 1998 Free Software Foundation, Inc. You may copy,
distribute, and modify it freely as long as you preserve this copyright
notice and permission notice.
......@@ -29,8 +29,162 @@ with the most recent version first.
This order is not strict--for example, some items involve a
combination of these elements.
In `egcs' 1.1:
==============
Note that two variants of `g77' are tracked below. The `egcs'
variant is described vis-a-vis previous versions of `egcs' and/or an
official FSF version, as appropriate.
Therefore, `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 `egcs' version contains
somewhat more difficult.
In 0.5.24 and `egcs' 1.1.1 (versus 0.5.23 and 1.1):
===================================================
* Fix `libg2c' so it performs an implicit `ENDFILE' operation (as
appropriate) whenever a `REWIND' is done.
(This bug was introduced in 0.5.23 and `egcs' 1.1 in `g77''s
version of `libf2c'.)
* Fix `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 `egcs' 1.1 in `g77''s
version of `libf2c'.)
* Fix `g77' so it no longer crashes compiling references to the
`Rand' intrinsic on some systems.
* Fix `g77' portion of installation process so it works better on
some systems (those with shells requiring `else true' clauses on
`if' constructs for the completion code to be set properly).
In `egcs' 1.1 (versus 0.5.24):
==============================
* Fix `g77' crash compiling code containing the construct
`CMPLX(0.)' or similar.
* Fix `g77' crash (or apparently infinite run-time) when compiling
certain complicated expressions involving `COMPLEX' arithmetic
(especially multiplication).
* Fix a code-generation bug that afflicted Intel x86 targets when
`-O2' was specified compiling, for example, an old version of the
`DNRM2' routine.
The x87 coprocessor stack was being mismanaged in cases involving
assigned `GOTO' and `ASSIGN'.
* Align static double-precision variables and arrays on Intel x86
targets regardless of whether `-malign-double' is specified.
Generally, this affects only local variables and arrays having the
`SAVE' attribute or given initial values via `DATA'.
In `egcs' 1.1 (versus `egcs' 1.0.3):
====================================
* Fix bugs in the `libU77' intrinsic `HostNm' that wrote one byte
beyond the end of its `CHARACTER' argument, and in the `libU77'
intrinsics `GMTime' and `LTime' that overwrote their arguments.
* Assumed arrays with negative bounds (such as `REAL A(-1:*)') no
longer elicit spurious diagnostics from `g77', even on systems
with pointers having different sizes than integers.
This bug is not known to have existed in any recent version of
`gcc'. It was introduced in an early release of `egcs'.
* Valid combinations of `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 `g77'.
* `CASE DEFAULT' no longer crashes `g77'.
* The `-Wunused' option no longer issues a spurious warning about
the "master" procedure generated by `g77' for procedures
containing `ENTRY' statements.
* Support `FORMAT(I<EXPR>)' when EXPR is a compile-time constant
`INTEGER' expression.
* Fix `g77' `-g' option so procedures that use `ENTRY' can be
stepped through, line by line, in `gdb'.
* Allow any `REAL' argument to intrinsics `Second' and `CPU_Time'.
* Use `tempnam', if available, to open scratch files (as in
`OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment
variable, if present, is used.
* `g77''s version of `libf2c' separates out the setting of global
state (such as command-line arguments and signal handling) from
`main.o' into distinct, new library archive members.
This should make it easier to write portable applications that
have their own (non-Fortran) `main()' routine properly set up the
`libf2c' environment, even when `libf2c' (now `libg2c') is a
shared library.
* `g77' no longer installs the `f77' command and `f77.1' man page in
the `/usr' or `/usr/local' heirarchy, even if the `f77-install-ok'
file exists in the source or build directory. See the
installation documentation for more information.
* `g77' no longer installs the `libf2c.a' library and `f2c.h'
include file in the `/usr' or `/usr/local' heirarchy, even if the
`f2c-install-ok' or `f2c-exists-ok' files exist in the source or
build directory. See the installation documentation for more
information.
* The `libf2c.a' library produced by `g77' has been renamed to
`libg2c.a'. It is installed only in the `gcc' "private" directory
heirarchy, `gcc-lib'. This allows system administrators and users
to choose which version of the `libf2c' library from `netlib' they
wish to use on a case-by-case basis. See the installation
documentation for more information.
* The `f2c.h' include (header) file produced by `g77' has been
renamed to `g2c.h'. It is installed only in the `gcc' "private"
directory heirarchy, `gcc-lib'. This allows system administrators
and users to choose which version of the include file from
`netlib' they wish to use on a case-by-case basis. See the
installation documentation for more information.
* The `g77' command now expects the run-time library to be named
`libg2c.a' instead of `libf2c.a', to ensure that a version other
than the one built and installed as part of the same `g77' version
is picked up.
* During the configuration and build process, `g77' creates
subdirectories it needs only as it needs them. Other cleaning up
of the configuration and build process has been performed as well.
* `install-info' now used to update the directory of Info
documentation to contain an entry for `g77' (during installation).
* 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 `OPEN', `INQUIRE', `READ', and `WRITE' statements, and
about truncations of various sorts of constants.
* Improve compilation of `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 `libf2c' for statements
like `PRINT '(I1', 42'.
* Improve documentation and indexing.
* The upgrade to `libf2c' as of 1998-06-18 should fix a variety of
problems, including those involving some uses of the `T' format
specifier, and perhaps some build (porting) problems as well.
In 0.5.24 and `egcs' 1.1 (versus 0.5.23):
=========================================
* `g77' no longer produces incorrect code and initial values for
`EQUIVALENCE' and `COMMON' aggregates that, due to "unnatural"
......@@ -62,17 +216,17 @@ In `egcs' 1.1:
and other information, not to the longstanding deficiencies
vis-a-vis `COMMON' and `EQUIVALENCE'.
* The F90 `DATE_AND_TIME' intrinsic now is supported.
* The F90 `Date_and_Time' intrinsic now is supported.
* The F90 `SYSTEM_CLOCK' intrinsic allows the optional arguments
* The F90 `System_Clock' intrinsic allows the optional arguments
(except for the `Count' argument) to be omitted.
* Upgrade to `libf2c' as of 1998-06-18.
* Improve documentation and indexing.
In 0.5.23:
==========
In 0.5.23 (versus 0.5.22):
==========================
* This release contains several regressions against version 0.5.22
of `g77', due to using the "vanilla" `gcc' back end instead of
......@@ -92,18 +246,17 @@ In 0.5.23:
`-fargument-noalias-global', and the corresponding
alias-analysis code.
(Version 1.0.1 of `egcs' has the alias-analysis code, but not
the `__restrict__' keyword. `egcs' `g77' users benefit from
the alias-analysis code despite the lack of the
`__restrict__' keyword, which is a C-language construct.)
(`egcs' has the alias-analysis code, but not the
`__restrict__' keyword. `egcs' `g77' users benefit from the
alias-analysis code despite the lack of the `__restrict__'
keyword, which is a C-language construct.)
- Support for the GNU compiler options `-fmove-all-movables',
`-freduce-all-givs', and `-frerun-loop-opt'.
(Version 1.0.1 of `egcs' supports these options. `g77' users
of `egcs' benefit from them even if they are not explicitly
specified, because the defaults are optimized for `g77'
users.)
(`egcs' supports these options. `g77' users of `egcs'
benefit from them even if they are not explicitly specified,
because the defaults are optimized for `g77' users.)
- Support for the `-W' option warning about integer division by
zero.
......@@ -198,8 +351,8 @@ In 0.5.23:
some uses of the `T' format specifier, and perhaps some build
(porting) problems as well.
In 0.5.22:
==========
In 0.5.22 (versus 0.5.21):
==========================
* Fix code generation for iterative `DO' loops that have one or more
references to the iteration variable, or to aliases of it, in
......@@ -216,7 +369,7 @@ In 0.5.22:
* Fix `DTime' intrinsic so as not to truncate results to integer
values (on some systems).
* Fix `SIGNAL' intrinsic so it offers portable support for 64-bit
* Fix `Signal' intrinsic so it offers portable support for 64-bit
systems (such as Digital Alphas running GNU/Linux).
* Fix run-time crash involving `NAMELIST' on 64-bit machines such as
......@@ -255,8 +408,8 @@ In 0.5.22:
* Allow any numeric argument to intrinsics `Int2' and `Int8'.
* Use `tempnam', if available, to open scratch files (as in
`OPEN(STATUS='SCRATCH')' so that the `TMPDIR' environment variable,
if present, is used.
`OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment
variable, if present, is used.
* Rename the `gcc' keyword `restrict' to `__restrict__', to avoid
rejecting valid, existing, C programs. Support for `restrict' is
......@@ -282,7 +435,7 @@ In 0.5.22:
like `PRINT '(I)garbage', 1' by printing `(I)garbage' as the
format string.)
* Improve compilation of FORMAT expressions so that a null byte is
* Improve compilation of `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 `libf2c' for statements
like `PRINT '(I1', 42'.
......@@ -299,6 +452,92 @@ In 0.5.22:
bug that afflicted 64-bit systems with 32-bit integers (such as
Digital Alpha running GNU/Linux).
In `egcs' 1.0.2 (versus `egcs' 1.0.1):
======================================
* Fix `g77' crash triggered by `CASE' statement with an omitted
lower or upper bound.
* Fix `g77' crash on statements such as `PRINT *,
(REAL(Z(I)),I=1,2)', where `Z' is `DOUBLE COMPLEX'.
* Fix `-fPIC' (such as compiling for ELF targets) on the Intel x86
architecture target so invalid assembler code is no longer
produced.
* Fix `-fpedantic' to not reject procedure invocations such as
`I=J()' and `CALL FOO()'.
* Fix `-fugly-comma' to affect invocations of only external
procedures. Restore rejection of gratuitous trailing omitted
arguments to intrinsics, as in `I=MAX(3,4,,)'.
* Fix compiler so it accepts `-fgnu-intrinsics-*' and
`-fbadu77-intrinsics-*' options.
In `egcs' 1.0.1 (versus `egcs' 1.0):
====================================
* Fix run-time crash involving `NAMELIST' on 64-bit machines such as
Alphas.
In `egcs' 1.0 (versus 0.5.21):
==============================
* Version 1.0 of `egcs' contains several regressions against version
0.5.21 of `g77', due to using the "vanilla" `gcc' back end instead
of patching it to fix a few bugs and improve performance in a few
cases.
*Note Actual Bugs We Haven't Fixed Yet: Actual Bugs, available in
plain-text format in `gcc/f/BUGS', for information on the known
bugs in this version, including the regressions.
Features that have been dropped from this version of `g77' due to
their being implemented via `g77'-specific patches to the `gcc'
back end in previous releases include:
- Support for the C-language `restrict' keyword.
- Support for the `-W' option warning about integer division by
zero.
- The Intel x86-specific option `-malign-double' applying to
stack-allocated data as well as statically-allocate data.
Note that the `gcc/f/gbe/' subdirectory has been removed from this
distribution as a result of `g77' being fully integrated with the
`egcs' variant of the `gcc' back end.
* Fix code generation for iterative `DO' loops that have one or more
references to the iteration variable, or to aliases of it, in
their control expressions. For example, `DO 10 J=2,J' now is
compiled correctly.
* Fix `DTime' intrinsic so as not to truncate results to integer
values (on some systems).
* Remove support for non-`egcs' versions of `gcc'.
* Remove support for the `--driver' option, as `g77' now does all
the driving, just like `gcc'.
* Allow any numeric argument to intrinsics `Int2' and `Int8'.
* Improve diagnostic messages from `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 `f2c', `g77' did not append a null byte to its compiled
form of every format string specified via a `FORMAT' statement.
However, `f2c' would exhibit the problem anyway for a statement
like `PRINT '(I)garbage', 1' by printing `(I)garbage' as the
format string.)
* Upgrade to `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).
In 0.5.21:
==========
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment