Help - Search - Members - Calendar
Full Version: Microsoft releases free optimizing C++ compiler
Hydrogenaudio Forums > Misc. > Off-Topic
rajas
Microsoft has released the Microsoft Visual C++ Toolkit 2003, which includes Microsoft C/C++ Optimizing Compiler and Linker, C Runtime Library and the C++ Standard Library, including the Standard Template Library, Microsoft .NET Framework Common Language Runtime and Sample code. You might want to examine the EULA as although Microsoft allows for distribution of object code, the Slashdot community seems wary.

Here is the relevant URL:
Microsoft Visual C++ Toolkit 2003
MuMart
Please use MINGW instead of this. MS are trying to
get people to use this to make porting apps to Linux
more difficult.
Latexxx
If you want to compile Windows programs (not copmmand line) using this you also need Platform SDK.
sony666
mhmm nice, but pretty useless without the Visual Studio GUI.
Latexxx
QUOTE(sony666 @ Apr 18 2004, 09:16 PM)
mhmm nice, but pretty useless without the Visual Studio GUI.

It is possible to get some IDE functionality using eMbedded Visual C++. Google for more information (nb some pages claim that you would also need STLPort but that isn't true according to my knowledge).

Edit: http://www.goth.net/~ejb/freevc.php
kwanbis
QUOTE(MuMart @ Apr 18 2004, 06:39 PM)
Please use MINGW instead of this. MS are trying to
get people to use this to make porting apps to Linux
more difficult.

agree ... you can even try OpenWatcom

Open Watcom is a joint effort between SciTech Software Inc, Sybase®, and the Open Source development community to maintain and enhance the Sybase Watcom C/C++ and Fortran compiler products. Plans for Open Watcom include porting the compiler to the Linux and FreeBSD platforms, as well as updating the compilers to support the latest C and C++ ANSI standards.
Dibrom
QUOTE(kwanbis @ Apr 18 2004, 11:45 AM)
QUOTE(MuMart @ Apr 18 2004, 06:39 PM)
Please use MINGW instead of this. MS are trying to
get people to use this to make porting apps to Linux
more difficult.

agree ... you can even try OpenWatcom

Open Watcom is a joint effort between SciTech Software Inc, Sybase®, and the Open Source development community to maintain and enhance the Sybase Watcom C/C++ and Fortran compiler products. Plans for Open Watcom include porting the compiler to the Linux and FreeBSD platforms, as well as updating the compilers to support the latest C and C++ ANSI standards.

What, exactly, would be the advantage of using this compiler currently?

- Is it production quality?
- Does it feature the same functionality as the other common compilers (including vectorization, etc.) or more?
- Is it as standards compliant or more?

It's nice that there's another option, but I'm curious as to why anyone should use it over the others.

From what you've said, and from what I've gathered from reading the page quickly, it sounds like it's very much a 'work in progress' or someone trying to play catch up. Other than the 'neat' factor (or for participating in development), why would someone want to work with this?
Dibrom
QUOTE(MuMart @ Apr 18 2004, 10:39 AM)
Please use MINGW instead of this. MS are trying to
get people to use this to make porting apps to Linux
more difficult.

Or maybe they're just trying to make it easier for people to compile programs for their software.
Surface1030
Why is everything that MS does seen as an attack on Linux?

Microsoft releases a compiler that will make peoples code run faster. It's an *obvious* attack on Linux! Why won't the government just shut them down so we don't have to worry about stuff like this?

You open source zealots should just grow up.
rjamorim
QUOTE(Surface1030 @ Apr 18 2004, 05:51 PM)
You open source zealots should just grow up.

They should.

Besides, you can create portable code no matter what compiler you use, you know?

Portability is more a developer responsability than a compiler responsability, or a compiler vendor responsability.
MuMart
QUOTE

Why is everything that MS does seen as an attack on Linux?

Microsoft releases a compiler that will make peoples code run faster. It's an *obvious* attack on Linux! Why won't the government just shut them down so we don't have to worry about stuff like this?


Microsoft are taking shareholder money and using it to make free software ?? If I was an MS shareholder I'd be pissed off. Please understand that microsoft are in the business of controlling standards. This is their attempt at controlling the C++ standard. This compiler is not compatible with other C++ compilers.

QUOTE
You open source zealots should just grow up.


If linux wasn't made by a bunch of "open source zealots" microsoft would have killed it by now.
rjamorim
QUOTE(MuMart @ Apr 18 2004, 06:11 PM)
Microsoft are taking shareholder money and using it to make free software ?? If I was an MS shareholder I'd be pissed off. Please understand that microsoft are in the business of controlling standards. This is their attempt at controlling the C++ standard. This compiler is not compatible with other C++ compilers.

Actually, it's pretty much compatible with Stroustrup's 3rd edition of the C++ specification. I have been told it's one of the most compatible compilers. The detail is that it also has non-compatible additions to the standard. But you are free to not to use them.

And yes, it's very much in Microsoft's interest to make the compiler free. It helps increase the amount of software titles available for Windows, and is maybe a good way to later incentivate people to move to Visual Studio.

None of these reasons have anythong to do with destroying Linux, although you open source zealots have this constant paranoia that every move made by Microsoft is a direct attack against you. You should really grow up and realize the universe isn't revolving around you, and Microsoft is far from being that desperate.

QUOTE
If linux wasn't made by a bunch of "open source zealots" microsoft would have killed it by now.


You give Microsoft too much credit. Another standard behaviour among GNU zealots.

Where is Artemis3 to add his insight to this thread?
askoff
QUOTE(MuMart @ Apr 18 2004, 01:11 PM)
Microsoft are taking shareholder money and using it to make free software ?? If I was an MS shareholder I'd be pissed off. Please understand that microsoft are in the business of controlling standards. This is their attempt at controlling the C++ standard. This compiler is not compatible with other C++ compilers.
QUOTE

You open source zealots should just grow up.

If linux wasn't made by a bunch of "open source zealots" microsoft would have killed it by now.

You aren't an MS shareholder, so what are you whining? Open source is based very much in people's hobby and education and it can't be killed just like that. The zealots are here now only making this kind of news so bad and ugly things.
Dibrom
QUOTE(MuMart @ Apr 18 2004, 01:11 PM)
QUOTE

Why is everything that MS does seen as an attack on Linux?

Microsoft releases a compiler that will make peoples code run faster. It's an *obvious* attack on Linux! Why won't the government just shut them down so we don't have to worry about stuff like this?


Microsoft are taking shareholder money and using it to make free software ?? If I was an MS shareholder I'd be pissed off.

All that would show is that you would be a shareholder that doesn't understand business economics very well, or who isn't able to see the "big picture."

And besides that, MS releasing a free compiler, and the [non-]effect (or positive effect) that will have on shareholders has nothing to do with Linux. And even if it did, Linux is a competitor to Microsoft, so even if what you say is true, it's good for the shareholders.

QUOTE
Please understand that microsoft are in the business of controlling standards. This is their attempt at controlling the C++ standard. This compiler is not compatible with other C++ compilers.


Microsoft is in the business of making money, not in giving handouts or helping the Linux people. It's called competition. Maybe they engage in unfair competition, but there is still an underlying reason why they compete, and it goes far beyond "wanting to control the standards."

And, out of curiosity, in what way is this compiler not compliant with other C++ compilers? I'm wondering if you can give specific examples of this, or if it's just something someone said on Slashdot. I know that it supports windows specific features, but I wouldn't go so far as to say that makes it 'not compatible.'

QUOTE
QUOTE

You open source zealots should just grow up.


If linux wasn't made by a bunch of "open source zealots" microsoft would have killed it by now.


So by this logic, does that mean that every other lasting competitor to Microsoft is also run by 'open source zealots'?
meff
AHHH.

Come on guys just drop it. These arguments go nowhere heh.

Microsoft is releasing this compiler so people can compile programs for their OS for free.. Any shareholder would understand that this is good for the OS, which does make them shitpiles of cash.

Linux still exists because the users of linux (me included) will not stand for it to get ran over because something is more popular or easier to use, and we strive to change that. Also, because of the opensource notion, and the free software movement.

These are two totally different playing fields and arguing over them get nowhere quick and start to turn into flamewars.

My opinions stated here are just that, my opinions..

Thanks wink.gif
MuMart
QUOTE
Actually, it's pretty much compatible with Stroustrup's 3rd edition of the C++ specification. I have been told it's one of the most compatible compilers. The detail is that it also has non-compatible additions to the standard. But you are free to not to use them.


Writing C++ using any compiler binds that code to that compiler to some extent. My advice is "please don't use it if you care about portability". Portable software is a competitive threat to Microsoft and they know it. They didn't get where they are today by being nice to people.

QUOTE
And yes, it's very much in Microsoft's interest to make the compiler free. It helps increase the amount of software titles available for Windows, and is maybe a good way to later incentivate people to move to Visual Studio.


Agreed.

QUOTE
None of these reasons have anythong to do with destroying Linux, although you open source zealots have this constant paranoia that every move made by Microsoft is a direct attack against you. You should really grow up and realize the universe isn't revolving around you, and Microsoft is far from being that desperate.

QUOTE

If linux wasn't made by a bunch of "open source zealots" microsoft would have killed it by now.


You give Microsoft too much credit. Another standard behaviour among GNU zealots.



Please note that the above is a textbook example of a "Windows Zealot" v "Linux Zealot"
thread. It seems anybody who points out that microsoft is acting competitively is treated this way.
rjamorim
QUOTE(MuMart @ Apr 18 2004, 06:36 PM)
Writing C++ using any compiler binds that code to that compiler to some extent. My advice is "please don't use it if you care about portability". Portable software is a competitive threat to Microsoft and they know it. They didn't get where they are today by being nice to people.

Absurd. Just stick to the standards (ANSI C, K&R, Stroustrup) and your code will compile almost anywhere.

QUOTE
Please note that the above is a textbook example of a "Windows Zealot" v "Linux Zealot" thread. It seems anybody who points out that microsoft is acting competitively is treated this way.


LOL. I'm no Windows zealot. I have Libranet installed in my HDD actually.

And you are being treated this way because your attitude is "zealotish" and paranoid, and your arguments are weak.
Dibrom
QUOTE(MuMart @ Apr 18 2004, 01:36 PM)
Please note that the above is a textbook example of a "Windows Zealot" v "Linux Zealot"
thread. It seems anybody who points out that microsoft is acting competitively is treated this way.

Heh.

Maybe you speak for yourself or for other people, but I certainly don't consider myself a "Windows Zealot," but I likewise don't consider myself a "Linux Zealot," (I've used both Windows and Linux, and BSD extensively.. and for the moment I actually use OS X). I think it's rather foolish to even bother with the zealotry part at all, but it seems some people have a very hard time using something like software without associating some sort of pseudo-religious convictions with it.

I however am tired of seeing all the handwaving on the topic, like the second post in this thread, which is why I decided to post some comments.

I for one am glad to know that if I need to download a free, highly functional compiler from Microsoft, that I can now do so. I'm certainly aware of portability issues with certain features, and I believe other people who would even care about that to begin with are also. Because of this, I don't need to be told how 'bad' this situation is and why I shouldn't use the compiler.
rjamorim
Also, one interesting fact:

Borland has been, for years, allowing free downloads of their C++ Compiler for Win32 (Developed using shareholder money! OMGOMGOMG). Why no Open Source zealot ever complained Borland was trying to control the C++ standard and render source code incompatible with GCC?
Bonzi
QUOTE(rjamorim @ Apr 18 2004, 01:39 PM)
Absurd.  Just stick to the standards (ANSI C, K&R, Stroustrup) and your code will compile almost anywhere.

I disagree there are many things that should be supported in the ms c++ compiler which are not. And these things are pretty big things for example C99 and inline assembler. For example I was playing around with x264 the other day which unfortunately has inline assembler which is most annoying in windows because I am forced to use either mingw or just pure c headbang.gif
MuMart
Right. OK, let's straighten this out. This thread has obviously got out of hand somewhat. I have made some dumb posts for which I apologise.

rjamorim:
QUOTE
QUOTE

Writing C++ using any compiler binds that code to that compiler to some extent. My advice is "please don't use it if you care about portability". Portable software is a competitive threat to Microsoft and they know it. They didn't get where they are today by being nice to people.

Absurd. Just stick to the standards (ANSI C, K&R, Stroustrup) and your code will compile almost anywhere.


If that's true then fair enough. I was under the impression that Stroustrup C++ left room for interpretation on a lot of fine points.

dibrom:
QUOTE
So by this logic, does that mean that every other lasting competitor to Microsoft is also run by 'open source zealots'?


I thought all other lasting competitors to microsoft are open source? I can't think of any examples that aren't.

askoff:
QUOTE
You aren't an MS shareholder, so what are you whining? Open source is based very much in people's hobby and education and it can't be killed just like that. The zealots are here now only making this kind of news so bad and ugly things.


I made one short, reasonable post. I even said "please"! An argument could have been made that I was wrong, but instead people chose to flame me for being an "open-source zealot". From there it turned bad and ugly. Sorry.

EDIT: Got mixed up with the replies, sorry
MuMart
QUOTE
Borland has been, for years, allowing free downloads of their C++ Compiler for Win32 (Developed using shareholder money! OMGOMGOMG). Why no Open Source zealot ever complained Borland was trying to control the C++ standard and render source code incompatible with GCC?


Borland are pretty much out of business these days. I wonder why?
rjamorim
QUOTE(MuMart @ Apr 18 2004, 07:07 PM)
Borland are pretty much out of business these days. I wonder why?

blink.gif

It's hopeless...
danchr
Does anyone know if this compiler supports more of C99? I once read a statement by a microsoft developer that they wouldn't add any feature just because is was in the standards. It's be nice if that changed. C99 really is much nicer than C89.

Anyway, this discussion really is quite silly. Microsoft released their compiler as freeware, but you are still free not to use it. If you don't like Microsoft, don't use their software.
VLSI
FWIW, this is from Conformance.doc (see code samples installed with the toolkit):

QUOTE
Conformance to ISO Standards for C++

Visual C++ .NET 2003 is the most standards-conforming release of Visual C++ ever.  Visual C++ was first launched in 1993, and the ISO C++ standard dates from 1997. Each release of Visual C++ since the standard has become more compliant, and this release achieves roughly 98% compliance. (No single industry accepted standardized test-suite exists to compare or measure C++ compiler implementations.  Three popular suites are Dinkumware, Perennial, and Plum Hall. Visual C++ .NET 2003 was tested against all three.)

This high level of compliance enables Visual C++ .NET 2003 to compile popular modern C++ libraries, including LOKI, BOOST, and BLITZ: a feat achieved by few, if any, other compilers.
niktheblak
QUOTE(danchr @ Apr 19 2004, 02:16 AM)
Does anyone know if this compiler supports more of C99?

No, it doesn't support C99 in it's entirety. Small C99 changes like C++ style comments, longer identifier names etc. have been around for ages, but not the large ones.

Microsoft and msdn.com are both totally silent about C99 -- as a very interested programmer I tried to search for C99 compliance documents, without any success. It seems very likely that MS is just going to ignore C99 completely. I guess it makes sense since MS is currently pushing C++ and .NET so much.

C99 will have a pretty grim future if only GCC cares to implement it sad.gif
QuantumKnot
I won't get myself involved in the Microsoft versus Linux debate since I think it's rather irrelevant, even though I'm a big supporter of open source. VCToolkit 2003 only runs on Windows so I don't see how this affects Linux. If Microsoft released a linux version of it, then it would certain raise an eyebrow. blink.gif

Anyway, I think the only use of VCToolkit 2003 is learning C++ and compiling simple non-MFC programs.

EDIT: Just downloaded and installed it. It doesn't include MFC.
VLSI
QUOTE(QuantumKnot @ Apr 18 2004, 06:48 PM)
Anyway, I think the only use of VCToolkit 2003 is learning C++ and compiling simple non-MFC programs.

You need to install the Platform SDK to build GUI apps. Yeah, it's a pretty bare-bones release. It only includes the compiler and linker. Other utilities, such as lib and nmake are missing ...an incentive for you to upgrade to Visual Studio.
danchr
QUOTE(niktheblak @ Apr 19 2004, 12:43 AM)
No, it doesn't support C99 in it's entirety. Small C99 changes like C++ style comments, longer identifier names etc. have been around for ages, but not the large ones.

Microsoft and msdn.com are both totally silent about C99 -- as a very interested programmer I tried to search for C99 compliance documents, without any success. It seems very likely that MS is just going to ignore C99 completely. I guess it makes sense since MS is currently pushing C++ and .NET so much.

C99 will have a pretty grim future if only GCC cares to implement it sad.gif

I believe this is the page I read about it the first time, but I also found another page which had a fairly good quote about MS and C99 smile.gif

AFAIK most other compilers at least have rudimentary support for C99, and it seems like even the Intel compiler has support for some of basic features.

What I miss, though, is "for (int i = 0; i < 10; i++);" and the C++ initialisers. They really make you're code much more readable smile.gif
niktheblak
From danchr's second link:

QUOTE
There are a couple of features of the ANSI/ISO standard (for instance the ‘export’ keyword as applied to template classes) that won’t be implemented because they are considered by Microsoft to be obscure and, at this stage, theoretical.


Ok, fine, but those "obscure" things still are parts of the standard and people do rely on the compilers to support this standard as fully as possible mad.gif

Well, it's not like it's the first time Microsoft bends standards as it sees fit.

So, the important features of C99 aren't probably going to get implented. Too bad, I was really looking forward to variable length arrays, as they would eliminate a whole category of forced malloc calls.
PoisonDan
QUOTE(MuMart @ Apr 19 2004, 12:07 AM)
Borland are pretty much out of business these days. I wonder why?

>SELECT clue FROM members WHERE member_name = 'MuMart';

CLUE
====
0
rjamorim
Cool! SQL clue database biggrin.gif
Jasper
QUOTE(niktheblak @ Apr 19 2004, 11:11 PM)
Ok, fine, but those "obscure" things still are parts of the standard and people do rely on the compliers to support this standard as fully as possible mad.gif

Well, I don't know whether partial specialization and other advanced template stuff is already supported in the new MS compiler (I haven't tested it yet), but if that's out of the way then export would be the only major feature I can think of that they don't support. And as far as I know there (unfortunately) is only one compiler that supports the export keyword anyhow (forgot which one, but you should be able to find something about it).
If they still haven't got support for those extremely useful template features, then I think you might have some reason to complain, although I wouldn't call it a reason not to use the compiler at all (as some people in this thread suggest). Each compiler has its oddities, and if you can't live with the restrictions the MS compiler puts on you, then simply don't use it.
niktheblak
QUOTE(Jasper @ Apr 20 2004, 01:01 PM)
And as far as I know there (unfortunately) is only one compiler that supports the export keyword anyhow (forgot which one, but you should be able to find something about it).

The Comeau C++ compiler supports the export keyword, but it's neither very common nor free.

QUOTE
Each compiler has its oddities, and if you can't live with the restrictions the MS compiler puts on you, then simply don't use it.


Actually I'm more bothered by Microsoft's "we're not going to implement something just because it's in the standard" attitude. Fine, I'm not going to stop pirating Microsoft products just because it's in the law tongue.gif

I pretty much use the VS.NET 2003 compiler for all of my C++ compiling needs, and besides that previous comment, I've stopped hating MS since Windows 2000 or something.

Offering the optimizing VS.NET 2003 C++ compiler for free is a very important landmark in the history of the Microsoft corporation. I can't say that I'm surprised though, since the .NET developing tools have been free for quite a while now, and those already included a C++ compiler without the C/C++ standard headers.

I don't understand why the stockholders would be angry at this since the actual compiler is commercially rather meaningless in the Visual Studio product line -- it's the VS IDE people are willing to pay money for, and given that it's a pretty damn good IDE, Microsoft has every right to charge money from it.

As a conclusion, I would like to say that Microsoft's conduct has been improving constantly, and has lately been a lot better than for example, Sun's. How's that Java standard coming up, Sun?

If Microsoft would ditch the diabolical product activation scheme, then I would be pretty much out of complaints smile.gif
danchr
QUOTE(Jasper @ Apr 20 2004, 11:01 AM)
Each compiler has its oddities, and if you can't live with the restrictions the MS compiler puts on you, then simply don't use it.

The entire point with standards is that many of these oddities are recognised as what they are: bugs. The ISO C99 standard has a lot of very useful features, which makes you're C compiler less "dumb". Using named struct and array initialisers, variable length arrays, inline functions, compound initialisers and declerations anywhere gives you a fairly powerful compile-time type checker and increased flexibility. Also, C99 mandates many functions previously only found in POSIX and friends, making it much easier to stick to the standard.

The reason for standards is that you can require and assume compliance to them. Microsoft has no interest in the increased interoperability that is a result of them.
Jasper
I agree it would be nice if MSVC supported C99, but that doesn't mean its C implementation is buggy, it just doesn't support C99. Microsoft's C implementation is reasonably good as far as I can tell. It's C++ implementation in VC6 and earlier wasn't so good, I'm still not clear on what the situation is with VC7, but judging from the config files for STLPort and Boost I'd say at least VC7.1 (?, _MSC_VER 1310) is quite a bit better than VC6 in this respect.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.