Mail Archives: djgpp/1993/07/07/14:09:40
> Darryl Okahata (darrylo AT sr DOT hp DOT com) posted a review on Watcom C/386 recently.
> (I can't remember if he posted it to this list or another.)
> Perhaps he could be so kind to repost it.
Well, it doesn't really belong on the DJGPP mailing list. If
anyone wants a copy, send email.
The bottom line is that WATCOM C/386 and newer versions (like the
latest 32-bit C/C++ compiler) are better than DJGPP if you're writing
commercial applications. Don't get me wrong -- I like DJGPP, but
commercial compilers currently have a few advantages (and some
disadvantages) over DJGPP. Here's a short list of WATCOM C/386
advantages/disadvantages, as compared to DJGPP:
* WATCOM C/386 has a much better source-level debugger, with watchpoints
(slow), screen flipping, and optional remote debugging capability.
However, just about anything is better than DJGPP's debugger (this
should, hopefully, be fixed in some future release of DJGPP), and so
it should be noted that the WATCOM C/386 debugger is a tad
primitive/awkward. However, once you get used to it, and write a few
macros to make it easier to use, it's quite usable. I've ported GNU
Emacs V19.16 to MSDOS using both the DJGPP and WATCOM C/386 compilers,
and I often have to debug Emacs using the WATCOM C/386 debugger.
* The latest release of WATCOM C/386 can generate 32-bit code for MSDOS,
Windows, OS/2, and Windows NT. If OS/2 is used, the debugger can be
used to debug OS/2 threads.
* The latest release can generate code optimized for the Pentium chip.
* WATCOM C/386 compiles much faster, even with optimization enabled.
(This is a known problem with DJGPP, caused by swapping memory out to
disk, and I believe that someone is fixing it.)
* The DOS extender that comes with WATCOM C/386 can only handle up to
32MB. DJGPP can handle much more (128MB).
* The DOS extender that comes with WATCOM C/386 cannot be used to create
a dumped Emacs.
* The WATCOM C/386 DOS extender maps the 1MB DOS memory into the lowest
1MB of the 32-bit addressing range (0x00000000). This makes it very
easy for a crashing program to also crash DOS. It's harder for a
crashing DJGPP program to crash DOS, as DOS memory is mapped starting
at 0xe0000000 (except under DPMI).
-- Darryl Okahata
Internet: darrylo AT sr DOT hp DOT com
DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion or policy of Hewlett-Packard or of the
little green men that have been following him all day.
- Raw text -