DJGPP

A vintage GCC-based toolchain for MS-DOS, DJGPP, evokes strong nostalgia among programmers who learned C/C++ and game development with it in the 1990s, often alongside libraries like Allegro and IDEs like RHIDE. Commenters highlight how it opened access to 32‑bit development, GNU tools, and even Linux itself at a time when commercial compilers were expensive, while clarifying that DJGPP is a DOS-targeting compiler rather than a full POSIX compatibility layer like Cygwin or Wine. Despite its age, it still sees occasional maintenance and niche use, and serves as a touchpoint for broader reflections on old toolchains, portability, and the evolution of development environments.

Learning, Nostalgia, and Personal Trajectories

  • Many commenters learned C/C++ (often from classic books) using DJGPP in the 90s.
  • Common pattern: DJGPP + RHIDE + Allegro on DOS for first games, graphics, and sound.
  • Several describe building 2D/3D engines, experimenting with inline assembly, and using discarded 386/486 machines.
  • For some, DJGPP was the gateway to GNU tools and ultimately to installing Linux (often Slackware via floppies and UMSDOS).

What DJGPP Actually Is

  • Described as a GCC-based toolchain for MS‑DOS (and DOS boxes under Windows), not Windows itself.
  • It enables 32‑bit protected-mode programs with flat memory, avoiding 16‑bit segmentation limits and 8.3 filenames (when under Windows 9x with LFN).
  • It supports standard C/C++, but Linux- or POSIX-specific features (e.g., fork) are generally unavailable.
  • Multiple posters stress that it is not like Wine; closer analogies are to mingw rather than Cygwin.

Game Development and Quake

  • Widely used with Allegro for DOS games; people compare Allegro’s higher-level, game‑oriented API to SDL’s lower-level approach.
  • One thread notes DJGPP was used to build and ship Quake, after a switch from Watcom + DOS/4GW.
  • Watcom reportedly had better code generation at the time; Quake’s performance depended mostly on hand‑optimized assembly.
  • DJGPP’s benefits included cross‑platform GCC, modifiability, and integration with custom DOS extenders.

Related Toolchains, Languages, and 16‑bit Efforts

  • Mentions of other historical toolchains: emx+gcc on OS/2, OpenWatcom, Dev‑C++, Code::Blocks.
  • Modern DOS‑targeting efforts: gcc‑ia16 (16‑bit GCC port), Free Pascal, Rust-to-DOS demos, and a JavaScript DOS environment (DOjS).
  • Reminiscence about a DOS JVM (JavaPC, KaffePC) and difficulty finding it today.

Current Status and Ongoing Use

  • DJGPP is still being built; GCC 12.2 ports from ~18 months ago are linked.
  • Someone recently packaged it for NixOS.
  • Overall sentiment: strong affection and nostalgia, with recognition that modern tools and OSes are easier and more capable, but DJGPP remains a functional, niche toolchain.

Naming and Capitalization Debate

  • Extended debate over whether “DJGPP” must be all-caps, whether it’s a word vs. acronym, and how English orthography treats initialisms.
  • Some insist on creator-prescribed capitalization; others prioritize user preference and style conventions.