jim@jagubox.gsfc.nasa.gov (Jim Jagielski) (06/24/91)
A long time ago I compared the NKR FORTRAN compiler with the AbSoft MacFORTRAN II compiler for A/UX. My original reviews tended to lean towards NKR since they had quicker compile times and very good support. NKR FORTRAN is now up to version 4.1 and some other changes have been made that make now a good time for a "new" review... NKR FORTRAN Ver 4.1: The older versions (3.x) of this compiler where quite good. It boasted quick compile times and it's optimization was good. Also customer support WAS great: I'd notice a bug (or make a suggestion), they'd fix it or incorporate the change and then send me a FREE upgrade! Lately they have upgraded to version 4.1 and some changes have crept in. 1st of all, their quick compile time have gotten longer. Although still faster than AbSoft's MacFORTRAN II (MFII) by about 10 to 12% MFII's optimizations are better, more complete and produce tighter code. Also, NKR always produced larger executables and this has not changed... larger by about 15 to 20% in some cases. NKR STILL doesn't produce accurate symbol table info, making the use of sdb even more of a pain then usual. Finally, their excellent customer support seems to have gone down the drain. They are charging $75 for upgrades no matter what version you have. They sent me a beta version of 4.1 with the agreement that I'd receive a free upgrade, as usual. After I took my time and put 4.1Beta through it's paces and made comments and suggestions, they took them and then refused to give me my upgrade... pretty crappy. Anyway, I would have to give the NKR FORTRAN compiler a B-... it's quick, but lacks fine control over compiler behavior. Compared to MFII, it produces larger, slower code. VAX FORTRAN compatibility is excellent with a lot of new additions (suggested by myself :) to make it even better. Support had been great, but seems to have slipped quite a bit... a shame. AbSoft MacFORTRAN II Ver 2.1: This version is the "original" version shipped. Although a bit slower in compile time than NKR, it produces tighter, better optimized code as well as smaller and quicker (by 12 to 28%) executables. It provides fine control over compiler defaults, with many level and types of optimizations as well as being able to arm or not arm the 68851(2). Extended precision math is also possible. MFII allows for standard F77 source formatting, VAX FORTRAN, IBM VS as well as Fortran 8X fixed and free source form. VAX extensions as well as those from MIL-STD-1753 have been included. MFII also incorporates some of it's own extensions. Also, MFII can call C library functions DIRECTLY... for example, to call the C "subroutine" time, you just type in "call time(xxx)" and to call ctime() just declare ctime and an INTEGER and "iloop = ctime(xxx)". The version of f77 with A/UX as well as NKR require you to call them as "_time" and "_ctime" (I think... it's been a while :) which some people may prefer. Since MFII uses the C libraries when linking, all C fucntions are ALWAYS available. MFII handles symbol table info 100% correctly, so you can use sdb with it. It also provides a way to produce a more detailed symbol table for use with AbSoft's FX debugger, which is EXCELLENT! Customer support has really improved. A BBS is available and offers quick responses. An upgrade is due somewhere around fall and promises a few additions and modifications as well as being quicker and tighter. All in all, MFII deserves a A-. If it was just a bit quicker in compiling and included some "standard Unix f77" functions such as getarg and getenv (the update will include these) then MFII would rate an A. In any case, MFII seems a more solid product. You can't really go wrong with either one. However, if you're using your FORTRAN to develop code, then MFII is the better choice, with it's support of sdb as it's extreme fine control over compiler options. Also, if you demand getting the most performance, MFII (with all optimizations set) will produce VERY quick code, though it will take a while to compile it :) -- =========================================================================== #include <std/disclaimer.h> =:^) Jim Jagielski NASA/GSFC, Code 711.4 jim@jagubox.gsfc.nasa.gov Greenbelt, MD 20771 "If we increase the size of the penguin until it is the same height as a man and then compare the relative brain size, we know find that the penguin's brain is still smaller. But, and this is the point, it is larger than it WAS!"
tody@noao.edu (Doug Tody X217) (06/25/91)
From article <5799@dftsrv.gsfc.nasa.gov>, by jim@jagubox.gsfc.nasa.gov (Jim Jagielski): > > A long time ago I compared the NKR FORTRAN compiler with the AbSoft MacFORTRAN > II compiler for A/UX. My original reviews tended to lean towards NKR since > they had quicker compile times and very good support. NKR FORTRAN is now > up to version 4.1 and some other changes have been made that make now a good > time for a "new" review... > > ...You can't really go wrong with either one. However, if you're using your > FORTRAN to develop code, then MFII is the better choice, with it's support of > sdb as it's extreme fine control over compiler options. Also, if you demand > getting the most performance, MFII (with all optimizations set) will produce > VERY quick code, though it will take a while to compile it :) Another possibility is to use the Fortran-to-C translator F2C (available from AT&T, research.att.com) in conjunction with a good C compiler such as GCC. This doesn't provide all the features of the Fortran compilers mentioned above, is a bit slower, and is not quite as turn-key, but it is *very* solid, and of course, it is free, you get the sources, and you can redistribute. I built a million line Fortran system using this combination with only minor compiler problems with F2C/GCC, whereas the Absoft compiler had serious optimizer problems with my code (it worked fine for some smaller programs). Examining the generated assembler for a simple DO-loop revealed that F2C/GCC optimized the loop better than the Absoft compiler. By way of comparison, the SunOS Fortran compiler compiling for the same mc68020 architecture was much better than either in the case of the simple DO-loop tested. (The f77 compiler distributed with A/UX was hopeless.) -- Doug Tody, National Optical Astronomy Observatories, Tucson AZ, 602-325-9217 UUCP: {arizona,decvax,ncar}!noao!tody or uunet!noao.edu!tody Internet: tody@noao.edu SPAN/HEPNET: NOAO::TODY (NOAO=5355)