[comp.lang.fortran] Quality of MS Fortran-replies

dd@beta.lanl.gov (Dan Davison) (05/27/89)

A while back I asked if MS had yet figured out how to write a fortran
compiler, chiefly for ease of calling other MS languages (mostly C).
Below are the responses I received, with identifcation removed,
as no one said that their note was public.  The criticisms in
number 5, checked out with a loaner compiler.  The MS Fortran does not
seem to be as bad as it used to be, though.  Someone may be trying.

So, I will probably go with the Lahey compiler.  My thanks to all
who replied!

----------------------------------------------------------------------
1. The current Microsoft Fortran compiler is very much improved over the
versions you have used.  The current version is version 4.1, and
it has the following features:

1) Full Fortran 77 standard
2) CodeView interactive debugger
3) Library manager
4) Program editor
5) Full support for MS DOS and OS/2, including OS/2 dynamic link libraries

The debugger is superb--much better than (say) the VAX VMS interactive
debugger.  The user interaction may be performed via keyboard commands,
function keys, or mouse (I end up using all three, depending on which
is easiest).  You can see your source code, step through it and watch
variable values change, set and remove breakpoints with a mouse click
or short command, set conditional breakpoints, view the program as
Fortran source code or assembly code, view registers, change the
values of variables interactively, create a command file of standard
debugging operations to automate debugging sessions, and so on.  I highly
recommend it.

I use Microsoft Fortran heavily.  My company () produces a
mathematics programming library for PC Fortran programmers, so I
am very much concerned with the quality of the compilers I use.
------------------------------------------------------------------
2. MS 4.0 and 4.1 are full Fortran-77 implementations.  They seem to work fine.
I use them extensively.
------------------------------------------------------------------
3. I have used MSFORTRAN 4.0 for some large projects (e.g., compiling the
source to SPICE2G.6 - about 500K source) and have found it to work well.
I had v3 earlier, and it had bugs and lacked f77 compatibility.  4.0 is
much better in that regard.
[later, in response to a question I sent...]
I don't want to mislead you.  I had to put in about a month's work last
summer to get the 500K code to run under MSFORTRAN; however, the code was
far from standard FORTRAN.  It implemented dynamic memory management using
a non-standard LOC function to get pointer information.  This was hard to
port to the Intel architechure of the PC.  Also the source had to be split
into pieces that each produced less than 64K code.  This was not the fault
of MS, but rather of the segmented memory of the PC.
The good news is that small, standard FORTRAN programs should port easily,
with the only changes probably in the OPEN statements for files.
--------------------------------------------------------------
4.  Their stuff no longer sucks and some of it is quite good.
For gods sake upgrade MASM or use A86 or the Borland Assmebler.
2.0 was horrid.

 The current MS Fortran is reasonably F77 compliant unlike
1.0 2.0 and 3.1.
--------------------------------------------------------------
5. yes, ms has produced a "real" fortran compiler...but make sure it's version
4.1.  we were using it for a 4th year computer science project here, linking
in C and assembly language modules.  do NOT use 4.0....it bombs on every
fortran DATA statement. [confirmed with 4.01...dbd]

as for "no"....it is a fortran compiler, but you'll need a 286 or 386 machine
to get decent compilation times.  our old program (about 3300 lines or 110K)
took 15 minutes to compile on my 8 mHz xt clone.  it's tolerable on a 286
or 386 (the same program takes a little less than 2 minutes to compile on
a 386 with compiler, sources, and object files on a ram drive).
[sigh.  confirmed this too...dbd]
--------------------------------------------------------------------------
6.  In a nutshell, no.  See below.
I've ported some few things from VAX Fortran to MS, and I was not impressed.
We were using 4.1(MS) and a reasonably recent VMS version.  We had to rewrite
some pieces of code which did serial logical operations (say, 8 in one
statement) which the F66/F77 standards allow.  Other hosts compiled this
source without a sneeze, but MS had a hernia: compiler stack overflow. 
NO SOURCE DIAGNOSTIC.  Machines were PS/2 models 50 and 80.  Also, compiler
messages and error numbers did not correlate, but I heard that was a 386-caused
hassle.

I've heard better comments about Lahey F77, but have no personal experience
with it.
----------------------------------------------------------
7.  Yes. Believe it or not, the answer is a clear YES. I have uncovered
zero bugs in heavy use (others have found a very few, very obscure ones).

It has both large and medium models (and huge if you are stupid enough
to use it). And, it lines nicely to Microsoft C.
-------------------------------------------------------------------
8. Several of us here had quite a laugh reading your posting, because
your comments hit so close to home. We have used MicroSoft Fortran 4.1
for a while here, and our opinion is best summarized by the fact that
we usually refer to it as MicroF****d Fortran! [slightly edited...dbd]

   [...]Oh well, as far as IBM fortran compilers, I have hear good comments
about the Lahey Fortran compiler, however I have no personal experience
to back that up. 
-----------------------------------------------------------------------
9. I use MS Fortran, version 3.1 or 3.2, I forget which. Your condemnation
is so general, I don't know what kind of information you might find
helpful. MS Fortran is not my favorite Fortran compiler, but I certainly
wouldn't call it trash. My favorite compiler is Lahey F77L. However, MS
has many alternative math libraries to choose from, which allows me to
convert programs for different setups by re-linking with a different
.LIB. (For instance, I can create a version of a program for use on a system
without a math coprocessor by linking with ALTMATH.LIB.) One of my colleauges
uses a 4. version and is happy with it. If you tell me what gave you grief
about the earlier versions, I can find out if these features still exist in
the latest version. By the way, a professor in the economics department here
at Princeton, who has created a library of subroutines to do maximum likelihood
estimation (very math-intensive) has done some benchmark tests of MS, IBM and
Lahey Fortran and MS came in 2nd to Lahey, but was not vastly inferior, in
terms of compile time, link time, size of executable code and run time.
-------------------------------------------------------------
10.  Well...  I used MS FORTRAN compiler v 3 (and maybe 2), in porting
something like 20k lines of dec FORTAN IV.  Seemed fine to me, though
I did invest in some add-on libraries.  Ran faster on the original pc
than it had on a dec 11/70, too.  The newer MS compilers supposedly
are interoperable (write modules in any of n languages within a single
program).  And the documentation for interfacing assembler looks a lot
better than v2 or v3 (which was pitiful).
------------------------------------------------------------------
11.Do yourself a favour and get the Lahey F77L compiler. It compiles like
lightning, and runs as fast as output from Microsoft's compiler. Lahey's
compiler is also much easier to install and use.
------------------------------------------------------------------------------
12.  If I had to choose between F77L and MS Fortran, all other things being
equal, I would also choose F77L.  It is my favorite of all the Fortran
compilers I've used, mainframe or microcomputer.  I would check further
on the possibility of linking with other MS-language routines, though. I
don't have my manual at home, but I remember extensive instructions on
the restrictions and protocols to call Turbo-C routines from F77l programs
(and vice-versa) but I don't remember seeing anything about linking with
any MS languages. I would call Lahey about that. Their technical support
is pretty good (and accessible!). Lahey also has a great interactive
(SLD) debugger. I've only used it once, but it's nice to know it's there.
-----------------------------------------------------------------------
13. The Microsoft Fortran Compiler (pre version 4.0) was certainly an atrocious
piece of software.

MS Fortran 4.1 is a world away from those earlier versions.  It conforms to the
full FORTRAN 77 standard, is well documented, extremely bugfree and produces
executable code that is faster than that from any other MS DOS compiler.

The Lahey compiler is also an excellent product and does compile code two to
three times faster.  I prefer the Microsoft compiler because of it's superior
documentation, compatibility with Microsoft C, and Codeview the best window
oriented source level debugger I have seen.  Codeview is easier and more flexle
than the VMS DEBUG, Unix dbxtools and Lahey's SOLD debugger.


dan davison
theoretical biology and biophysics
t-10 ms k710
los alamos national laboratory
los alamos, nm 87545 USA
dd@lanl.gov
505-665-1355
-- 
dan davison/theoretical biology/t-10 ms k710/los alamos national laboratory
los alamos, nm 875545/dd@lanl.gov (arpa)/dd@lanl.uucp(new)/..cmcl2!lanl!dd