[net.lang.ada] Verdix and TeleSoft for VAX/VMS

MFELDMAN@GWUVM.BITNET (Mike Feldman George Washington University) (06/20/86)

========================================================================
We have recently acquired both the Verdix and TeleSoft VMS compilers. I
have about 20 students ready to bang on them in about a week; I've been
running some of my own programs under both for about a month now. The
experiences I am reporting are anecdotal and the benchmarks are not
very systematic, so you need to "round up the usual disclaimers" as
Rob Spray put it.

Also, I have not yet done any significant testing of object-program
execution time and space. This brief report focuses exclusively on
correctness and compile time, using Verdix VMS version 5.3 a, and
TeleSoft TeleGen2 version 3.10, both on a moderately-loaded 11/780,
compiling interactively.

Regarding correctness: other than a couple of glitches in the Verdix
task scheduler regarding delays - which were already known by Verdix
and are being fixed - I have not found any bugs. From prior experience
with a number of TeleSoft's versions, and with the Verdix compiler on
VAX and Sun Unix systems, I think I am safe in saying that both VMS
compilers are "pretty darned correct", which means that bugs will
likely be minor and probably esoteric. From this point of view, they
are suitable for teaching and research purposes and will NOT give students
a frustrating experience due to bugs and subsetting problems.

Regarding compilation speed: speed goes up, on both compilers, almost
directly proprtional to program length. This means that a fair amount
of time is spent just in loading the (various phases of) the compiler
and thus that longer programs will spend a higher proprtion of the time
compilation rather than startup overhead. This can be confirmed by a
compilation of a "begin - null - end" program or some such thing.

The TeleSoft compiler reports "lines compiled"; the Verdix one reports
both "lines compiled" and "statements compiled." I don't care how long
it takes to scan an empty line or a comment, so I will report the
"statements" number. For files (one or more packages or procedures;
it doesn't seem to matter how many) in the neighborhood of a few
hundred statements  (typical student-size programs, thus), Verdix
can do about 200-300 statements (not lines!) per CPU minute. TeleGen2
is more in the 100-150 statements (not lines!) ballpark. Timings were
gotten by doing a VMS "show process accounting" command before and
after compilation. Diagnostics from both compilers are pretty good,
but I'm no expert in diagnostics because I've spent most of my time
porting and re-doing programs that were already pretty correct.
I'll tell you more after hearing my students' experiences.

Support and salespeople at both companies have been helpful and friendly;
documentation is very good for someone experienced with Ada and the VMS
system. I think both companies would do well to write an easily-accessible
5-page tutorial for people new to Ada compilers. On-line help is also
adequate for both systems (I'm not a great fan of static on-line help
in any case).

Having reported anecdotally, I want to make an editorial comment. The
Verdix compiler is fairly mature, having been ported rather straight-
forwardly from the Unix one that's been around for more than a year.
It's fast and clean, written in C and compiled with mature C compilers.
The TeleSoft one is completely new and written in itself. The released
version has not yet been run through its own optimizer. The fact that
an immature self-hosted compiler does  as well as it does (only twice
as slow as the mature Verdix one) is a great credit to its developers,
and makes me very optimistic about Ada's future:  this compiler is,
itself, an Ada program of several hundred thousand lines.

One nice thing about bootstrapping: each time TeleSoft tweaks their
code generator, improving the performance of compiled programs, the
performance of the compiler itself will improve as a side effect.

I am delighted that Ada has progressed to the point where there are
many (five? six?) products for the same host/target (VMS/VMS), all
trustworthy enough for performance to be an important issue for
their developers! Let the competition begin!

Mike Feldman, Associate Professor
Department of EE&CS
The George Washington University
Washington, DC 20052
(202)676-7593