To: kunst AT prl DOT philips DOT nl Cc: rossi AT cs DOT unibo DOT it (Davide Rossi), djgpp AT sun DOT soe DOT clarkson DOT edu (DJGPP users list) Subject: Re: djgpp vs watcom Date: Wed, 07 Jul 1993 10:26:26 -0700 From: Darryl Okahata > 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.