[comp.lang.pascal] Looking for GOOD optimizing compilers for MS-DOS

dhinds@portia.Stanford.EDU (David Hinds) (02/20/90)

    I'm looking for a highly optimizing Pascal or Modula-2 compiler for
MS-DOS.  The ability to generate 80386 code would be a major advantage.
What are the best products available?  Cost is a factor, but I'm willing
to spend more for something really good.  I have Turbo-Pascal 5.5, which
doesn't produce the quality of code I'm interested in.

 -David Hinds
  dhinds@popserver.stanford.edu

dmurdoch@watstat.waterloo.edu (Duncan Murdoch) (02/21/90)

(I tried to mail this, but it bounced. I hope it's of some general interest.)

In article <9311@portia.Stanford.EDU> dhinds@portia.Stanford.EDU (David Hinds) writes:
>
>    I'm looking for a highly optimizing Pascal or Modula-2 compiler for
>MS-DOS.  The ability to generate 80386 code would be a major advantage.
>What are the best products available?  Cost is a factor, but I'm willing
>to spend more for something really good.  I have Turbo-Pascal 5.5, which
>doesn't produce the quality of code I'm interested in.

I don't know what the competition is like, but would suggest that you
can probably do as well as an optimizing compiler by using a profiler
(TurboPower sells TP specific ones, or you can use a general purpose
one), and rewriting the critical sections in assembler.  Certainly more
work, certainly means that you won't be able to easily port your
program to any other machine, but a much cheaper alternative than someone's
low-volume compiler.  TP is so dominant in the PC Pascal market that
it's probably been better debugged than anyone else's compiler, and better
support from a larger user group is available.

These comments apply only to Pascal.  I know even less about M2 compilers
than I know about non-TP Pascal compilers.

Duncan Murdoch

gcreesor@lotus.waterloo.edu (Glen Reesor) (02/21/90)

In article <1541@maytag.waterloo.edu>, dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes:
> [STUFF DELETED]

> I don't know what the competition is like, but would suggest that you
> can probably do as well as an optimizing compiler by using a profiler
> (TurboPower sells TP specific ones, or you can use a general purpose
> one), and rewriting the critical sections in assembler.  Certainly more
> work, certainly means that you won't be able to easily port your
> program to any other machine, but a much cheaper alternative than someone's
> low-volume compiler.  TP is so dominant in the PC Pascal market that
> it's probably been better debugged than anyone else's compiler, and better
> support from a larger user group is available.

That's quite the blanketing statement about TP being the best Pascal compiler
on the market! :-)   TP may have a fancy user interface (which I like too),
but if you're looking for better code generation I would look at Microsoft
and Watcom compilers (just off the top of my head).  I'm sure you'd agree
that these are respectable companies and far from "low-volume". :-)
===============================================================================
Glen Reesor                                   gcreesor@lotus.waterloo.edu
                                              gcreesor@lotus.UWaterloo.ca
===============================================================================

dmurdoch@watstat.waterloo.edu (Duncan Murdoch) (02/21/90)

In article <21125@watdragon.waterloo.edu> gcreesor@lotus.waterloo.edu (Glen Reesor) writes:
>
>That's quite the blanketing statement about TP being the best Pascal compiler
>on the market! :-)   TP may have a fancy user interface (which I like too),
>but if you're looking for better code generation I would look at Microsoft
>and Watcom compilers (just off the top of my head).  I'm sure you'd agree
>that these are respectable companies and far from "low-volume". :-)

I didn't mean to say that TP was the best Pascal compiler, just that it 
overwhelmingly dominates the market (on PCs).  Certainly Microsoft and 
Watcom are good companies, but I doubt if together they've sold 10% of the
Pascal compilers that Borland has.

Of course I don't have any hard information on this, but I've almost never
seen a question about either of those compilers in this newsgroup, nor on
the Fidonet Pascal echo.  (There were lots of questions about Quick Pascal
when it first came out, but they were more "should I buy?" than "how do I...".
Until reading your posting, I wasn't even aware that Watcom sold a Pascal
compiler.)

Duncan Murdoch

amull@Morgan.COM (Andrew P. Mullhaupt) (02/22/90)

In article <1541@maytag.waterloo.edu>, dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes:
> 
> I don't know what the competition is like, but would suggest that you
> can probably do as well as an optimizing compiler by using a profiler
> (TurboPower sells TP specific ones, or you can use a general purpose
> one), and rewriting the critical sections in assembler.  Certainly more
> work, certainly means that you won't be able to easily port your
> program to any other machine, but a much cheaper alternative than someone's
> low-volume compiler.  TP is so dominant in the PC Pascal market that
> it's probably been better debugged than anyone else's compiler, and better
> support from a larger user group is available.
> 
I disagree. Now matter how good you are with the profiler, you'll take
a beating using TP to write code for the 80386 compared to almost any
reasonable 32 bit compiler. It's a real drag to put in little assembler
routines all over the place just because you want the power you are
otherwise wasting on your 80386. And then when you move your code over
to a VAX or Sun 4, etc. you're back to square one. I gave up on Borland
moving out of 16-Bit and 64K-array land. Don't look to Microsoft's 
Pascal compiler (with OS/2 'support'), either. That compiler (like
OS/2) is mired in 16-bit code and (this was hard to swallow) doesn't
support big arrays, even though OS/2 does! I turned my back on the whole
lot of this stuff and went to running UNIX instead. (I still get to 
'visit' my DOS children via a dual-boot arrangement).

I looked at various 32-bit extensions to DOS, but there were too many
ifs and buts in any one of them. If your needs are not too general,
this might be the best solution, but it isn't much less expensive than
going UNIX.

Later
Andrew Mullhaupt

munck@chance.uucp (Robert Munck) (02/22/90)

I have no basis for comparison (benchmarks, etc.), but the Professional
Pascal compiler for MS-DOS/386 from MetaWare is one heck of a good
product!  With the Phar Lap support for protected mode, it gives you as
much power as you could expect from a PC.

MetaWare is at 903 Pacific Ave, Suite 201, Santa Cruz, CA 95060.  My
only affiliation is as customer; I'm writing a Secure OS for the 386.

Bob Munck
Internet: munck@mitre.org

UUCP:     ...[backbone]!linus!munck

Work:     The MITRE Corporation, MS Z-666
          7525 Colshire Drive
          McLean, VA    22102-3481
          703/883-6688
          703/883-5519 (fax)
                 -- Bob <Munck@MITRE.ORG>, linus!munck.UUCP
                 -- MS Z676, MITRE Corporation, McLean, VA 22120
                 -- 703/883-6688

gcreesor@lotus.waterloo.edu (Glen Reesor) (02/22/90)

In article <1551@maytag.waterloo.edu>, dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes:
> Until reading your posting, I wasn't even aware that Watcom sold a Pascal
> compiler.)

Actually in my haste, I named Watcom erroneously.  I've been told, in fact,
that they *don't* produce a Pascal compiler.  Sorry about the mix-up. :-)
===============================================================================
Glen Reesor                                   gcreesor@lotus.waterloo.edu
                                              gcreesor@lotus.UWaterloo.ca
===============================================================================

taylorj@yvax.byu.edu (02/22/90)

In article <9311@portia.Stanford.EDU>, dhinds@portia.Stanford.EDU (David Hinds)
writes:

>    I'm looking for a highly optimizing Pascal or Modula-2 compiler for
>MS-DOS.  The ability to generate 80386 code would be a major advantage.

Try JPI.  They just announced a new optimizing Pascal compiler.  They have a
very nice Modula-2 compiler and will soon release a new version with OOP
extensions.

Jensen & Partners International
1101 San Antonio Road, Suite 301
Mountain View, CA  94043
1-800-543-5202

P.S.  The "Jensen" is Niels Jensen, one of the founders of Borland.

Disclaimer:  I've never used any of their products, but constantly hear very
good things about them.

milne@ics.uci.edu (Alastair Milne) (02/24/90)

dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes:

>In article <21125@watdragon.waterloo.edu> gcreesor@lotus.waterloo.edu (Glen Reesor) writes:
>>
>>That's quite the blanketing statement about TP being the best Pascal compiler
>>on the market! :-)   TP may have a fancy user interface (which I like too),
>>but if you're looking for better code generation I would look at Microsoft
>>and Watcom compilers (just off the top of my head).  I'm sure you'd agree
>>that these are respectable companies and far from "low-volume". :-)

   It has been 3 or 4 years since my experience with Microsoft Pascal, so it
   may be out of date (I am not considering QuickPascal in any case), but the
   last time I had to use it, it was very big (two passes in separate
   programs, and yet a third if you wanted compile listings), slow, subject to
   large error cascades, and produced huge files -- this of course in
   collaboration with the Microsoft linker, which was horribly slow.  The
   resulting EXE's were huge.  In fact, I consulted the net at the time to see
   if anybody could tell me how to reduce them.

   Obviously, this all contrasts markedly with Borland's compiler.  Code
   generation, compile time, and program size are all *much* better.  And it
   can hardly cascade: at the first error it finds, it goes straight back into
   the editor.  This used to drive me balmy, but with the compile speed,
   especially on a 386, the time to recompile between fixing successive errors
   is rarely worth worrying about.

   (Once, when making these observations to a friend, I was told that all
   compilers for micros cascade badly if allowed.  Well, the UCSD Pascal
   compiler, under the p-System, does not.  It controls cascades very well.
   And that's what I was used to before this.

   Maybe just DOS Pascal compilers cascade badly :-) . )

   If there are better compilers than Borland's available, I'm sure all the
   world would like to hear of them.  Borland's have become rather good,
   but I certainly wouldn't object to better.  What is Watcom's like?


   Alastair Milne

kraus@cell.mot.COM (David Kraus) (02/27/90)

In article <25E647B3.438@paris.ics.uci.edu> milne@ics.uci.edu (Alastair Milne) writes:
>   It has been 3 or 4 years since my experience with Microsoft Pascal, so it
>   may be out of date (I am not considering QuickPascal in any case), but the
>   last time I had to use it, it was very big (two passes in separate
>   programs, and yet a third if you wanted compile listings), slow, subject to
>   large error cascades, and produced huge files -- this of course in
>   collaboration with the Microsoft linker, which was horribly slow.  The
>   resulting EXE's were huge.  In fact, I consulted the net at the time to see
>   if anybody could tell me how to reduce them.

It hasn't changed, at least as of 9 months ago.  I was using the Microsoft
Pascal compiler (whatever the current version at that time was) and it was an
absolute dog.  (Granted, I came from a mostly TP background.)  The compiles
were slow, the EXEs were large, and the error messages left something to be
desired as well.

The company (which I no longer work for) was (and still are, from what I hear)
in the process of switching to Turbo, if for no other reason than to increase
programmer productivity and vendor support.

Trying to get support from Microsoft for their Pascal product was interesting,
at best, although I wasn't the one communicating with them.  (I heard some
horror stories from those that were, though.)  It basically boiled down to the
fact that Microsoft SEEMED (giving them the benefit of the doubt) to be
phasing out the Pascal product in favor of C.  In fact, there were some
questions of 'how do you do this' where the answer was simply, 'switch to C.'
(The 'how do you do this' question, I believe, could have been done trivially
in Turbo, although it was a while ago and my memory fades...)

I had the opportunity, while at this company, to write a small (< 2000 lines)
demo program for an upcoming product.  Everyone was amazed at how quickly I
could make changes to the code to fit their whims.  (Change this color, move
this over here, etc.)  And executing the program from within the IDE was a
concept they'd never heard of before....

Anyway, as you said, the Microsoft product (full-blown version, anyway) leaves
a lot to be desired, compared to Turbo.


Disclaimer - I of course have nothing to do with Borland other than being a
satisfied customer.  I also have as little as possible to do with Microsoft.

-- 
Dave Kraus                                         UUCP: ...!uunet!motcid!kraus
Motorola Cellular Infrastructure Division          FidoNet: 115/444.11
Disclaimer: I'd be more than a bit surprised if Motorola shared these opinions.