Article 822 of gnu.announce: Date: Mon, 1 Apr 1996 11:50:55 -0500 From: Craig Burley Message-ID: To: info-gnu-fortran@prep.ai.mit.edu Subject: GNU Fortran (g77) Version 0.5.18 Released Distribution: world Approved: info-gnu@prep.ai.mit.edu Path: nntpd.lkg.dec.com!depot.mro.dec.com!news.jrd.dec.com!tbjnws.tbj.dec.com!tkonws.tko.dec.com!news.dec-j!cs.titech.ac.jp!titech.ac.jp!wnoc-tyo-news!wnoc-sfc-news!venus.sun.com!cs.utexas.edu!howland.reston.ans.net!newsfeed.internetmci.com!bloom-beacon.mit.edu!ai-lab!prep.ai.mit.edu!gnu Newsgroups: gnu.announce,gnu.utils.bug,comp.os.linux.misc,comp.lang.fortran Followup-To: fortran@gnu.ai.mit.edu Lines: 193 Xref: nntpd.lkg.dec.com gnu.announce:822 gnu.utils.bug:13805 comp.os.linux.misc:112076 comp.lang.fortran:38692 This release includes many changes since 0.5.17. A list is included below. g77-0.5.17-0.5.18.diff.gz -- Patch file to apply to 0.5.17 g77-0.5.18.tar.gz -- Complete 0.5.18 distribution Please report any bugs or questions to fortran@gnu.ai.mit.edu, after first reviewing the documentation, and the .plan file obtained by the "finger" or "ftp" commands described therein. (GNU Fortran is a free replacement for the UNIX f77 Fortran compiler, and is currently in beta testing. To build it requires the GNU CC source distribution, Version 2.6.3 through 2.7.2.) tq vm, (burley) * Add some rudimentary support for `INTEGER*1', `INTEGER*2', `INTEGER*8', and their `LOGICAL' equivalents. (This support works on most, maybe all, `gcc' targets.) Thanks to Scott Snyder (`snyder@d0sgif.fnal.gov') for providing the patch for this! Among the missing elements from the support for these features are full intrinsic support and constants. * Add some rudimentary support for the `BYTE' and `WORD' type-declaration statements. `BYTE' corresponds to `INTEGER*1', while `WORD' corresponds to `INTEGER*2'. Thanks to Scott Snyder (`snyder@d0sgif.fnal.gov') for providing the patch for this! * The compiler code handling intrinsics has been largely rewritten to accommodate the new types. No new intrinsics or arguments for existing intrinsics have been added, so there is, at this point, no intrinsic to convert to `INTEGER*8', for example. * Support automatic arrays in procedures. * Reduce space/time requirements for handling large *sparsely* initialized aggregate arrays. This improvement applies to only a subset of the general problem to be addressed in 0.6. * Treat initial values of zero as if they weren't specified (in DATA and type-declaration statements). The initial values will be set to zero anyway, but the amount of compile time processing them will be reduced, in some cases significantly (though, again, this is only a subset of the general problem to be addressed in 0.6). A new option, `-fzeros', is introduced to enable the traditional treatment of zeros as any other value. * With `-ff90' in force, `g77' incorrectly interpreted `REAL(Z)' as returning a `REAL' result, instead of as a `DOUBLE PRECISION' result. (Here, `Z' is `DOUBLE COMPLEX'.) With `-fno-f90' in force, the interpretation remains unchanged, since this appears to be how at least some F77 code using the `DOUBLE COMPLEX' extension expected it to work. Essentially, `REAL(Z)' in F90 is the same as `DBLE(Z)', while in extended F77, it appears to be the same as `REAL(REAL(Z))'. * An expression involving exponentiation, where both operands were type `INTEGER' and the right-hand operand was negative, was erroneously evaluated. * Fix bugs involving `DATA' implied-`DO' constructs (these involved an errant diagnostic and a crash, both on good code, one involving subsequent statement-function definition). * Close `INCLUDE' files after processing them, so compiling source files with lots of `INCLUDE' statements does not result in being unable to open `INCLUDE' files after all the available file descriptors are used up. * Speed up compiling, especially of larger programs, and perhaps slightly reduce memory utilization while compiling (this is *not* the improvement planned for 0.6 involving large aggregate areas)--these improvements result from simply turning off some low-level code to do self-checking that hasn't been triggered in a long time. * Introduce three new options that implement optimizations in the `gcc' back end (GBE). These options are `-fmove-all-movables', `-freduce-all-givs', and `-frerun-loop-opt', which are enabled, by default, for Fortran compilations. These optimizations are intended to help toon Fortran programs. * Patch the GBE to do a better job optimizing certain kinds of references to array elements. * Due to patches to the GBE, the version number of `gcc' also is patched to make it easier to manage installations, especially useful if it turns out a `g77' change to the GBE has a bug. The `g77'-modified version number is the `gcc' version number with the string `.f.N' appended, where `f' identifies the version as enhanced for Fortran, and N is `1' for the first Fortran patch for that version of `gcc', `2' for the second, and so on. So, this introduces version `2.7.2.f.1' of `gcc'. * Make several improvements and fixes to diagnostics, including the removal of two that were inappropriate or inadequate. * Warning about two successive arithmetic operators, produced by `-Wsurprising', now produced *only* when both operators are, indeed, arithmetic (not relational/boolean). * `-Wsurprising' now warns about the remaining cases of using non-integral variables for implied-`DO' loops, instead of these being rejected unless `-fpedantic' or `-fugly' specified. * Allow `SAVE' of a local variable or array, even after it has been given an initial value via `DATA', for example. * Introduce an Info version of `g77' documentation, which supercedes `gcc/f/CREDITS', `gcc/f/DOC', and `gcc/f/PROJECTS'. These files will be removed in a future release. The files `gcc/f/BUGS', `gcc/f/INSTALL', and `gcc/f/NEWS' now are automatically built from the texinfo source when distributions are made. This effort was inspired by a first pass at translating `g77-0.5.16/f/DOC' that was contributed to Craig by David Ronis (`ronis@onsager.chem.mcgill.ca'). * New `-fno-second-underscore' option to specify that, when `-funderscoring' is in effect, a second underscore is not to be appended to Fortran names already containing an underscore. * Change the way iterative `DO' loops work to follow the F90 standard. In particular, calculation of the iteration count is still done by converting the start, end, and increment parameters to the type of the `DO' variable, but the result of the calculation is always converted to the default `INTEGER' type. (This should have no effect on existing code compiled by `g77', but code written to assume that use of a *wider* type for the `DO' variable will result in an iteration count being fully calculated using that wider type (wider than default `INTEGER') must be rewritten.) * Upgrade to `libf2c' as of 1996-03-23, and fix up some of the build procedures. Note that the email addresses related to `f2c' have changed--the distribution site now is named `netlib.bell-labs.com', and the maintainer's new address is `dmg@bell-labs.com'. [ Most GNU software is packed using the GNU `gzip' compression program. Source code is available on most sites distributing GNU software. For information on how to order GNU software on tape, floppy or cd-rom, or printed GNU manuals, check the file etc/ORDERS in the GNU Emacs distribution, ftp the file /pub/gnu/GNUinfo/ORDERS on prep, or e-mail a request to: gnu@prep.ai.mit.edu By ordering your GNU software from the FSF, you help us continue to develop more free software. Media revenues are our primary source of support. Donations to FSF are deductible on US tax returns. The above software will soon be at these ftp sites as well. Please try them before prep.ai.mit.edu as prep is very busy! thanx -gnu@prep.ai.mit.edu ASIA: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep, cair-archive.kaist.ac.kr:/pub/gnu, ftp.nectec.or.th:/pub/mirrors/gnu AUSTRALIA: archie.au:/gnu (archie.oz or archie.oz.au for ACSnet) AFRICA: ftp.sun.ac.za:/pub/gnu MIDDLE-EAST: ftp.technion.ac.il:/pub/unsupported/gnu EUROPE: irisa.irisa.fr:/pub/gnu, ftp.univ-lyon1.fr:pub/gnu, ftp.mcc.ac.uk, unix.hensa.ac.uk:/mirrors/uunet/systems/gnu, src.doc.ic.ac.uk:/gnu, ftp.ieunet.ie:pub/gnu, ftp.eunet.ch, nic.switch.ch:/mirror/gnu, ftp.informatik.rwth-aachen.de:/pub/gnu, ftp.informatik.tu-muenchen.de, ftp.win.tue.nl:/pub/gnu, ftp.nl.net, ftp.etsimo.uniovi.es:/pub/gnu, ftp.funet.fi:/pub/gnu, ftp.denet.dk, ftp.stacken.kth.se, isy.liu.se, ftp.luth.se:/pub/unix/gnu, ftp.sunet.se:/pub/gnu, archive.eu.net SOUTH AMERICA: ftp.inf.utfsm.cl:/pub/gnu, ftp.unicamp.br:/pub/gnu WESTERN CANADA: ftp.cs.ubc.ca:/mirror2/gnu USA: wuarchive.wustl.edu:/systems/gnu, labrea.stanford.edu, ftp.digex.net:/pub/gnu, ftp.kpc.com:/pub/mirror/gnu, f.ms.uky.edu:/pub3/gnu, jaguar.utah.edu:/gnustuff, ftp.hawaii.edu:/mirrors/gnu, uiarchive.cso.uiuc.edu:/pub/gnu, ftp.cs.columbia.edu:/archives/gnu/prep, col.hp.com:/mirrors/gnu, gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu ]