Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Open Watcom Effort Makes First Public Release 225

epowers writes: "It's been a long time since /. ran this story, but a few days ago the Open Watcom Project made it's first public release. It's only a binary patch targeted at 11.0a/b owners, but it's still an important roadmark on the way to the planned full open source release of both the Watcom C/C++ and Fortran compilers. Most programmers, particularly game programmers, should remember the amount of prestige id software's DOOM generated for the Watcom compiler and the sudden proliferation of 32-bit DOS games with the tell-tale "DOS/4GW" startup banner. The download is available for free, but Open Watcom requests a $1-$50 donation to help support the development effort required to remove code Sybase doesn't own and to prepare the open source release."
This discussion has been archived. No new comments can be posted.

Open Watcom Effort Makes First Public Release

Comments Filter:
  • Some of my favorite games ran in DOS 4GW....Syndicate Wars most specifically....That would be cool to play in Linux.... I think the idea of the Graviton Lance was a concept that most game engines haven't fully developed (Fire a weapon, and tendrils of energy fire in truly random directions (Not just immediate explosino area) creating collateral damage that could hinder your progress later in the game.) Not to mention that Syndicate Wars had one of the coolest openings ever made. And the concept that you were one of two plusungood factions was REALLY cool. No "heroic" marines vs. "evil" zerg, etc.

    ok..that's it. Party on. eletcron maces for EVERYONE!

    JoeLinux
  • free? (Score:1, Funny)

    by jrockway ( 229604 )
    It's a free download but you have to pay for it? Doesn't sound too free to me. Reminds me of what we did to sell lemonade when I was a kid: "Free Lemonade, only 25 Cents!". :-)
    • Re:free? (Score:2, Informative)

      by dj28 ( 212815 )
      If you bothered to check the download page, you would see that you have the _option_ to donate. I am downloading it right now without having to donate. They just request that you do. No big deal.
      • heh, you think I check things before I complain? This is slashdot, man.
        • Actually, you should check thing before you complain. Even if it's slashdot. Even if your nickname doesn't identify you. Even if you have enough karma. Even if checking things will take some time and your comment appears too late for the moderators to notice.

          It's about respect to those who read your comments. Ungrounded jokes may seem less offensive than obvious trolls, but not in the context of slashdot, where trolls are normally ignored, while the jokes like yours are not.

    • Huh?
      You don't have to pay for it. They ask for donations but they don't make you pay anything.
      Seems like basic reading comprehension could help you out a lot.
    • That is the same as when getting Apple upgrades :)

    • It is free. Since I am on the Openwatcom development team, I know what I am talking about
  • Hmm (Score:5, Informative)

    by cdraus ( 522373 ) on Saturday September 29, 2001 @10:39PM (#2369472)
    They say (on the webpage) that a version is planned for Linux. Do we really need another C/C++ compiler for linux? We'd just end up with the trouble we had on DOS with people writing silly compiler dependent code and everything a big mess.
    • Re:Hmm (Score:1, Informative)

      by Anonymous Coward
      Because gcc crashes when you try to pass more than 32 megabytes on the stack.
      • Re:Hmm (Score:3, Funny)

        by John Miles ( 108215 )
        Because gcc crashes when you try to pass more than 32 megabytes on the stack.

        "Doctor, doctor. It hurts when I do this!"
      • Pushing vast amounts of data on the stack is a bad, bad, bad idea. Use dynamic memory allocation - that's what it's there for.
    • Re:Hmm (Score:5, Insightful)

      by reynaert ( 264437 ) on Saturday September 29, 2001 @11:15PM (#2369534)
      People are already writing very gcc-specific code for Linux. I've often seen that installation instructions for other Unices begin with 'install gcc'.
      • instructions for other Unices begin with 'install gcc'

        Well, it's not necessarily due lazy programmers, but braindead compilers/libraries. For example there's no way I'd release any softwere using sprintf instead of snprintf. Do you have any idea how much less format string exploits there would be with the n-version? Usually those instructions require gcc because many of those default compilers simply suck.

        Of course there's also software that requires gcc because the writer is lazy, but in those cases there're probably no instructions for 'other Unices'.

        If there were Watcom compiler for Linux with latest C++ standard support, I might use it instead of gcc.

        • by dvdeug ( 5033 )
          >> For example there's no way I'd release any softwere using sprintf instead of snprintf . Do you have any idea how much less format string exploits there would be with the n-version? Usually those instructions require gcc because many of those default compilers simply suck.

          GCC doesn't implement sprintf and snprintf; that's done in the C library. Any half-decent C compiler should support snprintf as well as sprintf if the C library supports them, and GCC won't save you if the C library doesn't.
      • Fort older code, "install GCC" simply mean "don't use the braindamaged pre-ANSI C compiler bundled with the system."
      • Part of the all-encompassing freedom that comes with the GNU system and it's compiler is the freedom to be forced to use gcc.

        Writing code that only compiles on the GNU C compiler is actually freeing the huddled masses of computer users the horror of using closed-source, arch-capitalist compiler products.
    • People programming on DOS didn't have such benefits from the internet and collaborative development/open standards we have today.

      You said it yourself, compiler dependent code is silly. Having Watcom for Linux will only make it easier for software houses to port their silly Watcom stuff, so I'm all for it.
      • Re:Hmm (Score:1, Informative)

        by Anonymous Coward
        What the fuck are you whining about? You obviously don't know anything about the subject. The Wacom compilers are some of the most ANSI compliant compilers in existance. The C++ 11.0 compiler produces better code then gcc. BTW 11.0 was released in the 90s, well after the "internet" revolution, though what that has to do with anything, I can't for the life of me figure out. You must be doing drugs. Any software house that selected the Wacom compiler did so because they were not decived by the Borland IDE/MS Visual C++ hype.
        • Okay, I was hoping this would be obvious, but by 'compiler dependent' I was referring to non-portable parts of the product. This would of course include the assembler, and any specific tools/libs.
    • Re:Hmm (Score:2, Insightful)

      by drinkypoo ( 153816 )
      Do we really need another C/C++ compiler for linux? We'd just end up with the trouble we had on DOS with people writing silly compiler dependent code and everything a big mess.

      People won't have to write compiler-dependent code to take advantages of the 386-set optimizations in the Watcom compiler. Many people will, no doubt, but eventually gcc will support that code, too, if "the people" want it.

    • Re:Hmm (Score:1, Interesting)

      by Anonymous Coward
      yes, we do need another C/C++ compiler for linux.

      The only C compilers for linux are gcc, lcc, and one from intel.

      lcc is great for learning about compiler design (that's why it was created), but it doesn't optimize very well, hasn't been stress tested in a real world environment, and has odd licensing issues (you can get the source code for free, but if you want to compile a program and sell it, you need to include a copy of the book as well). Also, the 2 authors are currently Microsoft employees, so you are at the mercy of Redmond.

      gcc is the "defacto" standard, but the inline assembler is only slightly less painful than having your asshole ham-slammed to goatse.cx proportions. Also, the since it's licensed under the restrictive GPL license, any programs it compiles contain GPL-licensed code, which makes it impossible to compile and sell closed-source programs with it, unless you pay the "stallman tax", which is one reason commercial linux apps are rarer than pork-eating muslims. Also, gcc is big, slow, requires lots of resources, and produces mediocre code.

      Intel's c/c++ compiler is rumored to produce blazingly fast code. However, it is a commercial product, so no linux user has ever used it, and no one really knows if it exists or not.

      So yes, another C/C++ compiler would be a good thing for linux.
      • Another one... (Score:3, Informative)

        by reynaert ( 264437 )
        TenDRA (http://www.cse.unsw.edu.au/~patrykz/TenDRA/ [unsw.edu.au]) also exists. The only thing I know about it is that it is included in Debian Woody. If anobody knows more, please reply :)
        • Re:Another one... (Score:3, Informative)

          by Cato ( 8296 )
          Very interesting - ANDF (Architecture Neutral Distribution Format) was dreamt up during the Unix wars, by the OSF (who created a Unix clone called OSF/1, used only by Compaq Tru64 these days), and this compiler implements a format (TDF) that seems to be derived from this. The idea was that compilers would produce ANDF, an intermediate compiler output format, and vendors would then ship CDs containing ANDF 'binaries' - the customer installed on their Unix box, which could be Alpha, PA-RISC, x86, etc, and a special tool then did the last stage of compilation from ANDF to binary.

          Not sure why this never took off, probably it was too much of a leap from existing technology and the Unix vendors saw it as commoditising their boxes. A few years later, Java's bytecode and use of JIT or install-time compilation came along and rendered this moot, though ANDF/TDF are probably still more flexible.
      • lcc is great for learning about compiler design (that's why it was created), but it doesn't optimize very well

        Then why does the Quake mod community prefer lcc to gcc?

        Also, the since it's licensed under the restrictive GPL license, any programs it compiles contain GPL-licensed code

        Not true. According to the GPL FAQ, a GNU General Public License on a compiler infects compiled code only if the compiler copies part of itself (or any other GPL code) into the output [gnu.org]. Thus, code compiled with GCC doesn't fall under the GPL unless it #includes a GPL'd header file or links against a GPL'd library. Most most programs under GNU/Linux link against GNU libc licensed under Lesser GPL, which simply means link dynamically or provide the .o files.

        You're probably thinking of Cygwin, whose default settings link all code to a GPL library, but Cygwin can also use the MinGW runtime that links only to libraries included with the Windows operating system.

      • Re:Hmm (Score:3, Informative)

        by amccall ( 24406 )
        The Commercial Intel compiler for Linux is not only available, but extremely functional. At one point I had a time limited Beta release on my computer, which compiled programs just fine. (After some hassles over licensing.)

        The commercial version is not extremely unreasonable in price, the main disadvantage in it is that it is not completely compatible with gcc, so you can't go and recompile all the packages on your system with it.

        Here's a link to Intel's page for it, I believe you can get an evaluation version from them here [intel.com]

        A free version is here for non commercial use is here [intel.com].

      • Also, Intel C++ for Linux is free for non-commercial use, so the licensing isn't *that* draconion.
    • Re:Hmm (Score:5, Insightful)

      by BlowCat ( 216402 ) on Sunday September 30, 2001 @01:56AM (#2369739)
      Your question contains the answer. We need another compiler for Linux so that the developers could check that they didn't occasionally wrote any "silly compiler dependent code" without having to reboot or to login to a box with the other compiler.

      Actually, more often the code is not silly, it's just that some compilers accept some quirky code, and the others don't.

      • Hmm... Maybe try the -ansi flag in gcc? In ANSI mode, it will error on any gcc-specific code.
        • They are doing it on purpose.
        • by dvdeug ( 5033 )
          Nope. From the manual:

          The `-ansi' option does not cause non-ISO programs to be rejected gratuitously. For that, `-pedantic' is required in addition to `-ansi'. *Note Warning Options::.

          `-pedantic'
          Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++. For ISO C, follows the version of the ISO C standard specified by any `-std' option used.
    • Re:Hmm (Score:2, Insightful)

      by sydbarrett74 ( 74307 )
      COnsidering that the quality of code produced by GCC is generally inferior to that produced by closed-source alternatives, I welcome an alternative. If the licence Sybase chooses is friendly, maybe sections can be lifted out to make GCC better, or maybe a hybrid that contains best-of-breeds. And this is by no means meant to be a troll or flamebait. I admire the many people who maintain the GCC codebase, but the general consensus amongst many is that its emitted code is not yet on a par with such compilers as Watcom and Borland (hence the importance of Kylix in its C++ version).
  • I wonder if this will be released under a GPL license? If so, when this puppy gets into the pulic domain, there will be anything worth merging into gcc, or vice versa? Or whether the two compilers themselves will ultimately be merged into one product?
    • by Anonymous Coward
      not flamebait, but My guess is that Watcom is far, far supierior to anything in GCC. some of the best & brightest worked on Watcom throughout it's 11(?) versions...

      only wish borland would take a clue and do the same..
      • by reynaert ( 264437 ) on Saturday September 29, 2001 @11:26PM (#2369554)
        gcc is portable to dozens of different architectures, and can relatively easily be ported to new architectures or new languages. That's a very impressive feat.

        Watcom generates very optimal code for the i386. That's also a very impressive feat.

        In other words, but compilers are extremely good in what they are designed for.
        • by Anonymous Coward
          Very true. GCC is probably the best compiler currently available for targeting code to multiple platforms. However, there are many aspects of a modern compiler that GCC either does not implement, or that GCC implements poorly (for example, the last time I checked, GCC's register allocation was a complete mess). Consequently, while GCC is very useful for those looking for portability or for something free, it's not necessarily the best choice for those in other situations.
        • Watcom generates very optimal code for the i386. That's also a very impressive feat.
          Is it? Nobody is using i386s nowadays, except for embedded applications. The younger members of the ia32 family require rather different optimizations (even when compared to the Pentium or Pentium Pro, totally different when compared to the i386).

          Maybe the Watcom compiler generates really good code for the i386, i486, and Pentium processor (perhaps even for the Pentium Pro/II), but AFAIK it doesn't support SSE2, so performance on the Pentium IV won't be much better than GCC. (If it is, it is certainly not due to heavily target-dependent optimizations on Watcoms part.)

    • First: being released under the GPL is very different from being released in the public domain. I direct you to the Copyright FAQ [faqs.org].

      Watcom and gcc will never be a single compiler. Watcom's primary goal is to generate optimum code for the i386/DOS. gcc's goal is to be free and as portable as possible. Many of Watcom's optimisations will most likely find their way into gcc (and DJGPP), but they will remain two distinct projects.

    • GPL != public domain

      The press-release is talking about an Open Source license, so GPL is an option, although I would rather expect it to be released under a specialized license, something like Mozilla Public License.

      I don't think that GCC team will want to take any code from any other project, unless it's a project to develop something specifically for GCC.

      It's very hard to merge old large projects such as GCC and Watcom C/C++.

  • by Anonymous Coward
    The Open Watcom core team has already created a binary patch update release
    Interesting use of the word once you take the project status [openwatcom.org] page into consideration.

    Perhaps this time next year they'll release another beta of this patch, get a little more free publicity from Slashdot, and get a few more dollars in donations. How exactly does this project qualify as open source? Just because they say it is?

  • Bravo! (Score:4, Interesting)

    by maggard ( 5579 ) <michael@michaelmaggard.com> on Saturday September 29, 2001 @11:00PM (#2369509) Homepage Journal
    The more high-quality compilers the better!

    More compilers means more techniques applied and evaluated, benefits from compare & contrast, ability to more easily identify errors specific to a compiler and not code, and possibly more generic code in a more diverse environment.\

    • It also means less developer ressources to spend per compiler. It isn't like a new compiler suddenly make more people (or money) interested in doing development.

  • This OpenWatcom project has existed for over a year, claiming they will make a open source release.

    Yet they still haven't released a single line of source. They haven't even decided on a license. All they did is release a binary patch.

    Why don't they just rip out the stuff they can't distribute, and publish the incomplete source? At the very least, it would be a proof of their intentions.

    As it stands, this thing is just a hoax.
    • by n3m6 ( 101260 ) <abdulla DOT faraz AT gmail DOT com> on Saturday September 29, 2001 @11:37PM (#2369571) Homepage Journal
      From the FRONT PAGE !!!

      "When the Open Watcom 1.0 release is complete, the team will be open for general admission from anyone. The Open Watcom team is closed for the initial part of the project due to NCA restrictions with Sybase. If you have any further questions, please visit our FAQ section first. "

      From the FAQ

      " Is everything that was on the Watcom CD available for free download?

      No. The commercial versions of the Watcom C/C++ and Fortran compilers contained licensed copies of the Windows SDK, Microsoft Foundation Classes, OS/2 Toolkit and other commercial tools. Due to licensing issues, those components cannot be made freely available. Hence in order to utilise the 11.0c binary patch release, you will need an official copy of the 11.0, 11.0a or 11.0b installation CD. "



      Read the FAQ first please
      The release of the path itself shows that the project is under development and it is not dead. However the project needs to solve its legal issues which WILL take time.

      i am not a developer nor have any contacts or relationships or sex with sybase or scitechsoft.
      Thank you!
      • However the project needs to solve its legal issues.

        Who says they ever will be solved? The whole OpenWatcom project can just disappear one morning because legal issues. Until source has been released I consider the project vaporware.

        I looked a little in their BugZilla system, and saw that the DOS/4GW extender is one of those 'legal issues'. But why do they have to wait for permission for DOS/4GW to release the rest of the system? They can just strip out the utilities, libraries and what else they can't distribute. The result might not even compile, but that's not important. The important thing is that there's source. Maybe somebody can write replacements for the parts with 'legal issues'. Maybe we'll have to wait until they can sort it out. But in the meantime, the rest of the system is available, and will be available forever.

    • Yes you are missing something...

      Large commericial products like Watcom was are usually fully of licensed code. Then being that probably hundreds of programmers have come and gone probably those left aren't too sure which code belongs to who. In our litigous world you just can't take a chance and put our the code and hope not to get sued. Then all the code they have to remove has to be replaced so not a fast process. Just look how long it took SGI to release the XFS filesystem for the same licensing issues. So I wouldn't say its a hoax, and a waste of time to release code before its ready.

      Anyway Watcom was only a good C compiler in the DOS days. It was a only so-so Windows and C++ compiler. Watcom is probably just the internel compiler for Sybase products and hoping by going "open" to get some free QA and maybe some usable bug fixes. Same thing Borland did with Interbase.
  • by Dr. Awktagon ( 233360 ) on Saturday September 29, 2001 @11:08PM (#2369521) Homepage
    I wish EVERY substantial Free/Open software project had a donation page pop up before download. There are several programs that I use regularly for which I would donate when downloading or upgrading.

    In fact, Free/Open software is much more valuable to me than the alternatives.

    So in other words, I will only pay for Free software! ;-)

    (Too bad they use Amazon for their donations, for those of us boycotting them.)
    • Just pointing out that they haven't released a single line of code yet. They haven't shown any proof they will.

      Therefore it is hardly a substantial Free/Open software project, and donating money is a little optimistic.
      • Actually (not to disagree with your caution), but I have to note that both are reputable companies and I recall a long ago, SciTech in particular had source code available for an earlier version of their SVGA/VESA library, I remember because I was using it to learn how to use VESA in my own little Watcom DOS experienments. In visiting their site its cool (in an old skool sort of way)to see they're still doing business and still selling Display Doctor and MGL.
        • LOL... its all still there...

          http://sunsite.lanet.lv/ftp/mirror/x2ftp/msdos/p ro gramming/scitech/svgakt51.zip

          I was extremely fanatical when I came across x2ftp.oulo.fi, it had a lot of information and was contributory to my addiction to programming. Man, it was like finding a gold mine.
    • Don't wait for they to ask for money. Just send them some, along with a note saying you like the program they're working on (so they have some idea why they're suddenly getting money from strangers). I made a personal toolbar button that lets you quickly send money to any e-mail address listed on a web page. It works with Netscape 4, IE5 (but not 6), and Mozilla. You can get it here [squarefree.com]. You don't even have to install anything, although you do need to get an account at PayDirect if you want to actually send money with it.

      By the way, Amazon's boycottable actions aren't the only reason not to use their donation system. It's also one of the most expensive [squarefree.com] donation systems.
    • No, no popups please! Popup windows are nasty and one of the top usability problems on the web.
  • by Ryu2 ( 89645 ) on Saturday September 29, 2001 @11:11PM (#2369528) Homepage Journal
    Not a troll. 32-bit flat memory, etc. under DOS was cool in the early 90s, but really how viable is it in this day and age?
    • Watcom was also known for generating very optimal code. It easily beat most other compilers.

      When (if) they release it under the GPL, gcc's i386 code generation will become a lot better.

      • I don't think that a release of the Watcom compiler, whether under GPL or not, will automatically help GCC. When the Pentium came out, some people at Intel released an improved version of gcc with Pentium optimizations. But the way they were implemented was specific to that architecture - not 'clean' in some way or another - and the patches weren't included in the mainstream gcc for this reason. The project became pgcc and remained separate, although newer releases of the mainstream gcc have got better at Pentium / PPro stuff.

        The design of the Watcom compiler will surely be very different to gcc, so it won't be at all easy to just merge the code. We might see some distributions like Stampede or Mandrake compiling a few selected packages using the Watcom compiler for better performance though. I doubt a whole distribution could be recompiled with it at this stage; I think the Linux kernel code has gcc-specific inline assembler, for example.

        (Disclaimer: I'm not an expert on this stuff, corrections welcome.)
    • Ok, so that part is useless now. Programs are still written for flat, 32-bit addressing on intel x86 processors tho. Most of the code generation & optimizations should still be useful for a while. (Until everything goes to 64-bit, if ever...)

      Then again, maybe not... Considering the major changes in the x86 architecture, how *does* Watcom compare to modern compilers?
      • I don't know about gcc, but I compared watcom version 10 or so with visual C/C++ for some C image processing code years ago. IIRC, it was NOT noticably faster than microsoft's compiler at the time (if at all), and was much slower compiling code (and I mean DOG slow). At the time I concluded that it's reputation was some sort of myth, because I did not see anything worth putting up with the slow compile rate. And the debugger was hideous, if I recall correctly. I wanted to get away from microsloth, I really did, but it was a complete let down.
        • However, Microsoft's compiler is *damn* good (performance wise, not conformance wise). It makes fast code and compiles really, really fast. Watcom is a little slower in produced code speed, though I don't know about compile time. Still quite respectable, though.
    • Watcom C++ was a very solid product all around. 32-bit flat model DOS(4G) was only one of its targets.

      In particular, Watcom's optimizer was well respected.

      -John
    • by scrytch ( 9198 ) <chuck@myrealbox.com> on Sunday September 30, 2001 @11:33AM (#2370345)
      Not a troll. 32-bit flat memory, etc. under DOS was cool in the early 90s, but really how viable is it in this day and age?

      Because that's the same memory model linux uses (except on alphas where it's 64-bit). Or any other OS that supports virtual memory. Before that, in DOS you had to deal with segments, evil nastiness like FAR pointers and so forth.
  • by burtonator ( 70115 ) on Sunday September 30, 2001 @12:13AM (#2369630)
    Really cool that they are requesting donations. I think it is important for people to realize that Free Software (as in liberty) isn't always free (as in money).

    I think that if developers would use systems like paypal more we would see in increase in free software!

    Kevin
  • by --daz-- ( 139799 ) on Sunday September 30, 2001 @01:10AM (#2369694)
    ... could someone please provide a brief history of what the watcom compiler is or does differently than other compilers, and why it's suited to making DOOM-type games where other compilers aren't?

    The OpenWATCOM site wasn't terribly informative. Apparently, this is a big deal since it made Slashdot, but I guess I don't see the significance. Thanks!
    • ... could someone please provide a brief history of what the watcom compiler is or does differently than other compilers, and why it's suited to making DOOM-type games where other compilers aren't?

      IIRC, it came with a DOS extender that allowed the creation of programs with a flat 32 bit address space. This was very useful, as at the time programmers were still dealing with segments on x86 (limiting arrays to 64K, etc).

    • by Electrum ( 94638 ) <david@acz.org> on Sunday September 30, 2001 @03:35AM (#2369877) Homepage
      In combination with the DOS/4GW dos extender, it provided a flat 32-bit address space for programming. It also produced the better code than any compiler, by a wide margin. Back then, Microsoft's compiler for DOS was broken (it produced buggy code when optimizations were enabled). Borland's Turbo C++ was cool, and some games used it, like Wolfenstein 3D and Jazz Jackrabbit, but for games for the 486 like DOOM, nothing compared to Watcom. It also had really nice tools, like a cool VI like editor for DOS, an excellent debugger and profiler, and lots of other cool stuff. Not to mention that it would compile for DOS and Windows in both 16 and 32 modes, and OS/2. It was the first C/C++ compiler that I really started using heavily back in the day, and I must say that it was a very excellent product, worth every penny (I even got the student version for $99).

      There is probably a compiler or two now that produces better code for x86 (especially PIII and Athlon), like Intel's compiler, but being that most Linux distributions are compiled for 386 or possibly Pentium, there would be a ton of stuff that would benefit from a Watcom compiler for Linux.
    • "Apparently, this is a big deal since it made Slashdot, but I guess I don't see the significance." Dude, have you _seen_ some of the shit that gets posted here? ;P
    • As others have pointed out, the IDE and other goodies that Watcom were first rate at a time it was difficult to get good tools for DOS and windows. They made FORTRAN development much less painful and the code produced was fast. It was a nice place to start, and there are many useful pieces that can be folded into the GNU tools.

      You can find the history of it here [t-online.de]. Wow, reading that you realize how cool things are thanks to the FSF.

    • .. were

      1) being able to write highly optmized inline assembly right in C.

      #pragma aux funcname =
      " ... inline assembly "
      [used] [in] [out]

      and specificy WHICH registers were
      a) used (modified)
      b) passed as input
      c) passed as output

      Microsoft C, Turbo/Borland C, would disable all optimizations for a funcion if you had any inline assembely in it.

      2) The other neat feature was to install
      a) VGA card, and
      b) Hercules Mono Card

      Then you could source debug *graphics* programs running on the VGA card via the monochrome card. Was REAL handy for debugging ModeX games. (Note: Borland/Turbo did have this feature as well. I don't know about the Microsoft compilers.)

      3) Oh yeah, being able to do malloc(1000000) was darn cool. No more messing with near/far pointers or stupid 20-bit segmented memory.

      ~~~~~

      "The issue today is the same as it has been throughout all history, whether man shall be allowed to govern himself or be ruled by a small elite." - Thomas Jefferson
    • by fm6 ( 162816 )
      Back in ancient times, I learned to program Fortran IV using Waterloo Fortran AKA WatFor. (Yes, I've heard all the puns.) This was back in batch processing days, when running a program meant punching it on Hollerith cards [uiowa.edu] and handing the deck to a mainframe operator. We also had IBM Fortran, but I think WatFor was more cost effective for short compile-and-run jobs. This was when CPUs were fiendishly expensive, and you had to pay for every cycle you used.

      If memory serves, WatFor came from the University of Waterloo (Canada, not Belgium). The people who wrote it later went private and formed Watcom. Early 70s, I think.

      You youngins don't know how good you have it!

      • We used WATFIV.

        I was in elementary school/Jr. High, so we used bubble cards instead of punch cards. The first thing I did was run a job that ran off a bunch of customized punched $JOB cards.
  • Let it rest in peace.
  • by chrysalis ( 50680 ) on Sunday September 30, 2001 @06:33AM (#2370024) Homepage
    In the DOS-times, managing memory was a hell. It was both a hell for end-users (having to keep different sets of AUTOEXEC.BAT and CONFIG.SYS to make different programs work) and for programmers.
    The good old Borland C only allowed 16 bits segments. It was really lousy.
    There was some hacks to avoid this. I wrote some assembly code to enable the flat mode (only one big linear page up to 2 Gb), and Borland C finally could access 32-bits segments. But the page was still 16-bits by default, so all 32-bits operations had to be prefixed.
    I wrote some games and demos with this, but Borland's produced code was very bad. On a version of Borland C, while(1) was compiled as mov ax,1 then test ax, compare with zero and jump if 1 != 0. Awesome.
    It's why I tried Watcom. Watcom's code was better. Moreover it had specific optimizations for 486 and Pentium-class processors. And with DOS4GW, it was easy to access 32 bits pages. However :
    • The C-parser was buggy. Some absolutely correct piece of source code were misinterpreted by Watcom. For instance, it refused some "const" pointers that were indeed pointing to constant values.
    • The compiler was buggy. When some optimizations were turned on, it produced wrong code, sometimes reusing a register while it was still in use by someone else. And it simply ignored the volatile keyword, that was needed for interrupts hooks.
    • DOS4GW was cool, but sometimes slow. It was way faster to allocate a big memory chunk at startup and then mess in it, than allocating multiple small chunks.
    • Inserting assembly code used a totally different syntax than Borland C.

    So Watcom was an excellent compiler, but it was really, really buggy. I always had to review the assembly code by hand. But I liked the fact that "char" was unsigned by default.
    Then, I tried DJGPP [delorie.com]. DJGPP is a port of GCC to DOS platforms. It cames with a free DOS4GW-like called PMode.
    The resulting code wasn't that bad. For floating-point arithmetic, GCC produced slower code than Watcom (can't remember why, maybe GCC didn't use the arithmetic coprocessor). But it didn't matter, demos always use fixed-point anyway.
    GCC didn't produce buggy code like Watcom. And the code was...logical. Have a look at Ping [claranet.fr] for instance. It's a smooth pong-like game with carebears, bonuses, funny sounds, etc. I wrote that game with DJGPP, but if you look at the source code, you'll see that it looks a lot a assembly code. It's designed in a way that the compiler can translate one line of C in one line of assembler, and everything is pre-optimized. GCC respected this. I tried to recompile important parts of the code (sprite routines) with Watcom. The result was illogical. It tried to reorder some stuff, but this only gave slower code.
    The first releases of PMode were buggy, too. They worked very bad with Qemm. But then, it got better and finally was an excellent drop-in replacement for DOS4GW. But once and again, allocating a big page was faster than multiple pages.
    Why Watcom was cool : fast compiler (gcc was sooo sllooowww to compile), good optimizations for floating-point operations.
    Why DJGPP was better : free, comes with emulation of many Unix system calls, gives optimized code if the source code is already optimized. And GNU-assembler syntax is way better than TASM-like syntax.

    • Link warning (Score:3, Informative)

      by the way ( 22503 )
      Have a look at Ping [claranet.fr] for instance. It's a smooth pong-like game with carebears, bonuses, funny sounds, etc

      IE/Windows users might want to avoid clicking this link. It contains a script that deletes an email from your inbox. It won't effect you if your machine is secure, but there's better ways of finding that out...
  • All, Just remember also that at one time the only supported compiler by Novell's SDK for developing NLMs/VLMs for the server environment before they introduced the Java VM was Watcom. Respect to them for attempting to make it open source, I remember as a student that your could get the Novell SDk for not alot of cash (as is the way now) but the Watcom compiler cost alot so work was limited to working on college computers. Rgds Ollie
  • Has anybody tried actually compiling a kernel with Watcom? Does it compile? If so, how does the resultant code compare with old faithful?

    I know there are some really cool optimization techniques that the gcc authours would love to use, but are covered by patents. A kernel compile would be an interesting side by side comparison of the generated code quality.

    Since I am not a kernel, I don't worry too much about compile time, as long as it finishes sometime within the hour on a 1 GHz machine.

    • Since I am not a kernel
      >>>>>>>>
      Hopefully not! Oh, you mean kernel developer, don't you?

      The Linux kernel is really not geared to be portable between compilers. It uses a lot of GCC extensions that other compilers just don't have.
  • Okay, so I read that this is a binary patch for previous users but the install routine implies that it's just "harder" to do anything with it, not impossible for those of us who are Watcom-less. So, is it possible to use this to do anything if you're starting from scratch?

    Oh, and I'm more interested in the FORTRAN component of all this - don't ask me why...

    Schnapple
  • If you're interested in DOS and Windows development, you can also try the free (as in beer) Digital Mars [digitalmars.com] compiler.
  • Okay, I'm going to get blasted for this but... I'm interested to see what their Fortran compiler can do. I'm not exactly a huge fan of Fortran, but the language does have it's place (just like 'ed'). In college I took a Fortran class, and the guy teaching it didn't care what we used as long as it compiled Fortran code. Instead of paying for some Fortran compiler - [sarcasm] which I'm sure I'd use every day after I took the class [/sarcasm], I opted to use the Linux alternative. Looking through the man page for g77 I found that this thing somehow routes the Fortran code through gcc to create an executable. Well I made a "hello world" program and looked inside the directory... Over 100k for hello world?!? I mean this is irony here, Fortran is the first "language" after assembly created in the 50's... like they made 100k programs back then? I never benchmarked anything, but I can imagine that the results would be less than spectacular. Well I somehow doubt I'll do anymore Fortran, but it would be nice to see something a little better than g77 show up for Linux. Maybe it'll make some old crusty engineers happy too.
  • Ever since the DOS days, Watcom has been one of my favorite vendors. Thier compiler produces excellent i386 code.

    I, for one, wouldn't have any problem paying for thier products for my Linux endeavors. Furthermore, I hope to submite some of my own little improvements for review over time.(Like perhaps backend support for the GNU Ada compiler.)

    Anyways, if Watcom isn't too Anal about working with the Open Source and Free Software communities, we could really take this software a long way.

    I would also encourage people to actually purchase thier product also. They really are worth it.

    My .02 worth

    McDoobie
  • All I remember Watcom for are the claims how evil Byte and Apple were to use the Watcom compiler when comparing PPCs with Pentiums with the Bytemarks benchmark. Maybe it time has passed then, what is the point of it now.

    OTOH, it can't be worse than gcc ;-)

  • How does the Portland Group compilers fare in the current compiler market?

    -Paul Komarek

It is easier to write an incorrect program than understand a correct one.

Working...