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