Sybase to Open Souce Watcom C/C++ & Fortran Compiler
Kendall Bennett writes "Rumours have been running around for some time, but now it is official. Sybase has announced that it will be releasing the full source code to the Watcom C/C++ and Fortran compilers under an Open Source license. For more information see the new Open Watcom website." The press release states as well that the license will comply with an OSI approved license.
Obviously, this is no category killer. However, just having the source open might be a good thing as a reference for others working on compiler projects, such as CS students or GCC hackers...
GPL would be nice (especially for those reasons listed above)... One can at least hope...
It was also the best pre-win95 compiler for PC games development, largely thanks to the free DOS extender. Many fond memories.
Oh yesh.
I'm currently working on my FortranOS. If you thought PerlOS was slow, just you wait. Boots in minutes.
obviuosly up to no good,
-Kabloona
If Borland opened it's Object Pascal compiler (independent of Delphi), I'd switch to it for many development projects
Have you tried Free Pascal? It supports Object Pascal and Delphi code. And it's already free, so there's no waiting.
-- Floyd
-- Floyd
Watcom VI source code will be included as far as I know.
- Kendall
Nowadays GCC has very good general optimizations and a lot of x86 specific ones (386, 486, pentium, pentiumpro, amdk6). And in GCC 2.96 and upwards the x86 backend was rewriten for better optimizations, support for amd athlon, etc. ....
To enable these, you need something like:
gcc -O2 -mcpu=pentiumpro -march=pentiumpro
(this example is for pentimpro's and family, ie, PPRO, PII and PIII).
I have compared the code generated with that of Borland C and MSVC and it's generaly better (at least with C input).
But stil, it's not perfect. Look at http://gcc.gnu.org/proj-optimize.html , wich describes some probles as February 2000 (some of these are better now...).
When Netscape went open-source, the mozilla team still started from scratch because the old code was such a mess. If Microsoft released their code, it too would only serve as a reference. The value of giving away the Watcom compiler is not in the binary you get from compiling the source (which you could already get for a fee), but in the freedom to use whatever useful bits are buried in the source itself.
That's one of the main points of Open Source.
11.0b still does support NLM development. Stephen Howe [TeamSybase]
Oh, sure, it supports a rather castrated sub-set of Pascal.
None of my platform-clean Delphi code will compile on Free Pascal. Why? I design the code I write. With interfaces (pure virtual base classes, in a sense).
Tassach, Do you belong to the Power++ list server? It is the best place to get help if you are still using this. See http://www.neatech.ch/Lists/ Stephen Howe [TeamSybase]
Sybase never open sourced ASE. What they did do was make ASE 11.0.3.3 available for Linux for free with (what I consider) a very liberal license.
You can't get support for 11.0.3.3 for Linux, but you can still buy 11.9.2 for Linux (and get support with that.)
Watcom was a great compiler, produced (and I must say, still produces) some of the most highly optimized code of any compilers. I still use it for my minor projects...
What have YOU done for advancement of humanity?
I *was* going to comment that obfuscated c tends to obfuscate function, while obfuscated fortran tends to hide transfer of control. However, I think I"d blanked out nightmares like that one.
I never truly understood the horror of spaghettic code until I needed to use a program of my boss's. I was using Fortran 90 at the time (Absoft on x86 Linux and dec/compaq on alpha [and Steve was the one who answered some of my problems, come to think of it {and while I'm abusing subparentheses, my boss probably would have had an alpha if compaq fortran had been available for linux/alpha at the time}[), and the program was allegedly in F77. It was closer to FIV, but hadn't even used parts of *that* that would make it clearer (I suspect it descended from the Numerical Recipes book), so the thing ended up as a mix of II, IV, 77, and 90 . . . but that we could have dealt with. It was all of the gratuitious gotos that meant it took three days to figure out what the program was doing . . .
hawk
I think you'll be interested in
5 2/compila.html
http://www.geocities.com/SiliconValley/Vista/65
It seems like it would be useful to make a partial distribution of the binary version available for people that can access the platform SDK, etc, through MSDN subscriptions.
It would be nice if the liscence is broad enough so that optimizations can be moved into g77. Watcom's compilers produced tight fast code, that was generally faster than g77. Watcom console executables could run faster with under Windoze than g77 compiled programs outside of X on the same machine. I ended up using g77 anyway because it could compile very old fortran without much modification. I want the speed too.
Their IDE was straighforward. It was so easy to use that even I could compile mixed C, Fortran code. It took care of grunt work that will take me a long time to learn how to do with make. Compared to MS IDE, which ditched FORTRAN, it was a joy. I can't tell you how much time their GUI debuger saved me.
Their documentation was informative and well organized. Almost as good as Sun.
They also had a cute little VI for window called VIW that was specifically set up for code editing. Color coding of integers and keywords made reading code easy on the eyes. It put in different spacing for FORTRAN and C code, and did a load of other things that will take me forever to dupicate with VIM. I'm not sure, but I think it could recognize straight VM commands. Did not know enough VI at the time.
Over all, Watcom was much closer to normal standards than, Humpf, microsoft. I spent $200 bucks on one of their compilers and it was worth every penny at the time. They helped me grow, and escape the MS trap. Things I learned there I could use elsewhere.
Great going Sybase!
It's FORTRAN-77. I know some people whu use it and they seem to be happy with it.
The game Blood was written using Watcom C. I'm pretty sure that's not the only DOS-based game written using this compiler. It seriously kicks butt in compiler optimizations. Now, if could get Borland to open-source the editor environment, we'd have the perfect C development environment...
In theory, we should be able to take some of the smarts from the Watcom compiler and put them in GCC. I bet this won't be very possible in practice simply because of architectural differences in the compilers.
"It may be remarked in passing that success is an ugly thing. Men are deceived by its false resemblences to merit."
I really hope the code is released as GPL (or a GPL-compatible license). That way, the egcs (now gcc) team could incorporate some code (mostly optimizations I guess) in gcc. Also, I *think* the fortran frontend (g77) is missing a lot of features (like pointers). Maybe they'd be able to use Watcom fortran for these features... or even take the code to build a new frontend.
What's clear to me is that few people would be willing to continue developping watcom. I see more future in incorporating watcom stuff into gcc.
Opus: the Swiss army knife of audio codec
Not only does posthumous liberation get a good product out into the community, it accomplishes one more valuable service. It gives people the source for a technologically better (usually) alternative to whatever M$ has crammed down everyone's throat.
Watcom of years past is better than today's VC++ compiler. Their Fortran was great too. Now they're here and they will benefit gcc - if in no other manner than by letting the gcc developers consider alternative solutions.
-- What you do today will cost you a day of your life.
Direct from the OpenWatcom FAQ:
Q: What compilers will I need to compile the source code?
A: Initially the Open Watcom 1.0 compiler will require an official copy of the Watcom C/C++ 11.0b compiler, with the 11.0c binary patch release applied in order to successfully compile it. This is due to the need to rely upon proprietry SDK's for platforms such as Windows, and OS/2 that cannot be distributed along with the Open Source 1.0 compiler release. It is planned to eliminate this dependency in the Open Source 2.0 release, by allowing the compiler to work with freely downloadable SDK's for the supported platforms.
So in other words, to compile the 1.0 Open-Source version, you need the commercial 11.0c version. So everyone run out and buy the 11.0c version for ~$200 so you can compile your free Open-Source version. Or you could wait god knows how long for version 2.0 to come available without the 11.0c dependency.
Huh? What planet are you from? MSVC is probably the second best compiler available next to Intel's own C++ 4.5. From an eweek article (which you can find at here )
"Even in pre-release form, Visual C++ 6.0 yielded the fastest time we've ever measured for any development tool running the language-neutral, CPU-intensive Tak benchmark. The Microsoft 6.0 beta compiler yielded code that ran an astonishing 20 percent faster than Version 5.0, when using all of the 6.0 version's aggressive new optimizations for Pentium-class processors. Visual C++ 6.0 even achieved a surprising 10 percent edge in Tak speed over Watcom C++ 10.5, our previous record holder among acceptably stable C++ implementations. We reserve judgment on Microsoft's success in implementing
new C++ features in this release while also maintaining reliability; in our tests, however, we encountered no problems with generated code. Visual C++ offers several different approaches to pleasing the performance-
sensitive user. In situations where some of an application's features are rarely used, and where a delay on first invocation is acceptable to most users, Visual C ++ 6.0 applications will be able to defer their loading of dynamic link libraries to accelerate application startup. Alternatively, libraries can be loaded on startup in the usual manner to speed subsequent invocations"
A deep unwavering belief is a sure sign you're missing something...
Wrong article :P
Abstainer: a weak person who yields to the temptation of denying himself a pleasure.
Abstainer: a weak person who yields to the temptation of denying himself a pleasure.
--Ambrose Bierce
Despite being phased out it's still a great industry strength database engine and if you don't really run heaviest load OLTP systems (and the official support is an issue of course), I don't really see a need to upgrade.
Despite Sybase' motivation I think they're doing a lot of good for the Linux community (e.g. release of Replication Server) and they deserve more credit for technically great products then their rotten marketing department would make you believe...
ich bin der musikant
mit taschenrechner in der hand
kraftwerk
It's very important to keep the mind open as well, not just the source.
Regards, Tommy
You're the one to correct me if I'm wrong :), but isn't the Compaq compiler for Linux still alpha (the processor, folks, not the status) only?
When we checked it out (but this was 3 or 4 years ago), the only choices for F90/95 on linux/x86 were NAG and absoft (and see above for NAG).
Hmm, I guess I need another good look at the market . . .
Thad
Thad
In terms of compliance it is F77 compiler with F90 extensions. See the Sybase technical document "FORTRAN 90 Compliant Extensions" http://www.sybase.com/detail/1,3151,44419,00.html I do not know about performance othr than it uses the same code generator as the C/C++ compilers Stephen Howe [TeamSybase]
Watcom is fast and will host on DOS/Win16/Win32/OS2 for DOS/Win16/Win32/OS2/Novell/Autocad/QnX targets - surely a worthy thing ...
I remember that one of the production versions of Quake (the one burned onto a CD) was compiled in Watcom because it was fastest? :) *shrugs* I believe that is true anyone remember??
Jeremy
Right now the only real compiler on Linux is GNU C
Actually that isn't true. There are already a couple of (albiet lesser known) commercial compilers for Linux:
KAI C++ -- Commercial C++ compiler for Linux.
Portland Group -- Commercial C, C++ and Fortran compilers for Linux.
The Open Watcom compiler products are the first and only mass-market commercial compilers to be open sourced...
This, of course, ignores the fact that there is a mass-market compiler which was never commercial, and is the very definition of open-source / free software...
I was moderated down for this earler today, but I'd be willing to buy Hemos a dictionary if he would learn how to spell.
- passion
Will there be official binaries for OS/2?
Any chance that it can compile with 10.6?
-- The universe began. Life started on a billion worlds...
-- Except on one where stupidity was there first.
--
When all you have is a hammer, every problem starts to look like a thumb.
"My opinions are my own, and I've got *lots* of them!"
We tried the demo version of nag back before we bought absoft, back in summer/fall 1997. Hmm, now that I think of it, it was probably spring/summer 98 by the timie we bought it, but anyway . . .
We had problems getting the demo to work. And while it was F95 to Absoft's F90, it generates C rather than an executable (which is where the performance issue comes from)--and performance is a *major* issue for what I do
Absoft sales was a series problem, though--it took several days for them to call me back. With sales that slow, I didn't want to even *think* about what tech support would be like--absoft tech support had called me back, pre-purchase, well before we eger heard from the sales folks at Nag. In all fairness, I heard later that the tech folks at Nag are much better than their sales counterparts about getting back to people, but the combination of no return calls and the lack of actual executables made absoft an easy choice.
We never regretted it. Tech support usually got back to me that afternoon if I sent a message in the morning, or the next morning if I sent it in the afternoon. They also sent responses by email to questions I asked in the Fortran Newsgroup (Steve Lionel also answers an impressive volume there).
hawk
Does anyone still use Watcom? Why?
However, if you do (for whatever bizarre reason) at least you can now be assured of support.
OSing dead products is better than burying them, but not as good as OSing live products.
At the time of writing, this is a first post.
--
--
E_NOSIG
Well, I had to get used to FORTRAN77 "legacy" code two years ago (that was 7 years after I learned Pascal and C). I know I wasn't the only one who spent ages on finding a very strange bug...
The formula extended beyond the 72nd character!
See also this for good FORTRAN programming style. ALWAYS USE CAPITALS IT LOOKS WAY BETTER THIS WAY;-)
Anyone have any information of performance and compliance of their Fortran compiler?
Bryan R.
Bryan R.
The price of freedom is eternal vigilance, or $12.50 as seen on eBay.....
In what way it is better than DJGPP? Look there Disclaimer: I don't have watcom c myself, so I cannot verify info there.
My old company, a nursing agency, hasn't upgraded off of DOS yet. Lots of us exist.
Yet another compiler with crappy inline ASM. Is it just me, or is MSVC inline ASM the prettiest thing around?
A deep unwavering belief is a sure sign you're missing something...
So what Exactly are you saying here?
Yes I can not spell...Wait....for a second there I almost cared.
Watcom compiler generates code only for x86 and *BSD systems are not x86-only. They need GCC, because it supports lots of hardware platforms.
However, in graduate school, I was developing a biology simulation in Matlab. The development went well, but the execution was painfully slow. Since Fortran 90/95 was syntactically similar to Matlab I was able to port his huge simulation in a few days and keep working in Fortran without much of a learning curve. Say what you want, for high performance numerical computing with lots of vector operations, Fortran is one of the best languages out there.
Bringing this back to the open source world, numerically intense vector computations can be developed in Octave, and easily ported to Fortran 90/95. It's a one-two punch that I would definitely find useful. Unfortunately, the only free Fortran compilers I've found are for Fortran 77.
Just my two bits.
Sounds to me like, "We've got this product and our sales are really slipping and it's costing us more to maintain it than we're bringing on sales and upgrades. Hmm, let's just throw it away....No, wait! Let's release the source code, let the customers maintain it, call it 'Open Source' and get a temporary boost in our stock price to offset our losses. Yeah, that's the ticket."
Just be sure to wear the gold uniform when you beam down -- you know what happens when you wear the red one.
Have you tried Free Pascal? It supports Object Pascal and Delphi code. And it's already free, so there's no waiting.
And it compiles 10x slower than Borland's compiler.
It seems to me that we got pretty strong warnings from a few locations that the Portland compiler just plain wasn't ready for prime time, and we stayed away from it. Now that I think o it, one of our concernes was multiprocessing, as he'd had the budget for a dual PII (III? 333mhz), and there were libraries available for absoft that would spit out multi-processor code for much of the math (we bought them, but I never got as far as working with them).
This time around, performance is important, but I'll be developing on my machine and usinc scp/ssh to send the real work to the heavy-duty machines at main campus.
hawk
Isn't this standard in C / C++? The lower mathematical operand's type is casted to the highest one to ensure bits are not lost.
If you want asm-specific solutions you should use inline assembler IMHO. And this is one of the huge strengths of Watcom C++. The compiler allows you to make completely inline asm-functions! (Beware though that registers are locked, so you ought to know what you're doing)
I still can't believe any MS-compiler beats Watcom C++ on optimized output though. I've read the output myself, and it totally rocks (made me quit programming in assembler).
- Steeltoe
http://www.debunkingskeptics.com/
I never used Watcom, but I respected them mightily. Back in 1992/1993, the compiler that I used was Borland C++ 2.0 and 3.1. That was the state of the art for inexpensive compilers. I had read for years about Watcom's compiler. It was more expensive than Borland's, but it supported the Weitek coprocessor chip that you could install instead of a 387. That made Watcom's compiler favored for scientific and engineering work.
But, what made me drool was the support for DOS Extenders! Back then I was using Borland C++ and those ghastly overlays to shoehorn a 1 meg+ sized executable into the roughly 580K left over after DOS 5.0 was loaded into memory, along with all the network and CD-ROM device drivers. The idea that I could write a program with a DOS extender that would occupy up to 16 megabytes was an incredible idea. I hoped that Borland would include a DOS extender in their upcoming compiler release.
Alas, it was not to be. Borland abandoned their hard-core DOS users and threw in some half-assed Windows 3.0 support instead. Sure, I could write a program that occupied up to 16 megabytes, but I was still stuck with a silly resource limitation and a flaky operating environment. What good was it to write a program that would only run for 5 minutes between OS crashes? I abandoned Borland, picked up Linux, and haven't looked back. From the looks of it, just about everybody else using BC++ back then also abandoned them.
If Watcom had made their C++ compiler just a little bit cheaper, college students everywhere could have afforded it, and perhaps DOS would have held the mainstream a bit longer.
If tits were wings it'd be flying around.
>> This is great news b/c there are bugs I had to work around in v11, now I can fix them myself!!! You don't have to. Point your newsreader at news://forums.sybase.com, raise your points in powresoft.public.watcom_c_c++.general and I will answer your questions. Plenty of the bugs have already been solved. Stephen Howe [TeamSybase]
Bzzzt! Wrong! See "The Design and Evolution of C++" by Stroustrup for a full explanation.
--
It's a
-- Danny Vermin
Nah, not really. I'm closely related to a few employees and good friends with the rest of them (there are only 15 people in the office). I'm there quite frequently visiting and doing computer help, though not for pay. Therefore, my use of "us" was correct though not explained :)
Steve Lionel
It supports namespaces but the libraries do not come enclosed in std. Template support is limited. It does not include member templates nor partial specialisation. Exceptions are supported, new style casts, RTTI Stephen Howe [TeamSybase]
The other guy (jetson123) responded with some good technical points on why Fortran is to be preferred to C under some circumstances. It all comes down to the fact that array manipulations suck under C.
It's also worth adding that the array syntax in Fortran 90 (or later) is VERY nice---especially if, as many numerical oriented programmers do, you prototype your code in Matlab first. This makes developing some types of numerical codes incredibly quick and easy compared to trying to do the equivalent in C. Note that this is not an apology for Fortran 77, which I hate using. Fortran isn't dying, it's just evolved and become even better suited to the narrow market of numerical/scientific computation. I'm always amazed at what a pleasure it is to use Fortran 90/95; it's a really nice language.
Plus on many high-end machines, Fortran compilers produce much faster code. C can compete with some hand-tuning, but it's not fun.
Don't knock Fortran, there's life in teh old girl yet.
:)
For whatever reason (partly historical, partly due to language sturcture), all the supercomputer optimising compilers that I've got access to use Fortran [0].
When I say optimising, I mean using vector registars, and al the other funcky gubbins of those babys.
Fortran also has the complex data type, something sorely lacking in C, from the point of view of mathematical work.
In fact, I am now in the situation of learning Fortran, after having learned programming in C, purelt because numerical and scientific computing is easier in Fortran.
And for the supercomputers too
[0] Maybe I just don't get acess to good C compilers for the Cray. I dunno.
In what way it is better than DJGPP?
;-)
Whoops, sorry!
Two (3) main reasons:
1. Non AT&T assembler syntax
2. Flat-model protected mode
(3. P6 opcodes in the assembler)
Since these are 99% of my requirements, I'm entitled to use the qualifier "way better".
Also, speed isn't an issue for my code, but the website you pointed me to is very interesting. I did the same experiment a while ago with a raytracing program I wrote. I found that intel's proton compiler (w/help from Vtune) was even faster than my version of gcc and mvsc 6.0. I'd like to see the comparison.
---
Unto the land of the dead shalt thou be sent at last.
Surely thou shalt repent of thy cunning.
https://www.accountkiller.com/removal-requested
g77 and f2c cut it or some legacy applications. They don't have the extensions that many of us took for granted in the 80's, let alone anything resembling F90/95.
For that matter, is there any F90 support in Watcom? Not that it will make much difference; we need to order a Linux Fortran compiler in the next month or so, so it looks like Absoft again (which is a fine compiler with the best tech support I've ever found for *any* product).
hawk
for (int ii = 0; ii should compile without errors.
--
It's a
-- Danny Vermin
. . . but Fortran *is* still changing, sometimes rapidly. No, it doesn't have everything that C does--nor should it. For many types of heavy computation, it is still the language of choice (Including my own research).
The strengths aren't just from what is *in* fortran, but from what is left *out*. Because certain classes of pointers/objects/whatever aren't there, stronger assumptions can be made while optimizing. You can quickly write fast code faster in Fortran than C.
Don't get me wrong--it's not that C *can't* produce numerical code as fast as the corresponding Fortran; it can. However, this happens after hand-tuning and optimizing the C, and it generally reaches roughly parity with the initial Fortran program.
hawk, still using Fortran
for (int ii = 0; ii < 4; ii++)
...
...
{
}
for (int ii = 0; ii < 8; ii++)
{
}
Should compile without errors.
--
It's a
-- Danny Vermin
I hope the gcc maintainers will take advantage of this to add pentium (others?) optimization support.
I got that. I was just hoping :) I've been a fan if Digital Fortran for a *very* long time. I've only hit one bug in it, ever--and that was nearly 20 years ago on a PDP-10 . . .
I think you have to go back farther than Quake... (though I don't know for sure about Quake) but Doom was compiled using Watcom C. That made the port to QNX a lot easier, as Watcom is the standard compiler for QNX 4.
-David
Ah, I remember Watcom VI. It was great. I used it when I worked at WATCOM some 10 years ago. It took me *years* to ween myself off VI after that.
Random trivia: If I recall, the developer who wrote Watcom VI (at least the original versions) was also the developer who wrote WATCOM's 32-bit Windows extender (before Microsoft even created Win32s). His name was Craig Eisler. He then joined Microsoft around 1993 and was the lead developer for the first few versions of DirectX. There's a book about the original Microsoft DirectX team called "Renegades of the Empire". Craig went on to become the General Manager of Microsoft's Netshow product I think, but unfortunately left Microsoft in the last year.
I see that there is a NAG Parallel Library, but does anyone know if NAG works with the MPIch library?
Come to think of it, we did have some problems with the NAG compiler at about that time. They had some problems with the glibc move at about that time. Since then it has been smooth sailing though.
As far as speed goes, we really don't really lean on out Linux boxes that much for that. We just pop on over to the SP or Origin when it comes to that. But we are getting a Linux cluster from IBM real soon now. I think they are thinking about the Portland Group Compiler. What do you think on PG vs. Absoft for a Linux cluster? My advisor is sitting on the board for the new Linux cluster, so we would appreciate any info.
There was an "unofficial tradition" that some of the internal folk had created a 68K code generator, but it never got released publicly.
It is not at all obvious that the compilers are of vast continuing use; they have been strongly tied to the IA-32 platform for so long that it may well be that the onset of IA-64, combined with, as you say, the "latest COM stuff," meant that a big-time redesign would be necessary for Watcom C to be useful for Windows deployment next year.
The availability of source code may nonetheless be useful to glean useful optimization techniques that may be redeployed with GCC. I'd heard at CSC talks in the late '80s that there was a lot of "slick" static analysis that would be generally applicable to any architecture; as you observe, architectural differences between Watcom C and GCC might make it difficult to make them applicable. Hopefully some of the peephole optimization techniques would be useful for the IA-32 architecture, and by the time the "analogies" would be made to make them applicable, it might become possible to apply "analagous" optimizations to other architectures.
If you're not part of the solution, you're part of the precipitate.
Inline assembler is bad except when it isn't. If you use Linux or FreeBSD, try looking at the output of "locate -i .s | grep src" for some examples of the latter case.
Naturally, apps programmers who use inline assembler should usually be shot, but there are parts of libc that would be slower without it, and for certain "glue" areas it can't be avoided.
--
Ben "You have your mind on computers, it seems."
This means that if the compiler is to be of any continuing interest as other than a "bare husk" from which GCC might "mine" some useful techniques, there will need to be a project to create a set of tools basically corresponding to Binutils and perhaps some portion of CygWin so that there is some "base" set of tools and libraries that can be used to recreate themselves.
The fact that there are existing GNU tools to that purpose ought to ease the task somewhat...
If you're not part of the solution, you're part of the precipitate.
This is a very good thing. I see a lot of people either putting down the Watcom compiler or making fun of Watcom for no longer being a major player in compilers. I'm surprised to see such sentiments from what is supposedly the open source community.
Watcom's open sourcing of their C++ compiler is a good thing all around. It has generally been accepted that open source is of the most value for system software, because it serves as a foundation for the work of many other people. It is difficult to bet on a lesser known vendor, when they could go out of business without warning. This has happened to be me several times. Open sourcing compilers, or even just releasing them free of charge, as Borland has done, is The Right Thing. It removes unneeded pressure from choosing development tools.
It is also excellent that gcc is getting more competition. gcc is a good compiler, and it has many boosters in the UNIX world, but it is crusty in manys ways, especially in the Windows environment. gcc has also been peculiarly slow in evolving for the x86 architecture, presumably because of initial personal grievances from FSF members. Watcom throws in a little competition. Maybe it is a better compiler. Maybe it generates better code. Maybe it has better error reporting. I don't know if it has any of these things, but it certainly has a good reputation.
I would love to see other vendors follow suit. If Borland opened it's Object Pascal compiler (independent of Delphi), I'd switch to it for many development projects.
The program was originally written for an ancient MS-DOS C compiler, then ported to (Borland Turbo) C++. A few years ago it was made into a 16-bit Windows program with an early version of MSVC, and then hacked into 32-bit compliance with Win95 (under MFC) and MS Visual Studio 97. And then they hired me.
The code reflects its history in terms of general messiness, internal compatability layers, and confused data structures (especially for translation between the original int/float-style types and the Windows structs and typedefs).
While I am hesitant to cause yet another round of complicated porting issues, I'd be interested to try moving to Watcom as part of a general code cleanup. How much work do you think it might take to convert a Microsoft Foundation Classes project into something more portable - or does Watcom have any support for MFC?
With tom,dick and harry open soucing near-dead products,I want to open source my kindergarten notes, any takers?
I tried several different ones for some crappy games I wrote back in the day when DOS was king and multitasking was talking on the phone while editing source files with edit.
Mmmmmm.... Well this is my sig.
I've been using Watcom for the past 6 years. It is the BEST compiler for DOS-based protected mode. (Way better than DGJPP, btw).
I do quite a bit of hardware design & validation, and operating in DOS4GW mode is essential for focused testing.
This is great news b/c there are bugs I had to work around in v11, now I can fix them myself!!!
---
Unto the land of the dead shalt thou be sent at last.
Surely thou shalt repent of thy cunning.
https://www.accountkiller.com/removal-requested
Visual C++ is useless if you need to target anything other than Win32.
Bloodlust Software used Watcom for their classic games. Executioners, Noggin Knockers, TimeSlaughter.... what memories... Checkout their new stuff at www.bloodlustsoftware.com. They require win9x though :(
-----
blah
If you click on the "Disable language extentions" in the c/c++ settings tab, I believe that code will compile without errors. Of course, without the language extentions, nothing else Microsoft (like MFC) will compile. :)
WATCOM C includes MFC, at least with the commercial version they used to sell. My copy has MFC 2.5 and MFC 4.1. I don't write software that uses MFC so I can't say how good WATCOM's support is for MFC.
As a Sybase employee, I can tell you that Sybase most definitely has not open sourced their ASE database engine. Not sure where you got that from.
blessings,
"Only in their dreams can men truly be free 'twas always thus, and always thus will be."
--Tom Schulman
Just dont use it
GCC and Watcom are pretty useless if u need to target anything other than computers
How do you open souce something? What is open souce?
Watcom was excellent for working multiple platforms (last two employers had OS/2 on the enterprise with a little DOS stuck in; say what you want but to date OS/2 has been far more stable than anything Microsoft has offered). I think it would be majorly cool if the multiplatform support was extended to Linux. I have used a couple of IDEs for Linux as well as GCC on the command line and frankly there is no good reason for a compiler to be as beastly to use as that. Watcom sports a basic IDE with basic project support as well as making fast and small executables. The Linux world could do far worse that porting Watcom to Linux.
I just read this from the info page:
"SciTech Software, a long time user of Watcom compiler products contacted Sybase about turning the compilers into an Open Source project, and hence the Open Watcom Project was born."
http://www.openwatcom.org/info.html
I was going to ask SyBase to open source their C/C++ compiler after finding out they dropped their compiler/support last year, but Thank-you SciTechSoft for getting the ball rolling !
No one knows what the language will look like in the year 2300 that scientists and engineers use, but they'll call it FORTRAN.
But seriously, I'm glad that Watcom's doing this. It won't affect me for several years (and then only if they integrate their optimization techniques into gcc). But I think that it is a good idea nonetheless.
I mainly use Alphas, so Compaq's compiler set (which does include F95) is good for me. I wish that they would open its source, but I don't really care since it works. They typically generate code that's 3.5 times faster than gcc, so maybe better optimization is possible for Intel boxes, too.
So, using just what commercial compiler would fall into the non-bizarre category? Isn't open source all about creating choices? I take your point about dead vs live products, but why should any profit-making operation give away something that they can sell? (Old question, but I've yet to see anyone present a convincing answer that doesn't depend on corporate altruism.)
-- Slashdot: When Public Access TV Says "No"
> OS/2? Are you people on crack?!!!
;-)
OS/2 may not be useful to you, but believe it or not it is very much alive and well in corporate use all over the world. Did you know that over 80% of the worlds ATM (Automatic Teller Machines) run OS/2? And that something like 50% of all banking systems run OS/2? And a large portion of voice mail systems run OS/2?
Sure OS/2 is dead as far as a consumer level OS is concerned, but it is far from dead in the corporate world. And if it is used by corporations, then someone has to write programs for it, and Watcom is one of the best compilers around for doing just that.
BTW, the US Navy's new smart ship runs OS/2 on a number of the machine, with no NT systems in sight
- Kendall
HKEY_CURRENT_USER\Software\Microsoft\Devstudio\6.0 \Layout
Other annoyances with DevStudio is it's inconsistant code completion features, and it's inefficient way of browsing through source. (I love how in Delphi you can hold the Ctrl button down and navigate your source like a hyperlinked web page)
Download a fast DirectX Tetris Clone [276 k]
Hal Duston
hald@sound.net
If Al Gore invented the internet, why is it named after George W. Bush?
That's irrelevant, I was talking about speed. Still, VisualC++ isn't as standard complient as one would like. Of course moving a large-code base from one compiler to another is something I'd only wish upon those I really hated.
A deep unwavering belief is a sure sign you're missing something...
Especially you, Garp. You wrote your comment on the wrong story.
I too enterred graduate school a fortran programmer, and I too did my thesis relying on Matlab. But the Matlab/C integratgion was really tight - so I learned C and didn't get stranded in a dying language. Since I learned C, I have never seen *any* non-legacy situation where Fortran was to be preferred over C.
Why did you choose Fortran over C?
"one treats others with courtesy not because they are gentlemen or gentlewomen, but because you are" --G. Henrichs
If you want to talk to Kendall Bennett about Open Watcom, then come to Warpstock 2000 on September 9-10 in Philadelphia. He will be giving a presentation on it.
--
And the men who hold high places must be the ones who start
To mold a new reality... closer to the heart
Watcom was an excellent C compiler; I hope some of their floating-point optimizations will eventually be folded into egcs, because I remember the default DOS-compiled BYTEMarks had a bit of an edge there.
:)
(Also, someone told me that when IBM recompiled the Windows source with it, it was about 30% faster at the time. I think that was for OS/2, but it was funny at the time.
---
pb Reply or e-mail; don't vaguely moderate.
pb Reply or e-mail; don't vaguely moderate.
In windows, MSVC is a great editor, but a horrible compiler. Finally, we get to see what makes Watcomm so great (plus I get to use it on my very tight budget).
For any of you kids that use MSVC's compiler, give Watcomm a chance, you'll be impressed at the difference!
-- "Almost everyone is an idiot. If you think I'm exaggerating, then you're one of them."
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
The Watcom compilers are the compilers of choice by the people at QNX.
"I have no special gift, I am only passionately curious." - Albert Einstein
Are these stories really so urgent that they have to go up without even a spell check?
---
Despite rumors to the contrary, I am not a turnip.
We've used the
Portland Group
Fortran & C compilers for a while. They are quite good; they have F90 (F95 adds only the forall, I believe, and I think that's supported too), HPF, and a lot of traditional extensions (VAX, Cray, SGI, etc.) Tech support is very quick and knowledgeable.
Liam Healy
Now I can retype all my 15 year old engineering programs to invert matrices and run them on my PC!
Yes, I know that Linux has a fortran compiler, I just don't know why I'd use it.
Which didn't stop me from garbage picking a Fortran 77 book a few months ago.
"Sybase plans to release the code under an Open Source license that will comply with the Open Source Definition (version 1.7), published by the Open Source Initiative" So it is going to be possible to re-use the source code from the compilers in another program, like GCC
I always prefer to start the year off with a bang - or, to be more precise, a series of loud hums, a crackle or two, and
I hope we see lots of great new additions to Fortran as a result of this :)
DrLunch.com The site that tells you what's for lunch!
When I was working there, Sybase tried to "open-source" the protocol specification for TDS (the protocol for Sybase SQL on-the-wire). This was hoped to benefit groups like freetds.org.
They ended up putting it out... but with a license that would have prevented anyone from producing a free workalike. The freetds guys couldn't even look at spec thing without possibly binding themselves to the license, and no longer being able to work on the project.
I know it says they will have a "open" license.. I hope it actually works out that way. The old Watcom guys are a pretty clever bunch. I think it will be nice for them to have their work available to the general public for free.
Watcoms Cross compiling abilities could add new Uses to FreeDOS. For Embedded developers FreeDOS/Watcom is the perfect combination. The ability to create 16 bit code means you can port applications to run on an 8088, and many older palmtops that use dos are powered by that venerable chip.
--- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
This is great! Another open source, out of date product that nobody uses!!!!
Not to look a gift compiler in the, er, mouth (parser?), but how good is the Watcom compiler? I'm especially curious about C++ support - does it support namespaces, templates, etc?
we need to order a Linux Fortran compiler in the next month or so, so it looks like Absoft again
Have you tried the NAG compiler? It is what we use here. It definitely does not produce the fastest code, but it very strictly adheres to the f95 standard. We have very little trouble "porting" our code to other platforms with less strict compilers (SGI, IBM).
I do wich there was a free (as in beer and speech) f95 compiler. If I only knew more C I would lend a hand with G95...
Right now the only real compiler on Linux is GNU C. There are moves afoot to bring the Borland and Metrowerks compilers to the Linux platform (Metrowerks for Linux is currently GNU C based), and I expect a Watcom port will not happen also.
Some might think that a port of the Watcom compiler to Linux would be a waste of time, since GNU C is already available. But consider that some developers may wish to port code to Linux that was previously developed with Watcom, and doing the port with the same compiler is a *lot* easier than doing a complete port to a whole new development tool chain!
Also don't forget that with Watcom going Open Source, there is also a mostly MASM compatible assembler included (WASM), which means porting existing DOS/Win32/OS2 assembler code to Linux will be a lot easier.
- Kendall
Actually the Open Source 1.0 compiler will include full support for both 16-bit and 32-bit DOS development out of the box. Including a commercial grade DOS extender (CauseWay, which is now public domain).
Hence your wish has now come true (not to mention the awesome debugging environment for 32-bit DOS development)!
- Kendall
You mean queef?
--
--
E_NOSIG
I'm starting to notice a new strategy (well, its not THAT new) in the software industry. If you have a product which really isn't bringing any revenue in, just open source it and claim it as PR.
This isn't a bad thing, its just kind of funny to note. Now on an interesting note, how easy is it for someone to look into the code of the compiler and get helpful ideas and hints to incorporate into their own compiler? What I mean is, will this move help out gcc in any way?
Actually, for those companies that haven't completely upgraded their infrastructure off of Windows 3.1 (yes, I still know of a couple), Watcom is their best choice.
Microsoft stopped supporting their 16-bit version of MSVC++ at 1.52c. Watcom is a much more modern C++ implementation.
Also, Watcom will (at least it did when I used it) compile Netware Load Modules. It is the only complier that supports this (or at least it was the only one that publicized it).
Ms. Macbeth, why has Sybase decided to do this?
Well Dan, the last release version of Watcom C++ was in February of 1996. We just really don't have the energy to do another one, and don't see any reason to since we the last money we made off this was when we accidently put "Watcom Linux" on the box and sold 6 copies to roblimo, who though it was a cool new Linux distribution.
I see. Why have you chosen SciTech Software as the official maintainer of the Watcom complier products?
As far we can tell, they are the only ones who have ever used them. Of course, it was to compile Vigor.
Any parting words Ms. Macbeth?
Could John Gugeheiman please stop calling us for support? For the last time, we don't know what a "long long int" is...
-- A hundred thousand lemmings can't be wrong!
Hey, extra compilers can't hurt too much... I wish they'd open source their old DOS C compiler (c. v10.x or so) 'cause i miss playing around with it, and for it's time it had the most ballz out optimizer...
---
Play Six Pack Man. I
GCC is not itself infectuous, unlike e.g. Bison.
Sigh... So much good work gets duplicated just because of those silly licenses, I often long for the good ol' days where everyone just slapped a one-liner "this is public domain code" on their code and was done.
Bert Driehuis -- All I asked was a friggin' rotatin' chair. Throw me a bone here, people.
Steve Lionel
Few people compile their own C/C++ compilers. What are the legal implications of an owner of the commercial version producing binaries for the various platforms supported by the source code? Surely that must be okay...
Indeed it was. Doom and Duke 3D were the two most high-profile games written using Watcom but there were some other good ones as well - Epic Pinball, One Must Fall and Toxic Bunny also spring to mind.
The game and demo programmer's paradise at x2ftp was - and still is - chock full of Watcom goodies. Some of those have been further developed to be successful commercial cross-platform rendering libraries in their own right.
But it was Doom that brought Watcom its popular fame - without a doubt. Game programmers and players everywhere were suddenly asking "DOS/4G? What the hell is this?" And when they found out that it was Watcom that could compile extended DOS programs (with none of the 16-bit memory model restrictions), there was a huge surge in games compiled using Watcom. Instead of all sorts of tricks with segments, EMS and/or XMS, you had a flat memory model. I remember drooling at the time because I'd just about had enough of huge pointers...
--- Hot Shot City is particularly good.
It's common knowledge that Doom and Descent were built with Watcom, and Quake was built with DJGPP, but have you seen the Depot? Or PinEight.com? Lots of cool DJGPP stuff.
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
Actually the code we will be releasing already includes a near production level quality compiler for the DEC Alpha chipsets, and the beginnings of compilers for MIPS and PowerPC processors. Watcom has since day one been completely CPU retargettable, and is very cleanly written internally.
Hence it is definately not specific to the x86 processor architecture, and in fact I do believe it was originally developed on non-x86 systems many years ago.
Hence it is highly possible that the Watcom compilers may be ported to other CPU architectures.
- Kendall
I think your a troll a nasty evil troll. And as long as I have to deal with Windows I want Netware.
"think of it as evolution in action"
Watcom is a great C compiler, that has a great deal of good optimization tricks that other compilers could benefit from. While GCC has been gaining ground rapidly, certainly you can always benefit from looking at someone else's code.
Watcom is what you use on microsoft when you need something better than ms visual studio products. (note, not a flame, those compilers are good for things, they just arent very optimizing). I've heard of people writing code in the MS suites and then compiling on watcom. Never underestimate the advantages of seeing someone else's ideas, we can always gain something
hoorah for sybase
Q:Doctor, how many autopsies have you performed on dead people?
A:All my autopsies have been performed on dead peop
It was the great game-developer compiler.
Not only was it a good optimizing compiler, but it had some really handy stuff for integrating with assembly routines.
For example, you could specify which arguments go in which registers, which registers would be modified by the operation, and where to expect the return result. The inline assembly stuff was also very handy.
As an added bonus, it came with WASM, so you didn't have to go out and buy TASM.
---
Despite rumors to the contrary, I am not a turnip.
I wonder if *BSD folks will switch from GCC to Watcom if the later is released under BSD license.
NetWare developers traditionally used the Watcom compiler. When Watcom tanked, they were forced to use CodeWarrior and even (gasp) gcc. Now at least Novell can manage its own compiler destiny.
"I thought I could organize freedom. How Scandinavian of me."