aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc/f/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/f/NEWS')
-rw-r--r--contrib/gcc/f/NEWS531
1 files changed, 531 insertions, 0 deletions
diff --git a/contrib/gcc/f/NEWS b/contrib/gcc/f/NEWS
new file mode 100644
index 000000000000..cc73668ebd7a
--- /dev/null
+++ b/contrib/gcc/f/NEWS
@@ -0,0 +1,531 @@
+_Note:_ This file is automatically generated from the files
+`news0.texi' and `news.texi'. `NEWS' is _not_ a source file, although
+it is normally included within source distributions.
+
+ This file lists news about the GCC-3.2 version (and some other
+versions) of the GNU Fortran compiler. Copyright (C)
+1995,1996,1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+You may copy, distribute, and modify it freely as long as you preserve
+this copyright notice and permission notice.
+
+News About GNU Fortran
+**********************
+
+ Changes made to recent versions of GNU Fortran are listed below,
+with the most recent version first.
+
+ The changes are generally listed in order:
+
+ 1. Code-generation and run-time-library bug-fixes
+
+ 2. Compiler and run-time-library crashes involving valid code that
+ have been fixed
+
+ 3. New features
+
+ 4. Fixes and enhancements to existing features
+
+ 5. New diagnostics
+
+ 6. Internal improvements
+
+ 7. Miscellany
+
+ This order is not strict--for example, some items involve a
+combination of these elements.
+
+ 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. Note that all such variants are
+obsolete _as of July 1999_ - the information is retained here only for
+its historical value.
+
+ 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.
+
+ An online, "live" version of this document (derived directly from
+the mainline, development version of `g77' within `gcc') is available at
+`http://www.gnu.org/software/gcc/onlinedocs/g77/News.html'.
+
+ The following information was last updated on 2002-10-28:
+
+In `GCC' 3.2 versus `GCC' 3.1:
+==============================
+
+ * Problem Reports fixed (in chronological order of submission):
+ `8308'
+ gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed
+ in 3.2.1]
+
+In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0:
+=============================================================
+
+ * Problem Reports fixed (in chronological order of submission):
+ `947'
+ Data statement initialization with subscript of kind INTEGER*2
+
+ `3743'
+ Reference to intrinsic `ISHFT' invalid
+
+ `3807'
+ Function BESJN(integer,double) problems
+
+ `3957'
+ g77 -pipe -xf77-cpp-input sends output to stdout
+
+ `4279'
+ g77 -h" gives bogus output
+
+ `4730'
+ ICE on valid input using CALL EXIT(%VAL(...))
+
+ `4752'
+ g77 -v -c -xf77-version /dev/null -xnone causes ice
+
+ `4885'
+ BACKSPACE example that doesn't work as of gcc/g77-3.0.x
+
+ `5122'
+ g77 rejects accepted use of INTEGER*2 as type of DATA
+ statement loop index
+
+ `5397'
+ ICE on compiling source with 540 000 000 REAL array
+
+ `5473'
+ ICE on BESJN(integer*8,real)
+
+ `5837'
+ bug in loop unrolling
+
+ * `g77' now has its man page generated from the texinfo
+ documentation, to guarantee that it remains up to date.
+
+ * `g77' used to reject the following program on 32-bit targets:
+ PROGRAM PROG
+ DIMENSION A(140 000 000)
+ END
+ with the message:
+ prog.f: In program `prog':
+ prog.f:2:
+ DIMENSION A(140 000 000)
+ ^
+ Array `a' at (^) is too large to handle
+ because 140 000 000 REALs is larger than the largest bit-extent
+ that can be expressed in 32 bits. However, bit-sizes never play a
+ role after offsets have been converted to byte addresses.
+ Therefore this check has been removed, and the limit is now 2
+ Gbyte of memory (around 530 000 000 REALs). Note: On GNU/Linux
+ systems one has to compile programs that occupy more than 1 Gbyte
+ statically, i.e. `g77 -static ...'.
+
+ * Based on work done by Juergen Pfeifer (<juergen.pfeifer@gmx.net>)
+ libf2c is now a shared library. One can still link in all objects
+ with the program by specifying the `-static' option.
+
+ * Robert Anderson (<rwa@alumni.princeton.edu>) thought up a two line
+ change that enables g77 to compile such code as:
+ SUBROUTINE SUB(A, N)
+ DIMENSION N(2)
+ DIMENSION A(N(1),N(2))
+ A(1,1) = 1.
+ END
+ Note the use of array elements in the bounds of the adjustable
+ array A.
+
+ * George Helffrich (<george@geo.titech.ac.jp>) implemented a change
+ in substring index checking (when specifying `-fbounds-check')
+ that permits the use of zero length substrings of the form
+ `string(1:0)'.
+
+ * Based on code developed by Pedro Vazquez
+ (<vazquez@penelope.iqm.unicamp.br>), the `libf2c' library is now
+ able to read and write files larger than 2 Gbyte on 32-bit target
+ machines, if the operating system supports this.
+
+In 0.5.26, `GCC' 3.0 versus `GCC' 2.95:
+=======================================
+
+ * 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 `ftruncate' OS function. Thanks go to the
+ GAMESS developers for bringing this to our attention.
+
+ * Using options `-g', `-ggdb' or `-gdwarf[-2]' (where appropriate
+ for your target) now also enables debugging information for COMMON
+ BLOCK and EQUIVALENCE items to be emitted. Thanks go to Andrew
+ Vaught (<andy@xena.eas.asu.edu>) and George Helffrich
+ (<george@geology.bristol.ac.uk>) for fixing this longstanding
+ problem.
+
+ * It is not necessary anymore to use the option `-femulate-complex'
+ to compile Fortran code using COMPLEX arithmetic, even on 64-bit
+ machines (like the Alpha). This will improve code generation.
+
+ * 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.
+
+ * Upgrade to `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.
+
+ * The `TtyNam' intrinsics now set NAME to all spaces (at run time)
+ if the system has no `ttyname' implementation available.
+
+ * Upgrade to `libf2c' as of 1999-06-28.
+
+ This fixes a bug whereby input to a `NAMELIST' read involving a
+ repeat count, such as `K(5)=10*3', was not properly handled by
+ `libf2c'. The first item was written to `K(5)', but the remaining
+ nine were written elsewhere (still within the array), not
+ necessarily starting at `K(6)'.
+
+In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versus `EGCS' 1.1.2:
+=======================================================
+
+ * `g77' no longer generates bad code for assignments, or other
+ conversions, of `REAL' or `COMPLEX' constant expressions to type
+ `INTEGER(KIND=2)' (often referred to as `INTEGER*8').
+
+ For example, `INTEGER*8 J; J = 4E10' now works as documented.
+
+ * `g77' no longer truncates `INTEGER(KIND=2)' (usually `INTEGER*8')
+ subscript expressions when evaluating array references on systems
+ with pointers widers than `INTEGER(KIND=1)' (such as Alphas).
+
+ * `g77' no longer generates bad code for an assignment to a
+ `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.
+
+ * `libg2c' (`libf2c') no longer loses track of the file being worked
+ on during a `BACKSPACE' operation.
+
+ * `libg2c' (`libf2c') fixes a bug whereby input to a `NAMELIST' read
+ involving a repeat count, such as `K(5)=10*3', was not properly
+ handled by `libf2c'. The first item was written to `K(5)', but
+ the remaining nine were written elsewhere (still within the array),
+ not necessarily starting at `K(6)'.
+
+ * Automatic arrays now seem to be working on HP-UX systems.
+
+ * The `Date' intrinsic now returns the correct result on big-endian
+ systems.
+
+ * Fix `g77' so it no longer crashes when compiling I/O statements
+ using keywords that define `INTEGER' values, such as `IOSTAT=J',
+ where J is other than default `INTEGER' (such as `INTEGER*2').
+ Instead, it issues a diagnostic.
+
+ * Fix `g77' so it properly handles `DATA A/RPT*VAL/', where RPT is
+ not default `INTEGER', such as `INTEGER*2', instead of producing a
+ spurious diagnostic. Also fix `DATA (A(I),I=1,N)', where `N' is
+ not default `INTEGER' to work instead of crashing `g77'.
+
+ * The `-ax' option is now obeyed when compiling Fortran programs.
+ (It is passed to the `f771' driver.)
+
+ * The new `-fbounds-check' option causes `g77' to compile run-time
+ bounds checks of array subscripts, as well as of substring start
+ and end points.
+
+ * `libg2c' now supports building as multilibbed library, which
+ provides better support for systems that require options such as
+ `-mieee' to work properly.
+
+ * Source file names with the suffixes `.FOR' and `.FPP' now are
+ recognized by `g77' as if they ended in `.for' and `.fpp',
+ respectively.
+
+ * The order of arguments to the _subroutine_ forms of the `CTime',
+ `DTime', `ETime', and `TtyNam' intrinsics has been swapped. The
+ argument serving as the returned value for the corresponding
+ function forms now is the _second_ argument, making these
+ consistent with the other subroutine forms of `libU77' intrinsics.
+
+ * `g77' now warns about a reference to an intrinsic that has an
+ interface that is not Year 2000 (Y2K) compliant. Also, `libg2c'
+ has been changed to increase the likelihood of catching references
+ to the implementations of these intrinsics using the `EXTERNAL'
+ mechanism (which would avoid the new warnings).
+
+ * `g77' now warns about a reference to a function when the
+ corresponding _subsequent_ function program unit disagrees with
+ the reference concerning the type of the function.
+
+ * `-fno-emulate-complex' is now the default option. This should
+ result in improved performance of code that uses the `COMPLEX'
+ data type.
+
+ * The `-malign-double' option now reliably aligns _all_
+ double-precision variables and arrays on Intel x86 targets.
+
+ * Even without the `-malign-double' option, `g77' reliably aligns
+ local double-precision variables that are not in `EQUIVALENCE'
+ areas and not `SAVE''d.
+
+ * `g77' now open-codes ("inlines") division of `COMPLEX' operands
+ instead of generating a run-time call to the `libf2c' routines
+ `c_div' or `z_div', unless the `-Os' option is specified.
+
+ * `g77' no longer generates code to maintain `errno', a C-language
+ concept, when performing operations such as the `SqRt' intrinsic.
+
+ * `g77' developers can temporarily use the `-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.
+
+ * A substantial portion of the `g77' front end's code-generation
+ component was rewritten. It now generates code using facilities
+ more robustly supported by the `gcc' back end. One effect of this
+ rewrite is that some codes no longer produce a spurious "label LAB
+ used before containing binding contour" message.
+
+ * Support for the `-fugly' option has been removed.
+
+ * Improve documentation and indexing, including information on Year
+ 2000 (Y2K) compliance, and providing more information on internals
+ of the front end.
+
+ * Upgrade to `libf2c' as of 1999-05-10.
+
+In 0.5.24 versus 0.5.23:
+========================
+
+ There is no `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 `gcc' 2.8.1, as
+0.5.24 was planned to require.
+
+ Due to `EGCS' becoming `GCC' (which is now an acronym for "GNU
+Compiler Collection"), and `EGCS' 1.2 becoming officially designated
+`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 `g77' versions within `EGCS' versions 1.0 and 1.1, as well as
+in versions of `g77' documentation and notices during that period,
+"mainline" `g77' version numbering resumes at 0.5.25 with `GCC' 2.95
+(`EGCS' 1.2), skipping over 0.5.24 as a placeholder version number.
+
+ To repeat, there is no `g77' 0.5.24, but there is now a 0.5.25.
+Please remain calm and return to your keypunch units.
+
+In `EGCS' 1.1.2 versus `EGCS' 1.1.1:
+====================================
+
+ * Fix the `IDate' intrinsic (VXT) (in `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.
+
+ * Fix the `Date_and_Time' intrinsic (in `libg2c') to return the
+ milliseconds value properly in VALUES(8).
+
+ * Fix the `LStat' intrinsic (in `libg2c') to return device-ID
+ information properly in SARRAY(7).
+
+ * Improve documentation.
+
+In `EGCS' 1.1.1 versus `EGCS' 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 `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' hierarchy, 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' hierarchy, 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
+ hierarchy, `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 hierarchy, `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 `EGCS' 1.1 versus `g77' 0.5.23:
+==================================
+
+ * 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'.
+
+ * `g77' no longer produces incorrect code and initial values for
+ `EQUIVALENCE' and `COMMON' aggregates that, due to "unnatural"
+ ordering of members vis-a-vis their types, require initial padding.
+
+ * Fix `g77' crash compiling code containing the construct
+ `CMPLX(0.)' or similar.
+
+ * `g77' no longer crashes when compiling code containing
+ specification statements such as `INTEGER(KIND=7) PTR'.
+
+ * `g77' no longer crashes when compiling code such as `J = SIGNAL(1,
+ 2)'.
+
+ * `g77' now treats `%LOC(EXPR)' and `LOC(EXPR)' as "ordinary"
+ expressions when they are used as arguments in procedure calls.
+ This change applies only to global (filewide) analysis, making it
+ consistent with how `g77' actually generates code for these cases.
+
+ Previously, `g77' treated these expressions as denoting special
+ "pointer" arguments for the purposes of filewide analysis.
+
+ * Fix `g77' crash (or apparently infinite run-time) when compiling
+ certain complicated expressions involving `COMPLEX' arithmetic
+ (especially multiplication).
+
+ * 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'.
+
+ * The `g77' driver now ensures that `-lg2c' is specified in the link
+ phase prior to any occurrence of `-lm'. This prevents
+ accidentally linking to a routine in the SunOS4 `-lm' library when
+ the generated code wants to link to the one in `libf2c' (`libg2c').
+
+ * `g77' emits more debugging information when `-g' is used.
+
+ This new information allows, for example, `which __g77_length_a'
+ to be used in `gdb' to determine the type of the phantom length
+ argument supplied with `CHARACTER' variables.
+
+ This information pertains to internally-generated type, variable,
+ 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 `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 previous versions:
+=====================
+
+ Information on previous versions is not provided in this
+`gcc/gcc/f/NEWS' file, to keep it short. See `gcc/gcc/f/news.texi', or
+any of its other derivations (Info, HTML, dvi forms) for such
+information.
+