Free Optimizing C++ Compiler from Microsoft 953
FortranDragon writes "Microsoft has made the command line toolkit for Visual C++ available for a free download. You can use the toolkit to build applications and redistribute them if you want (though you should read the EULA for the details, as always). This is a nice boon for those that have to deal with cross-platform compatibility, especially since Microsoft has tried to make Visual C++ more conformant to the ISO C++ standard. Go forth and compile your favorite OSS or FS programs today. ;-)"
MS seems to be doing a lot of this lately... (Score:5, Interesting)
One of the reasons for the success of OSX is the general geek crowd's appreciation of it's *IX background, but without free dev tools that's nothing but another flavour of unix. Add the ability to dive into developing instantly and there's tens of thousands more developers working for the company.
Not needed (Score:4, Interesting)
My experience with VC++ (Score:1, Interesting)
Borland's Compiler is much more liberal about not only the syntax it allows, but what code works.. It takes a lot more effort to get things to work in VC++ (whereas they worked fine in BCC and GCC) and we've had lots of trouble stemming from this.
Microsoft can keep their compiler as far as I'm concerned.. although it (usually) comes with a nice IDE and Debugger that I quite like, it's just too bad those remain non-free.
Anyone know where to get a free visual debugger for Win32?
Microsoft offers interoperatibility? (Score:3, Interesting)
This is a Good Thing(TM) (Score:4, Interesting)
I recently did some reasearch in AI, and one of the things I did was port an existing simulation written by a former student at my university from a VB/MS Powerpoint front end with BC++ core, to an OpenGL/wxWindows (now wxWidgets) frontend with ISO C++ core.
To establish a baseline I had to make comparisons on the Win32 platfrom. What really amazed me was the difference in efficiency and memory footprint between the VC++.NET 2003 compiler and gcc 3.3.
Although gcc is an excellent compiler, I don't think anyone can argue that MS has the inside track on optimizing Win32 apps.
Awesome (Score:4, Interesting)
crack is free first time (Score:4, Interesting)
One has to assume MS is worried they're losing their development community to run a scheme like this.
Microsoft Had A Change of Heart? No. (Score:3, Interesting)
EULA? (Score:5, Interesting)
From the EULA.... Oh wait, I'd have to waste half an hour downloading the compiler to read it. I'm sure there's an evil clause in there. Best thing I could find relating to VS.net runtimes was this old gem:
Use at your own discretion.
Nice move (Score:2, Interesting)
I suppose Electric Fence and Valgrind don't count (Score:2, Interesting)
can't believe I am doing this, but... (Score:3, Interesting)
Suits me just fine.. (Score:5, Interesting)
Having this compiler released means that
a) I don't have to install that confusing GUI
b) I don't have to cough up the money to upgrade (Currently running VC 5.0)
I write library code under UNIX in C, debug it in a sane environment (100% GNU, except for Xemacs) and then port it to Windows (generally pretty trivial -- I port by making Windows look like POSIX, so the UNIX codebase stays basically virgin). Run it through MIDL to get a type library, and all of a sudden your stupid VB developers developing one-off, simple GUIs have access to all kinds of well-debugged code that was originally developed on a sane platform.
As long as your code only touches files or sockets, it will run okay under MS VC.
Port to Linux (Score:3, Interesting)
Then we just need a version of Autoconf that builds a makefile for the compiler of your choice (gcc, icc, or mscc).
Code Size! (Score:3, Interesting)
I wonder (Score:2, Interesting)
Port Anjuta on top of this? (Score:4, Interesting)
This way - they get to learn to use an IDE which they can also use on Linux, MS's income might get hurt because people don't HAVE to by VC++ to develop for Windows with MS's optimizing compiler (which is excellent, you can't say it isn't).
Just take this as an advantage for the FOSS community and do something with it, instead of just bitching all day.
Finally something good from Microsoft! (Score:2, Interesting)
I guess lots of editors are going to come up pretty soon that use this compiler to do the actual compiling. That can only be a good thing
Optimizing beyond Win32... (Score:5, Interesting)
Not Microsoft - it gets to focus on how to produce the most amount of work out of a processor of at least 80486 grade instructions. How easy is that? They get to throw a hundred developers to extract every bit of performance possible out of one processor. Every now and then make a modification to support a new supplemental instruction set (MMX, 3dnow!, SSE, etc.)
If you read their optimization whitepapers, you will notice that much of their optimization is done at the math level - nothing Win32 specific. Also, their memory optimization, loop unrolling, inlining, etc. is considered top notch by many software developers.
Motive (Score:5, Interesting)
I'm not quite sure where they'll go next. They may be following Apple's lead, who have, with Mac OS X, managed to capture an extremely sizeable proportion of the more moneyed developer market by taking advantage of the UNIX foundation and integrating it nicely. It may be that the next thing we'll see is a freebie X11 client.
These kind of things start to make Windows an interesting platform - a closed and, possibly, insecure and buggy base but with some interesting and certainly useful FOSS bolt-ons to make it an extremely compatible platform - imagine having both the traditional Win32 and FOSS software libraries available with little to no portage required! It's a perfect situation for Microsoft - keep the users on Windows (DRMed up and whatever), but appease those who are tempted to switch to Linux by building the best bits right into their current platform.
It's interesting, if nothing else...
iqu
Visual Studio 6 integration? (Score:2, Interesting)
VS 7.1 Standard upgrade? (Score:2, Interesting)
PT
Using new compiler with Visual Studio 6? (Score:4, Interesting)
On the other hand, I would really like to have the better standards compliance of the newer compiler.
The Intel compiler can be used as a drop in replacement for the VC6 compiler, so maybe it's possible to drop in this one somehow. Anyone tried this? Maybe it's as easy as just putting the new compiler tools first in the VC6 bin/include/lib paths.
Hmm. I think I'm going to try this out...
Re:can't believe I am doing this, but... (Score:3, Interesting)
What a silly thing to say. Programming languages evolve, and always have. In the mid-90s, C was fairly stable (having been around for eons), C++ was beginning to mature but had no standard, Java was barely usable, Visual Basic was some funky new toy this company called Microsoft were playing with, most of the successful scripting languages we have today were barely a glint in their creators' eyes, functional languages hadn't worked out how to deal with that slight problem that real programs need side effects, and academics thought Pascal was a cool teaching language. (How many of these things are still true today is left as an exercise for the reader, but clearly it's not all of them.)
If you really expect to work in this industry and use tools from around a decade ago but still keep up with the current generation, you have a lot more to learn than how to do pass by reference in C.
No assembler? (Score:4, Interesting)
debug demo.com
a
mov ah,09
mov dx,010c
int 21
mov ax,4c00
int 21
w
q
demo
8 years ago gcc had severe problems as well (Score:3, Interesting)
Eight years ago gcc had problems with C++. I recall it having internal errors and aborting when trying to compile code with exception handling. The same code worked quite well MS VC++ and I believe Metrowerks C++. This and your complaints may be interesting trivia but they are pretty irrelevant today.
Re:Yes, but...Linux distro from Intel compiler? (Score:1, Interesting)
And that the linux version of the Intel is freely available. Would love to see benchmarks on a Linux distro compiled with the Intel compiler, maybe gentoo to easily do more than just the kernel.
Re:no! (Score:3, Interesting)
Re:no! (Score:3, Interesting)
Section 4 is a standard clause - it's designed so that they keep all rights not given to you in the EULA, rather than you having all the rights not explicitly excluded in the EULA.
Does that mean: NO GPL-style Licenses??? (Score:4, Interesting)
***
3.2 If you use the Redistributables, then in addition to your compliance with the applicable distribution requirements described for the Redistributables, the following also applies. Your license rights to the Redistributables are conditioned upon your not (a) creating derivative works of the Redistributables in any manner that would cause the Redistributables in whole or in part to become subject to any of the terms of an Excluded License; and (b) distributing the Redistributables (or derivative works thereof) in any manner that would cause the Redistributables to become subject to any of the terms of an Excluded License. An "Excluded License" is any license which requires as a condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software (x) be disclosed or distributed in source code form; (y) be licensed for the purpose of making derivative works; or (z) be redistributable at no charge.
****Does "Excluded License" mean GPL? A type of license that requires you to include the source code?
If this is correct, you can't use it to compile most OS programs...
You're also aware that you may not use the complier to produce anything for non-windows platforms... but that yould be difficult anymway.
Re:Motive (Score:4, Interesting)
Sounds like a dig at GPL really deep (Score:3, Interesting)
(b) distributing the Redistributables (or derivative works thereof) in any manner that would cause the Redistributables to become subject to any of the terms of an Excluded License. An "Excluded License" is any license which requires as a condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software (x) be disclosed or distributed in source code form; (y) be licensed for the purpose of making derivative works; or (z) be redistributable at no charge
Ok , if they are not targetting GPL'd code here , what are they targetting ... ?.
GPL says ... provide source, license covers derivative works and should be redistributable under same license by others... damn !
I would personally like Eben Moglen's comments on the license ... but there seems to be no way this affects FSF directly .. so unlikely
The Trojan Horse (Score:3, Interesting)
3.1 If you are authorized and choose to redistribute Sample Code or Redistributable Code (collectively, the "Redistributables") as described in Section 2, you agree: (i) except as otherwise noted in Section 2.1 (Sample Code) to distribute the Redistributables only in object code form and in conjunction with and as a part of a software application..."
So if you distribute anything compiled with this compiler you are not allowed to distribute the source code along with it.
"You also agree not to permit further distribution of the Redistributables by your end users except you may permit further redistribution of the Redistributables by your distributors to your end-user customers if your distributors only distribute the Redistributables in conjunction with..."
Good grief, too many "distributes" in that sentence. I think they just said that your end users can't redistribute any software that you compiled with this compiler.
"3.2 If you use the Redistributables, then in addition to your compliance with the applicable distribution requirements described for the Redistributables, the following also applies. Your license rights to the Redistributables are conditioned upon your not (a) creating derivative works of the Redistributables in any manner that would cause the Redistributables in whole or in part to become subject to any of the terms of an Excluded License; and (b) distributing the Redistributables (or derivative works thereof) in any manner that would cause the Redistributables to become subject to any of the terms of an Excluded License. An "Excluded License" is any license which requires as a condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software (x) be disclosed or distributed in source code form; (y) be licensed for the purpose of making derivative works; or (z) be redistributable at no charge."
x, y, and z sound an awful lot like the terms of the GPL to me.
So in my non-lawyer understanding of this, attempting to compile GPLed source code on this beast would be in violation of the EULA, the GPL, maybe both.
Re:No assembler? (Score:5, Interesting)
Young programmers today don't realize how spoilt they are. Back in the day we all had our copy of the Intel386 assembler document, and a heavily modified version of Abrash's Zen Timer. Have you ever seem a man shuffle assembler instructions by hand to alleviate register contention, or deliberately NOT'ing AX and reversing the following branch to lull the Pentium into correctly predicting the jump, wasting one cycle but saving 4-7 (depending on whether the code following the branch accessed RAM or not, since the prefetch would have been invalidated).
For that matter, do you even remember when we used fancy tricks to either cope with the 64kb code segment limit, or trounce all over it. I hate to say it, but I miss those days, because back then it took more than an optimizing compiler and a few www tutorials for someone to be called a programmer. You actually had to know at least a little bit what was going on under the hood. It wasn't about compilers and libraries and distributed object frameworks, it was about making a limited machine do limitless things.
Re:What about headers and libraries? (Score:1, Interesting)
Re:The Trojan Horse (Score:2, Interesting)
Re:No lib.exe (Score:3, Interesting)
Yep. Dumpbin.exe works the same way. It just invokes link.exe /dump. The weird part is, neither of those options are specified when you do link /?. You have to know about those commands to get command-line help from them!
What about building GUIs ? (Score:3, Interesting)
It seems to me that this might be one piece of a development environment still not available. I know tools like that are available for wxWindows, but what about for using Microsoft's native widget set ?
Re:No assembler? (Score:3, Interesting)
I personally though, did write a fire program that fit into 220 bytes, and I've worked on the TI-86, which was crazy amounts of assembly.
You think x86 is register starved? Try only having one arithmatic register. *Shudder* well, still not as bad as the HC11, where you had really just 2 registers period.
EULA section 3 (Score:5, Interesting)
i'm personally having a bit of trouble understanding section 3 of the EULA.
section 3.1 requires that software made with this compiler be distributed under (and i quote) "pursuant to an end user license agreement (which may be "break-the-seal", "click-wrap" or signed), with terms no less protective than those contained in this EULA" (emphasis mine)
section 3.2 is less clear. part (b) requires that the "Redistributables" (which, by that, I assume means the standard library and the API libraries) must not be distributed "in any manner that would cause the Redistributables to become subject to any of the terms of an Excluded License." it then defines "Excluded License" with a description that sounds suspiciously like the GPL and related licenses. (i.e., no Open Source licensing.)
section 3.1(ii) is an odd requirement: "(ii) that the Redistributables only operate in conjunction with Microsoft Windows platforms;" it sounds to me that it is explicitly excluding ReactOS and Winelib. (please correct me. i want to be wrong here.)
under those restrictions, doesn't this unduly limit us as programmers? shouldn't we be the ones who decide how our software is distributed? Microsoft is requiring us to guard our code as closely as they guard theirs. isn't this a bit extreme?
again, someone please correct me where i'm wrong. i want to be wrong.
6502 (Score:2, Interesting)
A friend of mine and I were able to implement a Huffman encoder and decoder in 680 bytes. Yes, bytes not kilobytes. It was probably the tightest program I have even made.
The ultimate 6502 program was probably the one made by the Woz to calculate e to the full accuracy afforded by your RAM, using all the tricks in the book.
Re:Weird Output (Score:2, Interesting)
For undefined behaviour, the compiler is quite entitled to change your output, or do anything.
Re:Weird Output (Score:4, Interesting)
Re:MS seems to be doing a lot of this lately... (Score:3, Interesting)
Why? Are you afraid of DirectX too?
I'm sure it's possible to write apps that do bad things using VS.NET, but you can make just as many with non-.NET technologies.
Maybe you are thinking of the original world-assimilating plan for
if a biz client is running winXP, I refuse to work on it.
This is just silly. XP is the best desktop OS that MS has released to market. Turn off themes, turn off the new logon interface, and it's everything that 2k was but better.
That's not to say that it's the best OS on the planet, but it's certainly far superior to 2k, 9x, or NT4.
Re:Does that mean: NO GPL-style Licenses??? (Score:2, Interesting)
Re:MS seems to be doing a lot of this lately... (Score:3, Interesting)
It's the .net runtime framework i'm in morbid fear of.
So are you scared of glibc? libc? the MS c++ stdlibraries? MFC classes? Because they're the same thing buddy! I think you don't understand what .net is..
And yes, I do give MCSE's a bad name; I've run slackware since version 1.2 ('93-'94?), and if a biz client is running winXP, I refuse to work on it.
Woopie, good for you. I've run FreeBSD for 7 years and RedHat since version 4, if you want to play a pissing contest, we're all dorks here on slashdot :-p And as for refusing to run XP? THat's honestly your loss-XP is far and away my favorite MS OS I've ever run. My uptime is 19 days as of right now, if you were wondering.
I resent the "giving pagans a bad name" statement, though.
Well if all pagan libertarians are happy with being paranoid anti-MS zealots, then I guess I complimented them.
http://www.penny-arcade.com/view.php3?date=2002-07 -22&res=l [penny-arcade.com]
Re:MS seems to be doing a lot of this lately... (Score:2, Interesting)
anyone who thinks WinXP is the best MS/OS has serious reality issues.
Win2k. All the power, non of the crap.
Re:Nothing new - This has been available for years (Score:2, Interesting)
Re:EULA section 3 (Score:3, Interesting)
Using the optimizing compiler in Visual Studio? (Score:2, Interesting)
Standard edition disables the optimizing compiler. You have to pay for Professional edition to get the optimizer. Being cheap, and not needing all the