Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

BIG "C" compiler cmp | the "scientific" facts ore out DW (Developers)

posted by Rugxulo Homepage, Usono, 11.03.2008, 19:29

> D based on GCC
>
> > It's not "D" but "DJGPP".
>
> NO.
>

There's a D (compiler) port to Linux as well as the typical Win32 version. However, DJGPP doesn't support it.

> + GCC core produces less bad code ("optimization") than others

Intel is still better (supposedly, esp. for SSEs) but not free (except for Linux??). Nevertheless, I think GCC is easily "good enough".

> + Offers Loonix "emulation at source level", occasionally useful for
> porting

POSIX, not Linux, and even that isn't the most recent POSIX standard (which is much more complex).

> - Offers Loonix "emulation at source level", ON by default, difficult to
> get rid of

Well, DJGPP is primarily a port of GCC, so it's going to have lots of GCC-isms. Even though "GNU's Not Unix", it might as well be.

> - bloated and messy, not easy to download, install and use

Actually, it's quite easy, but you have to read the FAQ for more in-depth answers.

> - No 16-bit RM support

Unavoidable since GNU targeted only 32-bit machines. Plus, 16-bit RM caps out a 1 MB, so DJGPP doesn't have that limitation.

> - Bad design of the "GO32" extender with outsourced CWSDPMI and
> non-ZERO-based memory model

GO32 was DJGPP v1, and v2 is much much improved in almost every way (more features, more compatible, more powerful). v2 is like 12 years old (at least), so surely they could do it differently, but I doubt they want to start from scratch and make v3.

> - Both inline ASM and output ASM are supported, but GAS/ATT
> syntax only

I dunno about that. "-masm=intel" seems to work in my simple tests, but I don't use it much.

> - Can't compile itself on DOS

Well, LFNs are a b**ch that people take for granted these days. I'm more annoyed by the fact that newer GCCs aren't compatible with each other (e.g. need specific GCC, even to compile itself!), even more than the annoying fact of needing a bunch of auxiliary tools just to build something simple.

> - It's OBSOLETE

You can't (easily?) access the Win32 APIs with it, I guess, which is what most people prefer these days. Also, Windows is no longer DOS-based, so interest has waned (due to compatibility bugs). But also, it's not "cool" anymore. :-/

> -- Startup code and libraries are bloated, messy, and full on XP hacks :-(
> :-(

Unavoidable, I guess, unless you want to exclude it (unwise, since XP is ubiquitous, at least for now).

> + Both DPMI32 and 16-bit RM

But no 16-bit DPMI (286) stuff. In fact, almost nobody bothers with that (probably because they don't know how). Not that I really care, though.

> + Compiler core produces less bad code ("optimization") than some other
> compilers

Yeah, but I don't think it really targets specific cpus like GCC does. Even "-6" still runs on a 386.

> + Since 1.6 DOS is supported again

Not really sure what that means (WLINK bugs fixed?). AFAIK, it has always worked on DOS.

> + Comes with WASM, a free "unusable toy" clone of MASM

Not unusable, but not quite perfect. You can't necessarily expect all your old MASM code to assemble without problems.

> + Supports DOS/32A and D3X extender

The version of DOS/32A included is 7.xx, which is obsolete. D3X is not included (although it does work).

> - Itself bloated and messy, not easy to download, install and use

Well, I dunno why they removed the (unfinished) DOS installer from the server. Also, I dunno why they don't just make a DOS .ZIP. At least I tried to make a small (6.5 MB) DOS install package (1.7a-RC1) on my site (needs UNUHARC and 24 MB to unpack, though). That's better than having to download 60 MB, IMO. (Unless you want all the other targets, e.g. Win32).

> - Supports C++, but bad compatibility with GCC and VCC ?

Not bad compatibility, just not as modern. C++ is so complex and always being extended (it's alliiiiiive!).

> - Has IDE's for all platforms except DOS

DOS has their VI editor. I'm not sure it qualifies as an IDE, but it does work.

> - No inline ASM, no ASM output :-(

I haven't messed with inline asm on OpenWatcom, but I think that's what WASM is for. At the very least, I know "#pragma aux" is how they used to do inline. So, it's indeed possible.

BTW, OpenWatcom targets .OBJ directly (I think), so you need WDIS to convert to assembly source. This is what "OWCC -S" (GCC compiler driver clone) does.

> - WASM is bad and not really progressing

That's true, nobody is officially working on it. Then again, interest is probably low. There are other assemblers (e.g. NASM or LZASM) that support .OBJ, though.

---
Know your limits.h

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 242 users online (0 registered, 242 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum