8 ms·
DJGPP
- whitten 3y agoConceptually this seems to be the opposite of wine. It allows programs written for Linux to run under Microsoft Windows. Wine allows Windows programs to run under Linux. Is there any way to use the synergy between them to make them work better ?
- i_love_cookies 3y agoFor me it let me use a c compiler without paying for visual c++
- pjmlp 3y agoVisual C++ has been available for free, for at least 20 years now, first with the language specific express editions, and now with full community edition.
- worik 3y ago> Visual C++ has been available for free, for at least 20 years now, Only 20 years? Some of us have been around longer than that. I know Visual C++ has
- pjmlp 3y agoIndeed, however before the express editions, the only way Visual C++ was available for free, was via piracy. Naturally depending on the country culture that was hardly a problem, with endless list of software catalogs on street bazaars, but that wasn't what I was refering to.
- usrusr 3y agoThere was a short phase before express when you could get a free command line visual C compiler with some SDK. I think the intention was to enable users of other compilers to create C bindings to msvc C++ ABI DLL or something like that, perhaps related to the dawn of .net. I wanted to make Buzz plugins that are tied to msvc ABI and had just recently lost my "cultural compatibility with piracy" to the availability of gimp, djgpp and friends. "Pay or pirate" had been displaced by "pay or the challenges of freedom". Of course just when I had my routine somewhat going, express appeared and my adventures in frugality imploded.
- usrusr 3y agops: long dead thread, but my memory just chimed in with the suggestion that express might have already been available, but only that command line version did not have all optimizations disabled.
- i_love_cookies 3y ago[dead]
- bluescrn 3y agoIt was closer to 30 years ago when I used started learning C using DJGPP, in DOS. 1996 or 1997 maybe? There was an IDE for it, 'RHIDE' I think, that looked similar to the DOS-era Turbo Pascal IDE
- cesarb 3y ago> Visual C++ has been available for free, for at least 20 years now The context of this discussion (DJGPP) is from the MS-DOS and Windows 9x era, which was more than 20 years ago.
- pjmlp 3y agoOP didn't put like that, and there is the small gotcha that DJGPP predates Visual C++.
- nottorp 3y agoYou must be new here :) Plus I think the express editions came with some strings attached. I could be wrong, because I already had the gcc ports (djgpp, mingw) and didn't care much about Microsoft's breadcrumbs.
- simoncion 3y agoIt allows a (possibly large) subset of programs written for a POSIX environment to work. I'm all but completely certain that most any program that used Linux-specific features would fail to function correctly. Also, I don't see what "synergy" you're talking about.
- lelanthran 3y ago> onceptually this seems to be the opposite of wine. It allows programs written for Linux to run under Microsoft Windows. No, it allows some POSIX programs to be compiled on Windows. ISTR using it on DOS with Allegro to write games.
- deleted 3y ago[deleted]
- noselasd 3y agoNot really, it's a gcc toolchain for compiling code targeting MS-DOS, it doesn't really provide much in terms compatibility between windows and linux
- cesarb 3y ago> It allows programs written for Linux to run under Microsoft Windows. No, at its core it's a port of GCC to MS-DOS (not Windows); it has no compatibility for Linux programs other than by virtue of both using the same compiler (GCC). If the program uses more than the standard C or C++ library, there's a good chance it won't compile unless it's ported to use what's available in MS-DOS. Even basic things such as process management (fork and so on) are non-existent in DJGPP, and unless you're running in a DOS window within Windows 9x (which makes available the LFN API to DOS applications), you're limited to the classic case-insensitive 8.3 filenames (which trip programs designed for Unix-style systems more often than you'd think).
- pronoiac 3y agoThis is a C compiler. You might be thinking of Cygwin - https://en.wikipedia.org/wiki/Cygwin https://en.wikipedia.org/wiki/Cygwin
- andrewf 3y agoTo continue in this vein, djgpp is less like Cygwin, more like mingw and its derivatives eg https://en.wikipedia.org/wiki/Mingw-w64 https://en.wikipedia.org/wiki/Mingw-w64
- sgt 3y agoAlmost didn't recognize it as "Djgpp". As DJGPP however, it kicks off a lot of memories instantly!
- tn1 3y agoThe title should be all caps. From this page [1]: > Note: DJGPP is spelled all upper case when it would normally be capitalized, and all lower case otherwise. It is never correct to spell it ``Djgpp''. [1] https://www.delorie.com/djgpp/history.html https://www.delorie.com/djgpp/history.html
- pronoiac 3y agoI emailed the mods.
- bmacho 3y agoI hate when the creators of a word make it irregular in English. Are there other words with irregular capitalization?
- ale42 3y agoIs it a word or an acronym? Or neither?
- seritools 3y agoDJ's GNU Programming Platform
- bmacho 3y agoA word. I also believe that names that don't contain any whitespace are all English words. DJGPP is an irregular one.
- janet-catcus 3y agotheir word, their rules. or would you start another jif/gif-kinda war over this with the author? XD
- bmacho 3y agoI personally follow the "I am the user, my rules" when it comes to language rules :P. It is at least as strong as "their word, their rules". Also I can see that Paul Graham's "my website my rules" is even stronger than mine or DJ Delorie's, so Djgpp is also correct (if not by the Gods, then by fist).
- livrem 3y agoThese days there is also a 16-bit GCC port to DOS (https://github.com/tkchia/gcc-ia16 https://github.com/tkchia/gcc-ia16). I never encountered one of those back in the day? I think the compiler itself does not run in 16-bit DOS though. Anyone interested in compiling for DOS (32-bit or 16-bit) should also check out Free Pascal.
- rwmj 3y agoThere's also a port of Java / JVM to DOS which I briefly used back in the 90s to port some Java software for a client who was still using DOS and "wouldn't upgrade" (I think he was using a 386 though so I guess it used a DOS extender and wasn't truly 16 bit). I was trying to find this JVM recently and couldn't find any trace of its existence which makes me wonder if I imagined or got confused about the whole thing.
- livrem 3y agoI did not know of a Java port, but this reminds me there is some kind of JavaScript-based environment for DOS that I see linked now and then (think it is bundled with FreeDOS?). Probably this one: https://github.com/SuperIlu/DOjS https://github.com/SuperIlu/DOjS "DOjS is a JavaScript programming environment for systems running MS-DOS, FreeDOS or any DOS based Windows (like 95, 98, ME). It features an integrated editor, graphics & sound output, mouse/keyboard/joystick input and more" Never tried it.
- epcoa 3y agoPerhaps you are only confused about being confused. Called JavaPC. It cost money and I don’t think it sold well, maybe you were the only customer. There was also a DOS port of Kaffe called KaffePC. https://web.archive.org/web/20000613171121/http://www.sun.com/software/javapc/features/index.html https://web.archive.org/web/20000613171121/http://www.sun.co...
- rwmj 3y agoKaffePC sounds very familiar, could be it!
- epcoa 3y agoThis was the toolchain used to build and ship Quake. Prior to that id, like everyone used Watcom C/C++ with the DOS/4GW extender.
- mysterydip 3y agoWhat prompted the switch? Was performance improved?
- epcoa 3y agoPerformance was not improved directly, gcc was terrible. Gcc development had actually stagnated for basically all of the early 90s and there was considerable discontent leading to a long forgotten but high profile fork: egcs. This work eventually went back into gcc for the 3.0 major version and the development model evolved considerably but this was well after the development of Quake. Short story Watcom had superior codegen throughout this time and for years later. The performance critical parts of quake were written in Pentium micro optimized assembly. Using DJGPP gave other advantages, the id team developed on Unix/Next boxes. I think they also had some commercial Unix servers for running the expensive level (PVS) compilers. This gave them had a compiler that could target Unixen, DOS and windows. They could ship the compiler if they wanted (though ultimately mods were done through quake C). With source available they were able to and did in fact modify the compiler and DOS extender for their needs as well https://en.m.wikipedia.org/wiki/CWSDPMI https://en.m.wikipedia.org/wiki/CWSDPMI (See CWSDPR0)
- pjmlp 3y agoNeXTSTEP to be more precise.
- flopsamjetsam 3y ago> long forgotten but high profile fork: egcs Thanks for the reminder of the name. I was trying to think of this a couple of days ago.
- royjacobs 3y agoSee also: https://groups.google.com/g/comp.os.msdos.djgpp/c/VD-mIK56h74/m/P5zE_uabjnEJ https://groups.google.com/g/comp.os.msdos.djgpp/c/VD-mIK56h7...
- JimDabell 3y agoThis got me into Linux. First I was installing DJGPP on Windows, then I followed the trail back to GCC, then I found out all about all the great free stuff the GNU toolchain provided, and ended up installing Slackware from a stack of floppies that I had downloaded painstakingly over a 14.4kbps modem.
- cesarb 3y agoThe same happened to me (including the download of a stack of Slackware floppies, though I had a faster modem). In my case, it was because of a desire for true multitasking; under DJGPP, telling the IDE to use your Makefile to compile a project produced no output (and blocked the input so you couldn't do anything else) until the compilation finished. Installing Linux (using the UMSDOS pseudo-filesystem which allowed it to install on the DOS partition, plus the loadlin bootloader so it could be loaded from DOS; the choice of Slackware was because it had good support for UMSDOS) allowed me to keep the same compiler (GCC) while being able to do several things at once. After a while, I noticed I wasn't even using MS-DOS or Windows anymore (other than as a bootloader), so I erased one partition and did a native install (ext2 filesystem and booting through LILO).
- zozbot234 3y ago> Installing Linux (using the UMSDOS pseudo-filesystem which allowed it to install on the DOS partition, plus the loadlin bootloader so it could be loaded from DOS This was a great strategy back in the day, no need to fiddle with the partition table or the boot sector, or resize existing filesystems on the device. (Current Linux versions have no UMSDOS support, but some distributions allow for a similar approach using loopback filesystem images. It can work especially well if used with LVM, to seamlessly extend storage as needed.)
- daitangio 3y agoI used and loved it. As someone said, was my door on GNU utilities under MS-DOS and worked well! I forgotten it, so thank you for the link!
- taspeotis 3y agoMakes me miss old school tools like Dev-C++ and MSVC 6.0 Courier was so readable.
- ziotom78 3y agoNot sure about Courier :-) but I too have fond memories of MSVC 6.0!
- usrusr 3y agoThat entire era in Microsoft products, MSVC 6.0, Office 97 and bit later w2k was quite special: linear progress from earlier windows things, but not yet in that cycle of change for the sake of change, that is never really complete so you always get a wild mix (arguably w2k already contained first glimpses of that with its service control panels that felt a little alien to the rest) (ps: change for the sake of change is not quite all that I meant, it's not just that "new UI language every five years", but also those great API revolutions that came independent of looks. Those are certainly far more well-founded than just "for the sake of change", but suffer from coexistence with their predecessors nonetheless. win32 as an evolution of win16 and optionally wrapped in MFC, that might have been error-prone and complicated to write for, but it does have a certain clarity that no successor can claim as long as compatibility remains the product)
- anta40 3y agoYou may want give OpenWatcom a try. Some folks are still working on it. https://github.com/open-watcom/open-watcom-v2 https://github.com/open-watcom/open-watcom-v2 In terms of ISO-complianceness, perhaps don't expect much. It basically C89 (the C99 support is still incomplete), and for C++... most likely not even C++98 - compliant.
- vintagedave 3y agoDev-C++ is still around, and the open source project is now sponsored by Embarcadero. https://www.embarcadero.com/free-tools/dev-cpp https://www.embarcadero.com/free-tools/dev-cpp
- anotherhue 3y agoI recently ported this to Nix if anyone is itching to try it. https://github.com/NixOS/nixpkgs/pull/237151 https://github.com/NixOS/nixpkgs/pull/237151
- kreddor 3y agoThis and the "C Programming Language, 2nd Edition" was how I taught myself C back in the mid 90's.
- davedx 3y agoAlmost the same here. I actually got started with Borland Visual C++ but moved onto DJGPP, IIRC so I could get access to all 32 bits of memory address space? It's been a long time!
- rwmj 3y agoDJ is still very much around. He works at Red Hat on toolchain things, and is also helping out with the RISC-V port of Fedora.
- happosai 3y agoI bumped into him in conference some years ago and had some great chats. Only much later I realized he was the DJ from DJGPP. Missed my chance to thank for creating the compiler I used in my DOS teenager years!
- matt3210 3y agoMy first c++ compiler in 97
- martinclayton 3y agoUsed this for a camera project in 1992-3. We had a 16MB machine and our images were 14MB, so we couldn't squeeze in to Windows 3.1. Worked a treat, and was much easier to work in the flat memory space it offered IIRC.
- vdaea 3y agohttp://www.delorie.com/users/dj/ http://www.delorie.com/users/dj/ Interesting name. I wonder if it's the one that his parents gave him or if he changed it? Very unusual.
- jfk13 3y agoCurious; it looks like his background is New England. In my mind the use of letters (can't really call them initials) as the actual name is a pattern that's more associated with the South of the US. Whether to include periods and/or spaces seems to be variable. (Remember Johnny Cash? Originally named J. R. Cash; he only expanded the "J" to "John" when he joined the Air Force, as they wouldn't allow the single letter; and AFAIK never did expand the "R". See also Harry S Truman: the "S" does not stand for any one name.)
- giamma 3y agoI was using it in the early 90's. At that time if you wanted to port your C/C++ application to multiple platforms, one option would be: - gcc on linux - djgpp on MSDos - emx+gcc on OS/2 [1] [1] https://en.wikipedia.org/wiki/EMX_(programming_environment) https://en.wikipedia.org/wiki/EMX_(programming_environment)
- micheljansen 3y agoThis brings back memories! Back when I wanted to get into programming, I had no idea where to start. I found a book about C++ at the library and it was one of the only programming languages I had heard about before (little did I know!). I believe it was "Teach yourself C++ in 21 days" or something like that. It came with a copy of DJGPP on CD-ROM. Looking back it's amazing how much easier it is to learn stuff nowadays. The internet is truly a blessing.
- docandrew 3y agoIs it easier now? Back then you could learn C++ in 21 days, nowadays it takes years and years and you’re still just scratching the surface. :)
- micheljansen 3y agoWell this was more than 21 years ago and I still barely scratched the surface (though nowadays I also have less need for it)
- treprinum 3y agoDJGPP was where as a kid I learned C++, inline assembly with advanced optimizations and produced my first real-time 3D engine (perspective-correct Gouraud shaded textured polygons with Z-buffer and view frustum culling, no HW acceleration). In RHIDE as well. Thanks DJ!
- scoopr 3y agoFor the longest time I had memorised the weird dpmi commands to enable 13h mode and get the screen buffer address. I don't think I can remember anymore. Good times :) Also the one place I learned to use `info`, as it had a very good reference for many of the libc stuff, though for some reason I never really continued to use it even if its available on linux.
- miohtama 3y agoAlso remember Rhide IDE. (Looks like the official Rhide website is down/gone?).
- keepamovin 3y agoMany happy memories learning to program C on DOS/Windows back in the 90s. This little website (which looks the same as back then) was my go to! :)
- DeathArrow 3y agoBlast from the past!
- ChrisArchitect 3y agoIs this still being developed? https://www.delorie.com/pub/djgpp/current/v2/ https://www.delorie.com/pub/djgpp/current/v2/
- andrewf 3y agoThey have a pretty recent build of GCC, 12.2 from 18 months ago. https://www.delorie.com/pub/djgpp/current/v2gnu/ https://www.delorie.com/pub/djgpp/current/v2gnu/
- butterisgood 3y agoFond memories of writing software with Allegro on DOS. Playing around with little games. Definitely made getting into C/C++ on Linux easier to have started with this tool chain.
- ketralnis 3y agoI learned C on this compiler. Very fond memories
- malux85 3y agoMe too! On a bunch of old 486 machines my high school library threw in the trash (I fished them out after school) Frankensteined a few together until I had 4 machines, connected their serial ports, and learnt C and how to use a chess library to make them play chess against each other, it took me years but I leant heaps, Also got my first exposure to a decent graphical desktop, Desqview/X!
- slim 3y agoFond memories of RHIDE. It was as capable as borland C
- gpderetta 3y agoI started with some 16bit Turbo C++ variant (I hardly remember), but quickly moved to DJGPP and protected mode (with Allegro). Great memories!
- kunjanshah 3y agoI learnt game programming with this and Allegro!
- busterarm 3y agoGosh I remember trying to wrap my head around this and Allegro in my early teens. Specifically for use with Mugen. Years later I learned SDL/SDL2 and found them much much easier.
- sgt 3y agoSame, Allegro was very impressive, and I built a little game in it. However, I remember I got stuck on something that I didn't quite fully understand at the time. Hell of a lot of fun though. Re SDL - exactly! Same path. It's been years since I wanted to play around making a game. I was thinking of building something in the love 2d framework now. What do you think of that?