Hi, On Sun, May 5, 2013 at 10:37 PM, Louis Santillan <lpsan...@gmail.com> wrote: > > On Sun, May 5, 2013 at 11:25 AM, Rugxulo <rugx...@gmail.com> wrote: >> >> I don't think wcc.exe was ever meant to output 32-bit code. Granted, >> as mentioned previously, it will do some things ("movsx"), but >> apparently it doesn't use the extended 32-bit registers. > > That's the most disappointing part. As expensive as Watcom was, I was > expecting it do this kind of thing, and do it well.
I don't know what you were expecting. x86 is a weird hybrid. Wanting to have good 16-bit and 32-bit code mixed is not always reasonable nor easy to do. Or at least not all compilers support it. If all we're talking about is more speed, you've got to realize that limits will always exist to what compilers (even good ones) can do. Honestly, it doesn't matter without any specific things you know of that need optimizing. Which part is slow or too fat? OpenWatcom does have profiling support, but I don't think it'd be easy to use it for a kernel. Probably best to find certain crucial functions and optimize them than trying to micro-optimize everything as a whole. BTW, compare Turbo C to OpenWatcom. I'm pretty sure that OpenWatcom is far superior (at least for building the kernel). >> Though, again, call me cynical, but outside of just reordering >> instructions, I don't think this will speed up anything much. Even >> then it might just be too trivial. (This is a very difficult and >> arcane skill. It's hard to accuse compilers of being dumb when it's an >> endless void.) You'll probably get much faster speeds just from using >> select (386+) software: UIDE, RDISK, XMGR, HDPMI32, etc. > > You're probably right about targeting the tools. I'm just saying, it's a difficult mess, and sometimes the best changes are in surrounding tools (or habits or setups). > I'm excited by GCC 4.8.x coming to DJGPP. I just have questions I need to > answer for myself about it's 2.04 beta incompatibilities with 2.03 (like, > Whats the right way to install 2.04?, What needs to be recompiled for > 2.04?). Well, normally you don't want to mix 2.04 and 2.03p2 libs if you don't have to. Sometimes it won't work correctly, e.g. you can't install DJGPP 2.03p2 and expect 2.04's Ada or C++ to work correctly, the libc is using different functions that don't exist elsewhere. 2.03p2 is stable (and has GCC 4.7.3, at least) and preferred by some but missing some stuff (e.g. snprintf) that you may have to manually patch in. Technically, the same is true of 2.04, but IMHO 2.04 is a lot better, just never finalized nor tested as well in all environments. What needs to be recompiled? (BTW, obvious caveat: DJGPP can't compile the FreeDOS kernel. Should be obvious, but I'm mentioning it anyways.) As is, every official DJGPP program (well, almost) is ported and recompiled with both 2.03p2 "stable" and 2.04 "beta". So it's a clean separation, for whatever reason, not always technically necessary but better safe than sorry. (2.03p2 was tested better back in the day, but 2.04 has some niceties, e.g. better symlink support.) Though yeah, for good or bad, the Zip Picker only points to 2.03p2. To install: depends on what programs you want to run. A bare minimum C compiler (DJGPP 2.04, GCC 4.80) would be three files (or four if you want GNU Make, recommended): http://na.mirror.garr.it/mirrors/djgpp/beta/ djdev* = libc, libm, libemu, most C99 and POSIX 1992/2001 headers (*.h), some misc. tools bnu* = (GNU BinUtils) assembler, linker (both needed by backend), librarian (*.a manipulation), etc. gcc* = compiler driver (gcc), preprocessor (cpp), compiler proper (cc1), libgcc.a (optimized built-ins) /v2/djdev204.zip 30-Nov-2003 20:01 2,211,289 /v2gnu/bnu2232b.zip 31-Mar-2013 21:21 7,519,979 /v2gnu/gcc480b.zip 23-Mar-2013 09:46 12,970,432 /v2gnu/mak381b.zip 25-Nov-2007 01:22 358,148 EDIT: Oops, obviously you need some kind of DPMI server (in pure DOS), e.g. CWSDPMI or HDPMI32. http://homer.rice.edu/~sandmann/ http://www.japheth.de/HX.html ../current/v2misc/csdpmi7b.zip 29-Jan-2010 02:42 71,339 =============================================== @echo off REM ... install ... md \dj cd \dj REM ... if you want to later compile stuff with LFNs enabled, REM you'll need to enable your LFN driver here before unzipping ... for %%a in (djdev204 bnu2232b gcc480b) do unzip -q \tmp\%%a REM ... enable ... set DJGPP=c:\dj\djgpp.env path c:\dj\bin;%PATH% REM ... test ... for %%p in (dumpmachine dumpversion v) do gcc -%%p =============================================== > I must of misread BCC 5.5 for 4.5.2. I used to have 4.5.2 way back > when. I'll need to try to find it. Might be interesting to test, but I wouldn't get my hopes up on it being better than OpenWatcom, at least not in optimizations. Then again, even the almighty GCC sucks at older cpus like 486, so who knows. ------------------------------------------------------------------------------ Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user