GNU Fortran (g77) is in private alpha test (as of September 26, 1992). The latest release is: G77-A001P040 (93/03/12 14:40) -- the front end ss-930305-P001 (93/03/10 15:12) -- the back end Enhancements and bugfixes completed in unreleased version (G77-A002): Dizzying number of combinations of case sensitivity/insensitivity for source code Faster output of error messages (stderr not buffered, so g77 does its own buffering on a per-message basis) Enforcing the requirement of INTRINSIC or EXTERNAL FOO before passing procedure FOO as actual argument Command-line options for stand-alone front end (can the compiler be far behind?) Complain when implied-DO variable modified in list (as in "READ *, (I, ARRAY(I), I=1,10)") Allow only variable as implied-DO variable in output statements such as WRITE and PRINT (i.e. disallow "PRINT *, (I, I+1=1,10)") CHARACTER*(*) FOO no longer accepted in procedures as variable when never passed in to any entry point Recent enhancements and bugfixes made to current version (G77-A001): P040: Create only pointers, not references, for back end, so it no longer complains about not being able to convert between them P039: Don't crash on "REAL A(INT(N))", just complain for now (it is nonstandard) and support it later; don't crash when given certain C source code as input P038: Generate better code for ENTRY involving adjustable arrays and prevent crashes when COMMON variables serve as the "adjustors" P037: Don't crash on certain cases of missing comma in FORMAT P036: Unless -pedantic, allow Hollerith in DATA (and similar) contexts (such as INTEGER I/4HABCD/) P035: Fix handling of CHARACTER assignments involving concatenations to do all the necessary concatenations Bugs pending or being worked on: Confirming type of INTEGER variable after it is used in an array declarator (the N in REAL A(N)) yields diagnostic, but is permitted by the standard Back end crashes involving COMPLEX operations (fewer of these, but even in upcoming snapshot, I think two test cases will still crash on i386 machines, and maybe MIPS as well -- being worked on by gcc i386 maintainer) Diagnostic for DOUBLE COMPLEX (where result would be DOUBLE COMPLEX, which isn't yet supported) could be clearer Need to do proper back-end housekeeping to run on RS/6000 Call c_div instead of doing complex division straightforward way, to support larger ranges of input values 8-bit CHAR/ICHAR involving negative integers Command-line options not being handled in all cases (g77 just ignores the "languages-specific" ones, so I need to add code for those) Crash when using -O with certain COMPLEX constructs (back end bug that might still be around) Other g77-related email addresses: fortran@gnu.ai.mit.edu Send email here to contact the author and/or current maintainer of GNU Fortran at the FSF, if you don't already know who that is. info-gnu-fortran@prep.ai.mit.edu The GNU Fortran Mailing List (moderated). Status info is occasionally posted to this list regarding the alpha test, plans or questions about g77 and Fortran in general, and so on. info-gnu-fortran-request@prep.ai.mit.edu Send email to this address to get added to the above mailing list. gnu@prep.ai.mit.edu Send email to this address to get information on the FSF and Project GNU. lpf@uunet.uu.net Send email to this address to get information on the League for Programming Freedom (LPF), a political organization that is trying to make sure that projects like GNU Fortran aren't shut down now or in the future because of increasing legal barriers to the free flow of information (the essential component of all software) in the U.S.A. and elsewhere. -------- WHAT IS GNU FORTRAN? (last updated 92/11/20) GNU Fortran is the Fortran development system for Project GNU. GNU means "GNU's Not UNIX(tm)" and is the primary project currently being worked on by the Free Software Foundation (FSF), a non-profit organization committed to the creation of a large body of useful, free, source-code- available software. GNU is intended as a replacement, wholesale and/or in pieces, of a complete UNIX system. (UNIX is a trademark of AT&T.) GNU Fortran, also called g77, consists of a compiler, run-time libraries, debugger support, and documentation. g77 supports ANSI FORTRAN 77 conformance, plus popular extensions to Fortran including some ANSI/ISO Fortran 90 features. The g77 compiler is a combination of a "front end" that translates Fortran source programs and a "back end" that uses the results of the translation to make an object or executable file that performs the actions specified by the source programs when run. The back end is the same back end used by GNU C, C++, and Objective-C, which have their own front ends to translate their respective languages. Other front ends for Pascal and ADA are in progress. The run-time libraries for g77 are currently whatever is compatible with the libraries used by the f2c program, a public-domain Fortran-to-C converter distributed by AT&T/Bellcore. f2c comes with its own libraries (written in C) for systems that don't already have compatible libraries. By using the same libraries, procedures compiled by g77 and f2c can be freely mixed to create an executable program. However, g77 is unable to offer some popular extensions that aren't supported by f2c-compatible libraries, and the interface to the libraries isn't necessarily a high-performance design. Thus, use of the f2c library interface might be a short-term thing. Debugger support for g77 consists of compiler code to output the appropriate debugging information when -g is specified at compile time plus code in the GNU Debugger, GDB, to support evaluation of Fortran expressions. The private alpha test is called "private" because the source code making up the test is not being publicly released. Only those testers and developers accepted by the author of GNU Fortran should have a copy of g77 currently. It is called "alpha" because it is the first phase of testing (alpha is the first letter of the Greek alphabet). There are around 30 or so alpha testers in locations all over the U.S.A., including testers in Norway, Brazil, the U.K., Canada, France, Denmark, and, yes, even New Jersey! As alpha test winds down (as necessary features are added and the bug-rate gets lower), plans will be made to go to beta test (the second phase of testing), which will be a public release. The primary focus of the alpha test is to test the g77 front end, since that has most of the new code. The secondary focus of the alpha test is to test the integration between the front end and the back end. Currently, this is where most of the bugs seem to be. The tertiary focus is the quality of code generated by the GNU back end. There are no schedules regarding future events such as when beta test will happen, when documentation will be written, and so on. The GNU Fortran effort so far is entirely voluntary, and delays might happen due to the need to earn income, so the best way to assure rapid delivery of a high- quality free Fortran system is to offer donations or other forms of funding to the author and/or the FSF.