Open Watcom 1.0 Released
JoshRendlesham writes "The Open Watcom C/C++ and FORTRAN 1.0 compilers have been officially released. The source, and binaries for Win32 and OS/2 systems, are available. This release also means that outside developers can join and contribute to the project." Or if you prefer, gcc is up to 3.2.2.
Does this mean that I can finally use the ROTT-source for something else than just looking at? :-)
Enjoy all the powerfull features of the 8 bit C64 for free!!!
Back in the days of DOS, if you were a developer, the Watcom C compiler was *the* thing to pirate.
graspee
I remember those old days that doom was written and compiled using Watcom C compiler. Just wondering what they(watcom) are up to now.
I used the watcom tools extensively on QNX and they were of excellent quality, this is really good news !
Hopefully this sets a trend.
MP3 Search Engine
use gcc-3.2.1-r6. It really fscks up Gentoo installations, and I don't think it's all that healthy for other distros either.
I'm looking forward to someone benchmarking gcc vs watcom to see how they do.
MP3 Search Engine
In the late 80s (?) Watcom products were really great. They were beating on everything for the Intel platform.
I received the email yesterday about Watcom's "release" to open source. In that email it says that Sybase felt there was no commercial value in the product anymore so they released it. My question is "Has Sybase been keeping this thing up? Is it useful today?" Or is this a scam to try to give life to a dying patient? I mean perhaps people working on this might be better off working on gcc or something.
Thanks!
Another version of FORTRAN! Yeah! Now if I can just find a card punch machine and reader on eBay, I'll have hutled into the 1970s!
1. GCC: My sense is that it is not a very high performance compiler - is that true? Would a better GCC make a big difference to the free software/oss world?
2. Does the Watcom WIN32 binary run under WINE?
What's the difference between using WatCom's complier and GNU's? How do you make a choice over which compiler to use?
I was going to ask if there were any performance comparisons around showing how Watcom performed, but then I realised that anyone with half a brain ran something through Google before Slashdot.
Win32 compilers (not including Watcom - and with good reason, it's a bitch to set up on Win32)
as linked from the djgpp FAQ, some info on DOS compilers.
So, hooray! A lesson in using Google before Slashdot mixed with some blatant karma-whoring.
PS. this is good too.
Sorry, no time to read this now. Will catch it on the repost....
Could someone post information on what companies are using Watcom and which products they've built with it?
This would also be excellent information for Watcom to put on their site. It would give them much more legitimacy.
as soon as I can compile and use a good 32bit dos extender with gcc, I will stop wasting my time with watcom. Until then, gcc is not the right tool for my job.
Yeah. That whole "competition" thing is totally overrated.
My Greasemonkey scripts for Digg &
I use the free symantec/digital mars c++ compiler also http://www.digitalmars.com/download/freecompiler.h tml
it's good to see alternatives to gcc compilers.
One question is what if you use these compilers in commercial software development.
Has anybody heard any news recently from Watcom/Sybase about the 370 versions of Waterloo C, WATFIV, WATBOL, Pascal, Basic etc?
What gcc needs is support from the hardware vendors themselves. If the hardware vendos all backed gcc, the would be doing their customers a huge favor giving them the flexibility to move between platforms with greater ease, and reducing build engineers to a single toolset.
Someone you trust is one of us.
How can this be offtopic? It mentions Watcom twice. That's twice more than most of the posts on this topic.
I think michael's aside should be moderated "-1 Offtopic". Or "Off-topic" to be grammatically correct.
I used Watcoms WX-REXX on OS/2 (light?)years ago. It was a great product. Now I am a Linux user, but this nearly brought tears to my eyes...!
Warp speed - I never really got there, but I sur tried!
Yet another company trying to use free software as a dumping ground for useless software. What does Watcom have to offer today? Which vision of the future they have that could offer something that gcc or something the like cannot?
I do not see anything they can offer. Even if they had, would it not be better to just release the source code under the GNU GPL and integrate any valuable part into gcc? Thus they could create a new Cygnus based on their gained gcc expertise. But we do not need yet another also-ran, GPL-incompatible, redundant confused-ideas licensed open-source piece software.
Perhaps some years ago this would have been great. Not it is too little, too late.
Leandro Guimarães Faria Corcete DUTRA
DA, DBA, SysAdmin, Data Modeller
GNU Project, Debian GNU/Lin
Gcc is good, open, and could use some work, so please think about helping out. My favorite is MinGW which is a really nice and decently maintained Win32 version of gcc and binutils. MinGW also distributes MSYS which is a bash shell and other gnu utilities that make a windows box capable of running a Linux configure script. This allows much easier porting of GNU applications to windows and vice versa. There are several GUI compilers based on MinGW too, see the web page FAQ. A nice GUI GCC based compiler for Win32 is Bloodshed Dev-C++, which I've used.
Cygwin is good too but I prefer MinGW (obviously).
So think about helping out, our tools will only get better if folks work on them.
"I don't know anything about concurrent
programming or C++. Also, I like to take
it in the ass..." - Rupert Pigott on comp.arch. 5/22/2002
Competition is the soul of slashdot. That's why they duplicate-post stories.
if you ever have to code a real time application chances are DOS is among the possible choices if you want to base it on x86 hardware. so watcom would be a good DOS compiler. it was the best back then in 1996, it should be now, as DOS tipped over prior to that and all other compiler development with it.
What killed them? Did they pull all their brains off C++ to work on PB? Was competition from MS too tough? Was their GUI builder (licensed from some 3rd party) too lame? Was the cost of implementing the C++ standard too high? (Watcom was late to offer STL -- they included their own (way different) libs instead.)
We were a couple of generations back on chips when Watcom pretty much stopped pushing their compiler technologies. I wonder how much they lose by not having optimizations targetting new hardware features.
You could use http://censorware.org/, or if you prefer, http://censorware.net/, which is not the hands of a dirty squatter.
(With apologies to Dr. Seuss)
Ever since the Eldred decision, I have boycotted Dr. Seuss Enterprises, who submitted an amicus brief in favor of the Bono Act.
gcc ... ignores some architectures completely.
Watcom C++ ignores ARM, MIPS, PowerPC, and SPARC completely because Watcom C++ is an x86 compiler.
Will I retire or break 10K?
I worked at companies that used Watcom for years. The reason that we chose to use it was it generated much smaller code than any of the alternatives. We always got good support from Watcom - we got to talk with the wngineers on the phone.
Now there aren't many commercial alternatives to MS in the PC C/C++ space. I think the only other PC C/C++ compilers are from Intel and Borland. Since the last (two?) major upgrade of MS C/C++ came from purchasing another companies compiler, I wonder how long the next upgrade will take?
Yet another company trying to use free software as a dumping ground for useless software.
/.'ed--but as long as they use a GPL-compatbile license, there's nothing stopping the GCC folks from pouring over OpenWalcom for anything useful.
Maybe you're not up to snuff on the philosiphy of code-reuse and what Free Software means.
If software and code is a commodity, and the value then becomes it configuration/customization, then every little bit of trash that can be opened is a Very Good Thing. If the company was proprietary their entire corporate life, but releases the soruce as GPL (or BSD) when they fold, this is a Good Act and should be Lauded and Welcomed and Thanked.
The darn site's
...they don't konw what open watcom 1.0 is, or know about computers for that matter.
It's been a long time since I've used the Watcom compiler, but it used to be the bomb. I use gcc exclusivly now, and sometimes pine for the day when a build was done in seconds instead of minutes. I'm betting it will be a difficult undertaking to incorprate the Watcom code, though.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
When was gcc at the leading edge? Compared to what?
So its the primary toolset for DOS work these days? If so I guess that is far and away from Sybase's meat and potatoes.
- I'm looking forward to someone benchmarking gcc vs watcom to see how they do.
Well, I'll save you the effort -- gcc will crush WATCOM C/C++ on pure C or C++. Bleeding edge performance is not what is being offered with the current WATCOM C/C++. But to tell the truth (as you indicate as well), gcc is not bleeding edge performance either.Fixing the compiler performance requires a look at the fundamental code generating mechanisms of the compiler itself. On this point, having a cleaner and more easily understandable architecture is more important that the current snap shot of its performance. And on this score, I think I am told WATCOM C/C++ is somewhat ahead of gcc.
It doesn't have the obnoxious GPL. Perhaps we can even get NetBSD to compile with Watcom C in the near future, so we can ditch the GNU mess entirely, except for those few small GNU utilities that are essential, like 'less'.
As the parent post said, it is GPL incompatible. You can view it at the OSI site.
While I'm not one to sniff a gift fish, it's disappointing to see yet another "open source" license that will relegate Open Watcom to abandonware.
Just wondering what they(watcom) are up to now.
IIRC: Watcom was purchased by Powersoft. Powersoft's main product was a front-end database tool called PowerBuilder. One of Watcom's products was a small database called Watcom SQL. Powersoft bought Watcom so that they could ship Watcom SQL along with Powerbuilder, so that Powerbuilder could run OOTB.
Oddly enough, Sybase bought Powersoft a few years later so that they could use Powerbuilder to compete against Oracle's front-end tools. This meant Sybase ended up with Watcom's assets, even though they were not particularly interested in them.
i knew it was ignorant and STILL found it funny
Seriously. Of course, micheal also uses windows 98 because it's 95 versions ahead of linux 3, and 85 versions ahead of OS X.
Do you even lift?
These aren't the 'roids you're looking for.
Incidentally, vectorization in Intel C/C++ is a joke. I put so many hints into my code (aligned variables, processed stuff in suitable sized chunks etc.) and still couldn't trigger the compiler to vectorize. It's much easier to insert SSE instructions yourself.
The Intel compiler has better error reporting than MSVC++. I use it when I don't understand why MSVC++ is barfing on my template code. This is more useful than it sounds!
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
True story: the company was originally named "Watcock". It was changed when some of the male engineers felt that name cast aspersions on their manhood. So you're not fair off the mark (well, in gender terms you're about as far off as you could be, but you know what I mean).
[The GCC team] should rename [GCC's -ffast-math optimization flag] -fviolate-ieee.
Or how about -fthis-is-a-game-not-scientific-research -fdont-give-two-poops-if-its-half-a-pixel-off ?
Will I retire or break 10K?
as soon as I can compile and use a good 32bit dos extender with gcc
As soon as now.
Will I retire or break 10K?
I suppose that writing in FORTRAN is marginally better than writing in C or Assembler. But... there really are better options: I base this on 20+ years of writing sucessful applications using a range of platforms and languages. (And I'm an EE orignally, have designed ICs, so I think I know a bit about technical applications).
I suppose that the continued proliferation of FORTRAN is a symptom of why the pace of significant new scientific discovery has dropped off tremendously in the last 20-30 years. No major medical breakthroughs -- we've made almost 0 progress in curing cancer, a little in curing heart disease. No major breakthroughs in physics that I can recall.
The only real advances have been in technology -- and technology industries don't use FORTRAN, to my knowledge.
I could not care less about anything called the OSS model, because that is not well defined
If this document doesn't precisely define open source, what is it lacking?
Will I retire or break 10K?
One thing I know is that their optimization routine rocks.
Well, optimization routines can be divided into two parts: One is architecture independent (which involves simplification of AST and stuff) and the other is architecture independent. IIRC, their architecture-independent optimization was really great. It can correctly detect redundant codes and simplify it.
I used to be an ASM programmer as I was a performance freak. When I compile my C/C++ program using Watcom, it almost always produced near optimized (i.e. the "gold-standard") asm code. I knew this when I dumped out the assembler code.
I knew that their arch-independent optimization is really good because when you add things such as calculation of busy expression (i.e. expression that you used over and over) and stuff, it correctly cache the calculation before hand. So, you will save a tremendous time, especially if you do it in a loop. The problem was (again, IIRC) that was not perfect and some of the expressions are left undetected. But, that's probably a bug.
IMHO, arch-independent optimization play a lot greater role than the arch-dependent one (ok, some of you may not agree with me). Things like peephole optimization is great, but is of limited usefulness once you apply the correct transformation of the AST and other internal structures.
This is also partly why Intel optimizing compiler is also great. I heard that some of the folks are doing partial evaluation on the code -- which can greatly help speeding up the result. The idea was: If you use a particular routine (like function) only with a handful of value range, it will automatically create a specialized and optimized function for you exploiting the nature of the input values. For example: You probably have seen the routine that calculates (-1)^n used in a routine that calculates x^y. The optimizing compiler thus should be able to generate: return (n && 1 == 0) ? 1 : -1; instead of the looping. This only involves some (expensive) static analyses computations. I have yet to see this in other compilers.
Therefore, this release is really really good thing. I hope that GNU compiler teams would pickup some of their good stuff.
--
Error 500: Internal sig error
Rise of the triad is already playable on Win32/Linux. And now its being ported to OpenGL.
http://www.icculus.org/rott/
If every closed software publisher that opens a product gets treated like this, you won't see many more.
Not really because no one really cares about anything micheal says anyway.
Sometimes I wonder if he actually enjoys looking like an idiot.... hmmm....
--
"What do you want me to do? Whack a guy? Off a guy? Whack off a guy? Cause I'm married."
Did you Google?
Let your fingers do the walking...
Got time? Spend some of it coding or testing
- Or is this a scam to try to give life to a dying patient?
No, it is not a scam. Sybase truly does not care what happens to WATCOM C/C++ (so long as it doesn't come back and bite them on the butt.)oh who cares gay distro like debian still compile everything optmized for a fucking 386 because there might be 1 or 2 left that arent actually floated down the fucking yangtze. so really optmizing for processor doesnt matter cuase the fucktards running the distro wont use it anyways. Even fucking people in god damn Ghana don't use fucking 386s. There is no fucking need to support the shit still. When a fucking broke ass african thinks the hardware is too shitty to use it's time to fucking stop supporting aiight??
to make a Managed C++ compiler for Linux
How many free C/C++ compilers do we need? It's nice that OS/2 has at least one free compiler suite, but who cares nowadays? Now a free, completely non-proprietary Java compiler might be nice (haven't check up on GCJ). Makes me wonder
why Microsoft doesn't one-up Sun and release large
portions of it's J++ product that it was supposedly planning to discontinue anyway.
GCC having competition would be very good. It would make gcc and watcom better. Auctually ReactOS might benifit from this. I'm doing the java thing and mostly database oriented stuff right now, but Its good to see stuff happening in the system programming world.
--- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
So if the same open source developers work on both Watcom compilers and GNU compilers, does this mean that the best features of both will be carried back and forth (kind of unknowingly, but more out of convenience) until they start looking alike? I would assume that in the future these products may grow together, and the same destiny may apply to other open source efforts that have commonalities.
Scam? No.
Useful? To most, probably not. To a few, possibly vital.
For enterprise-class software, this would make me more inclined to choose SyBase since it's less likely that I'd be hung out with no possibility of support.
It's looking like an asshole he enjoys. Looking like an idiot is just something he's good at.
it says explicitly only for personal / non-commercial use ... I don't think this could be an anlternative to GCC ...
No, the Zortech compiler was the first to offer a full 32 bit DOS extender with the compiler.
Add -fthis-program-has-no-bugs and you are done.
So turn it off in the debug builds, but provide a way to turn it on so that you can unit-test your floating-point code both with and without -ffast-math.
In the benchmarks that g4dget referred to, the Intel compiler was tested with the equivalent of -ffast-math turned on anyway, giving it an unfair advantage.
Will I retire or break 10K?
One is architecture independent [...] and the other is architecture independent.
:)
Wow. I wonder where they managed to fit in all the architecture dependant stuff!
Did your mama teach you that language son?
>>The version of gcc for dos: DJGPP had a DOS extender and 32-bit support but it was slower than Watcom by a large amount
Though that didn't stop ID software from using DJGPP to build Quake 1 way back in 96.
Huh?
That'd be 88, dipshit. Add in the fact that you can't spell Michael, and I think you're the one looking stupid.
Another Watcom innovation was their 32-bit Windows extender, which I believe they brought to market even before Microsoft's Win32s. This was circa 1992, with their Watcom C/C++ 386 9.0 compiler release. This extender let you write 32-bit, flat memory model code for Windows 3.1; and layered a 32-to-16-bit thunk layer over the Win16 API.
The developer of Watcom's 32-bit Windows extender, a University of Waterloo grad named Craig Eisler, was noticed by Microsoft and left Watcom for Microsoft around 1993. Along with Alex St. John and Eric Engstrom, Craig was the lead engineer on the first few generations of DirectX. This is described in the book, _Renegades of the Empire_ by Michael Drummond. Craig is now CEO of Action Engine, a startup in Redmond.
I have been waiting for this day for a very long time. I have been watching the OpenWatcom project since its first days and was very excited when a LONG time after it was announced, manuals were finally available online. But still no software. Well now, it's available and I'm really happy about it. As a matter of fact, my company actually paid big bucks for this compiler back in the day. Now that the source code has been released, I'm going to modify this compiler to make highly optimized binaries out of awk scripts. When that comes to pass, humanity's purpose in the universe will have been fulfilled. Until then, I need more beer. (I only had 9 tonight...)
return (n && 1 == 0) ? 1 : -1;
This is hardly optimized. A shorter equivalent would be return -1;
The world will end in 5 minutes. Please log out.
This is hardly optimized. A shorter equivalent would be return -1;
You probably should learn math before posting. Recall that (-1)^2 = 1.
Sybase itself was still using Watcom C++ 11.0c for SQL Anywhere Studio Windows builds until mid-2001.
I'm going to the casino. Don't gamble.
I think that he was pointing out the error in the "optimized" code - using logical and instead of bitwise...
This is completely wrong !
Watcom C/C++ 10.6 includes MFC development and still supports OS/2 and DOS (both 16bit and 32bit)
From the Watcom 10.6 Box
Licensed components from
MS Windows 3.1 SDK
MS Win32 SDK
MS MFC v3.2
MS MFC v2.52b
IBM OS/2 2.1 toolkit
IBM OS/2 1.3 toolkit
IBM SOM toolkit v2.0
Novell NLM SDK 4.0
...You are over-qualified and under-paid. If we give you a raise, we will break the cosmic balance of the universe.
Heh, there's even more than that:
:)
return (n && 1 == 0) ? 1 : -1;
Let's assume this actually reads n & 1, because that's obviously what was meant (this same argument would apply for && as well):
return (n & 1 == 0) ? 1 : -1;
Now, "==" needs to have an equality-expression on the left hand side. & does not count as an equality-expression, so a compiler is not allowed to parse the above as
return ( (n & 1) == 0 ) ? 1 : -1;
1, however, does count as an equality-expression, so in fact the compiler must interpret this as:
return ( n & (1 == 0) ) ? 1 : -1;
which is, of course:
return (n & 0) ? 1 : -1; ->
return 0 ? 1 : -1; ->
return -1;
This can be found in ISO/IEC 9899:1999 (C99), 6.5.9 and 6.5.10.
Of course, this isn't really important in the grand scheme of things, just thought I'd point it out...
In all reality, the way the standard specifies parsing for this is wrong, logically. K&R2, page 3: "Some of the operators have the wrong precedence". Check out this posting to see why.
thanks. I was hoping an expert on looking stupid could provide some useful advice.
Do you even lift?
These aren't the 'roids you're looking for.
You have to carve out a safe subset in which MSVC++ works and stick to it. You can even fake partial template specialization but it's a little ugly. (See Czarnecki's book "Generative Programming")
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
OK, I've seen this sooooo many times now. Dev-C++ is an IDE. Yes, Integrated Development Environment, which means it integrates tools like an editor, compiler, and debugger, and possibly a GUI design tool for that toolkit or the other. Dev-C++ is no exception, and it integrates the MinGW tools like you say. There is NO SUCH THING as a "GUI compiler", it's called and IDE and it has in general nothing to do with the compiler at all. KDevelop and Dev-C++ are different IDE's, but they use the same compiler and debugger.
In watford's opinion, open means "for personal use, where personal means you aren't employed by any commercial, non-commercial or government body"
I have trouble considering this open :(
-=DaveHowe=-
arch-independent optimization play a lot greater role than the arch-dependent one ......
Things like peephole optimization is great but is of limited usefulness once you apply the correct transformation of the AST and other internal structures
Arch dependent optimization is what plagues compilers in that there is no one solution to the phase ordering problem:.
Code selection provides register allocation issues which in turn provide code selection issues which in turn provide register allocation issues which in turn...
Oh, well, anyway, characterizing arch-dependent optimizations as simply peephole optimization opportunities seems a bit inaccurate.
Anyway, MSVC 6.0 compiles faster code than Intel Compiler 5.0 with /O3 optimization. If you just sort plain integers the Intel compiler is faster. But that's how it always is with people claiming their compilers are fast. Do simple examples and it works but the more complex the datastructures the slower it is. My other code that runs slower with the Intel compiler (by about 5-10%) is proprietary and includes things like fluid dynamics solvers and non-linear optimizers.
I'll admit I have sinned in one way against Intel. I did receive a phone call from an Intel engineer while on vacation a while back asking how it was going and I should have phoned back.
#include <windows.h>
//
// This is an abuse but it's convenient and works.
//
... %d %d %d\n,x[j[0]],x[j[1]],x[j[2]],x[j[n-3]],x[j[n-2]],x [j[n-1]]);
#include <stdio.h>
#include <algorithm>
ULONGLONG rdtsc() {
_asm rdtsc;
}
template<class T>
class array_lt {
T *array;
public:
array_lt(T *a) : array(a) { }
bool operator()(int a,int b) const {
return array[a]<array[b];
}
};
const int n = 10000000;
int x[n],j[n];
int main() {
for (int i = 0; i<n; ++i) {
j[i] = i;
x[i] = i*1234567;
}
volatile ULONGLONG t0 = rdtsc();
std::sort(j,j+n,array_lt<int>(x));
volatile ULONGLONG t1 = rdtsc();
printf(%d %d %d
printf(%I64d MCycles\n,(t1-t0)/1000000);
return 0;
}
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
Since you called Intel's vectorization a "joke", I was specifically interested in examples where the Intel compiler fails to vectorize loops.
...
Incidentally, your example contains one initialization loop that is nicely vectorized (so I rest my case)
=> icl sl.cpp
sl.cpp(28) : (col. 1) remark: LOOP WAS VECTORIZED.
I realize that this does not address your performance concerns (which we can discuss offline), but your example did not provide what was requested.
float *x = new float[100000];
for (int i = 0; i<100000; ++i) {
x[i] = 0;
}
return 0;
}
. .
. .
remark: loop was not vectorized: complex pointer expression
I thought that maybe there was some sort of variable aliasing situation going on, but the only other variables are i and x but they can happily go into registers making aliasing impossible. Am I going blind? Is there a typo in that code? Am I misisng something fundamental? Where is the 'complex pointer expression'?
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
Yet certain redundent things in compiled C code are simply (nearly) impossible to optimize away. One problem is aliasing, another is the need to reload global variables after calling a function (YOU know the puts(...) doesn't change img_width, but how can the compiler know? Unless you compile the source code for puts() together with your code, and turn on inter-file optimization, a tiring thing to do). Even if an extra load cost next to nothing, and the code isn't even time critical, code size has increased considerably with no return in speed.
So arch-independent optimizations can only do so much, and most modern compilers do this well enough, although some Intel CC features like IPO are also desirable. Arch-dependent things seem to be more important currently, and they are also the things that need constant development now, to keep pace with the introduction of new CPU generations.