Battle of the FORTRAN Compilers...
Jim Jagielski
jim at jagubox.gsfc.nasa.gov
Tue Jun 25 01:32:16 AEST 1991
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 at 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!"
More information about the Comp.unix.aux
mailing list