Free Optimizing C++ Compiler from Microsoft
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. ;-)"
I just tried the following program:
.. anyone have any idea why ?
#include
main()
{
printf ("Hello World!\n");
}
And I got the output "Hello Suckers"
Funtage Factor: Purple
MS seems to be doing a lot of this lately. It's nowhere near as open as F/OSS solutions, but it's freeing up access to what's possible with Windows far more than previously.
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.
I develop software for Windows using MinGW and MSys. They provide everything I need for development, apart from the IDE, and this release from Microsoft doesn't include that. The Visual C++ compiler is good, but it isn't extrordinary. Why use it over the open source MinGW tools?
"tried to make Visual C++ more conformant to the ISO C++ standard"
Score one for the team! Microsoft conformed to something!
Karma: -2^0.5 . Mainly due to the imbibing of dihydrogen monoxide
Something here makes me doubtful... has anyone here examined tthat EULA already? Are there any paragraphs, which try to limit compiling and/or redistibuting GPL et. al. -licensed FOSS programs?
“Wait for Hurd if you want something real” –Linus
I personally have no love for MS, but I can't help seeing this as a good thing for people that have to support the legacy windows platform.
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.
The platform SDK which includes the command line compiler, linker and debugger has allways been a free download (hasn't it). Also, the .net SDK which includes all the languages, libraries, and compilers has also allways been a free download, this is what sharp develop uses.
So you write shit code that doesn't fit the standards ("liberal" code), your shitty compiler doesn't notice and compiles it anyway, and then it's Microsoft's fault when their standards conforming compiler won't compile it?
Go Forth?
But isn't it a C compiler?
What next, Visual PL/I?
Finally Microsoft makes a move I really agree with - between this, GIMP, and Blender anybody can make a decent game for Windows without spending a dime on tools. Very nice indeed.
Clippy: "It looks like you are trying to compile the gimp, did you know the GPL was written by Carl Marx, you don't want to be un-American do you? If you need help embracing capitalism, please ask me."
This looks like an aggressive effort to get people to start developing .NET apps since a major part of the free download includes support for .NET.
One has to assume MS is worried they're losing their development community to run a scheme like this.
Did Microsoft have a change of heart? Probably not, this is probably either a part of the anti-trust case against them in which they promised to make their software more interoperable, or it is to stave off anti-trust case part 2.
This is absolutely awesome.
.NET framework SDK did not have optimization command-line options enabled.
While there were legal methods to obtain optimizing compilers before (you could order media-cost-only Windows 2003 DDK cdrom and with that you'd have vc++ 7.0 compilers), but with this kit there's no longer any problems.
While VS.NET 7.1/2003 IDE is quite well developed, I'm sure projects such as eclipse or dev-c++ can benefit from this.
Also notice the important thing about this kit is it includes optimizing compilers, free command-line tools which were available for a while from the Microsoft
Before this, there were ways to obtain the optimizing version of vc++ compilers, by ordering a recent Windows 2003 DDK (it included vs.net 7.0 compilers, if I remember correctly). But now with this kit,
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.
Does it run on Linux?
Do I still want to write non-portable code in 2004? Apparently MSVC produces better code then gcc on Windows, but is that reason enough to use it rather than (e.g.) cygwin?
As a programmer, I insist on platforms that are 100% portable, so that my code can survive any OS and vendor changes. At the very least a commercial compiler must implement the standard language and libraries so that my code is portable.
Still, this is a good move for Microsoft and I welcome it.
Ceci n'est pas une signature
MS provides the Debugging Tools for Windows as a free download. GUI and command line debuggers are included.
I recently started doing development for linux and XP. Before that it was Sun (using CC) and linux.
CL (the vcc compiler) will let you get away with things that you shouldn't even be able to do (use of variables outside of there scope...), but you don't see it, because BCC didn't let you do it.
CC was the most liberal of them all, it would complile and run your email.
All of this said, strick is a good thing! I means that your code will work elsewhere (wide variety of elsewheres) with little work. Are you using -wall and -pedantic with gcc?
"I'll have a Guinness, no wait, make that a Coors Light" -Grad student I work with, who shall remain anonymous...
Major omission - no lib.exe for building .a files
.NET as without lib.exe it is pretty useless for larger projects.
Looks like this is just to encourage people to migrate to
Still, nice of them to release it
Asmo
As a university student I can get VS.NET2003 Pro with the optimizing compiler for free anyway, but this is a good thing. Please OSS people, don't shy away from it, but use it to compile all opensource apps for Windows for even better efficiency and smaller size helping the popularity of apps like Firefox and Thunderbird and whatever. This compiler really does kick ass.
I know I've used efence to find some nasty, tricksy segfault problems in game programs I've written. Microsoft's "security check" software doesn't really check for security; it checks for memory errors that could lead to security issues in the future, as well as other problems.
N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
Give an example of something you should be able to do (not something you could get away with elsewhere) that you can't do with vcc.
"I'll have a Guinness, no wait, make that a Coors Light" -Grad student I work with, who shall remain anonymous...
I was going to ask about "why get this if there's MinGW" but I see it's already been asked. I suspected someone would say Microsoft's compiler produces better code. Now where's the evidence? I'm looking for something like independent benchmarks or studying of generated code.
...I've been using MS VC and eVC to build code under Winblows and Wince for a long time. I use GNU make under Cygwin with a bunch of fancy default rules.
..the MS compiler is actually not that bad, and you're stuck with at least *SOME* MS tools if you want interoperatibility with other MS tools. MIDL interfaces (formerly ODL), for one.
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.
Do daemons dream of electric sleep()?
The reports are that this compiler produces better code than GCC (only for x86, of course). How hard would it be to use something like Wine to run it under Linux to compile Linux applications? Would that be a violation of the license?
Then we just need a version of Autoconf that builds a makefile for the compiler of your choice (gcc, icc, or mscc).
I compiled the Conformance sample that came with it - Once with G++ [3.3.1] -O2 and once with cl /O2 /EHsc and noticed the huge code size differences -
CL
==
text data bss dec hex filename
76892 8192 0 85084 14c5c conformance.exe
G++
==
text data bss dec hex filename
200508 1992 19088 221588 36194 a.exe
That's horrible code generation from G++. It can't be so bad.
Parry
Anyone had any luck running it in WINE?
This was a few years ago, with the then-latest version of Visual C++. I haven't used it since, but I've heard rumors that this particular scoping bug was eventually fixed. (What happed when you tried to compile this code back then is that it whined about there already being a variable called i.)
It would be interesting to hear how well Microsoft's compiler works with templates. GCC still has some way to go, but it's getting better with each version, and it's starting to get hard to come up with valid code that doesn't compile. I can't imagine that MS put a lot of effort into their C++ compiler it they want everyone to migrate to their own language (C#, that is), but then again I'm not an MS fanboy, so what do I know?
This signature is not in the public domain.
Give Linux away for free - they will come. Same principle applies.
.NET Framework SDK (even back to Version 1.0) it included a fully functional compiler that allowed you to compile C# applications under the CLR. I believe "cl.exe" was also included, the optimizing C/C++ compiler, with the SDK.
If you bothered to download the
Giving the compiler away for free MAKES sense. The only free, mature Windows compiler available is GNU's C/C++ compiler. Although I prefer open-source tools for development, I cannot dismiss Microsoft's compiler as being one of of the best optimizing compilers _there is_. Its only major caveat is the fact that it is designed for one platform only - Windows.
Ayup
I haven't used MS VC++ for a few years (fortunately), but does it still get the scope of loop variables wrong? So that this:
{
for(int i=0;i!=num;++i)
{
}
for(int i=0;i!=num;++i)
{
}
}
would complain about i being declared twice? That used to really annoy me.
How about making Anjuta (or other FOSS C/C++ IDE's, like KDevelop?) run on Windows on top of this compiler and provide Windows programmers with a free competition to VC++?
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.
The Mono group (http://www.go-mono.com) has been working on achieving platform independence with .NET and C#. Programming in C#, in many respects, has the feel that C++ is just getting ancient. C# constructs and methods, although not entirely mature, have learned from the best object oriented languages that we have right now.
.NET and Mono.
C# code for Microsoft's compiler (of an ECMA standard programming language), should run as advertised on a Mono CLR environment - once it becomes mature. Look at the many cross-platform (Windows/Linux) classes available for both
Since Mono is an open-source effort, Mono could be extended to MacOS X, FreeBSD, etc.
True portability is one source code - many OSes and architectures.
Ayup
I use a macro that handles this for me, with conditional directives to be empty on other platforms. Not that hard - really.
Much as i try to think of something bad about this, i really cant (now, dont tell me i am not trying too hard :). :)
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
Dont make a better sig, you insensitive clod!
Early on, Microsoft understood that the platform battle is won by those that win the hearts and minds of developers. DOS was a *terrible* environment, but developers built some cool applicaitons and the platform became a huge success. You have to look at this announcement in conjunciton with the Unix Services for Windows announcement.
VB and the VB tools captured a good chunk of corporate developers. I hate VB, but you coul design and build simple forms based applications that talk to a database pretty quickly and easily. Visual Studio provide an excellent intregrated IDE (no flames from Borland lovers) for many C++ developers. it simplified a lot of routine stuff, made finding funcitons easy, integrated the debugger and more. Lots of folks.
IBM recognized that it needs developers for Java to succeed and the purchase of Rational was aimed at getting the corporate developer that is on VB and VC++.
With this compiler and the USFW annoucement, you can now take the *nix stuff and port it pretty easily and for free to Windows. No more need to assemble tools, install Cygwin or the like. There used to be a barrier to getting *nix stuff to Windows. it is now gone. Microsoft will now have a platform, that is free, to allow free software developers to make their stuff available on Windows as native applications. And you cna then add Windows extensions if you want.
The unreliguous among us will grab this and move *nix stuff we've been missing or haven't had access to.
Microsoft has spent over a decade essentially supporting only ONE processor architecture, x86. The GNU project has to worry about applying optimization to a plethora of architectures, including the quirks associated with each particular implementation.
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.
Ayup
However I am not aware of a complier which compiles as many languages on as many different platforms. This IS the point of GCC. So I can use at work for a couple of different Motorola Micro-controllers, SH4 and general X86 (for fast prototyping). And I can use it at home for PPC, MIPS R5000 and AMD64. Think about that for a second! That's 16, 32 & 64 bit CPUs of both endian-nesses (sp?). I guess if I was selling GCC I would blather on about FORTRAN, ADA, and Java but I don't use these languages I use C and sometimes Objective C (Although I wouldn't say no to Embedded C++). That what makes GCC so wonderful.
I will say that I have used Borland's free command line tools and for the X86 platform I have no complaints.
Having said all of that I'd love to see some college student with too much time on his hands make a general comparison of GCC, Borland, and this MS offering. Just to satisfy our curiosity. However I think such a comparison would be incomplete without including the time and misery required to actually have the complier on your system. I think installing cygwin is comparable to the irritation of going through Borland's website at filling things out to get to the download!
Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity.
The objective of this is not too hard to discern - keep the geeks and individual developers on the Windows platform. It runs in the same vein as their licensing and releasing Services for UNIX - essentially an admission that CMD.EXE is not everyone's cup of tea as a command interpreter and that, to be frank, for proper scripting, it's actually pretty shit.
:)
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
I'm continually amazed at the number of folks that bash MS for not following standards and then ridicule them when they do try. I'm certainly not an MS evangelist (nor an apologist), but seriously, what do you expect them to do?
There has been some level of support for the Standard C++ Library (STL) since the 4.2 days. Granted it was broken and has been through 6.0. This is because they used an implementation written by PJ Plauger who worked for Plum Hall at the time. Plauger had a falling out with Plum Hall over the rights to said code. This is the legal battle that has caused problems since the 4.2 days. You can easily download the half dozen or so header file patches for this though. FYI - Plauger now has his own company "Dinkumware".
I have not used their latest compilers to know the current situation. Although there have always been standards compliance problems with MS compilers, at least they're getting better over time.
karma whoring, but anyway, here is the EULA:
END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE
MICROSOFT VISUAL C++ TOOLKIT 2003
IMPORTANT-READ CAREFULLY: This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation ("Microsoft") for the Microsoft software that accompanies this EULA, which includes computer software and may include associated media, printed materials including best practices, white papers, templates, "online" or electronic documentation, and Internet-based services ("Software"). An amendment or addendum to this EULA may accompany the Software. YOU AGREE TO BE BOUND BY THE TERMS OF THIS EULA BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE. IF YOU DO NOT AGREE, DO NOT INSTALL, COPY, OR USE THE SOFTWARE.
MICROSOFT Software LICENSE
1. GRANTS OF LICENSE. Microsoft grants you the rights described in this EULA provided that you comply with all terms and conditions of this EULA.
1.1 General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the Software (i) for your internal use; (ii) for designing, developing, testing and demonstrating your software product(s); and (iii) for evaluation of the Software.
1.2 Documentation. You may make and use an unlimited number of copies of any documentation, provided that such copies shall be used only for personal internal purposes and are not to be republished or distributed (either in hard copy or electronic form) beyond your premises except as otherwise specifically provided herein.
2. ADDITIONAL LICENSE RIGHTS -- REDISTRIBUTABLES. In addition to the rights granted in Section 1, certain portions of the Software, as described in this Section 2, are provided to you with additional license rights. These additional license rights are conditioned upon your compliance with the distribution requirements and license restrictions described in Section 3.
2.1 Sample Code. Microsoft grants you the right to use and modify the source code version of those portions of the Software identified as "Samples" in REDIST.TXT or elsewhere in the Software ("Sample Code") for the sole purposes of designing, developing, and testing your software product(s), and to reproduce and distribute the Sample Code along with any modifications thereof, in object and/or source code form. For applicable redistribution requirements for Sample Code, see Section 3.1 below.
2.2 Redistributable Code-General. Microsoft grants you a nonexclusive, royalty-free right to reproduce and distribute the object code form of any portion of the Software listed in REDIST.TXT ("Redistributable Code"). For general redistribution requirements for Redistributable Code, see Section 3.1, below.
3. LICENSE RESTRICTIONS -- DISTRIBUTION REQUIREMENTS. If you choose to exercise your rights under Section 2, any redistribution by you is subject to your compliance with the following terms.
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 product developed by you that adds significant and primary functionality to the Redistributables ("Licensee Software"); (ii) that the Redistributables only operate in conjunction with Microsoft Windows platforms; (iii) to distribute the Licensee Software containing the Redistributables 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; (iv) not to use Microsoft's name, logo, or trademarks to market the Licensee Software; (v) to display your own valid copyright notice which shall be sufficient to protect Microsoft's copyright in the Software; (vi) not to remov
Try not to let life get in the way of living.
Example: You create a storage class (my example was a self-redistributing binary tree). The template class Storage<T> has a subclass Storage<T>::Element that holds three Element pointers (parent, left child, right child) and one const <T> pointer.
Of course, the Element class has a constructor, a destructor, a copy constructor, and an assignment operator defined. (Copy constructor and assignment op may not be formally required, but my experience says it's a very good idea to define them in anything that holds pointers).
As in:This code will produce an error. VC++ does not handle functions in named classes inside templates that are not declared inline.
(I may have missed some syntactic detail - It's been a long time since I wrote C++; I write C# these days. But the above annoyed me to no end. It works fine with gcc, which on the other hand can't handle when the functions are implemented inline, which should also work)
Side note: I absolutely love Microsoft's dev tools. This particular example is the exception to me, not the rule.
A fair number of folks get into FOSS because they can't afford the dev tools. Intel releases a free C++ compiler that runs on Windows, but it also runs on Linux so there's a potential switching-over point there. Making their compiler free is a halfhearted attempt to stop this potential customer leak. It's the same reason why the copy protection on their dev tools is historically weak - in the long run they're better off having Visual Studio get pirated by _everyone_ if it keeps them from losing geeks and developers to competitors.
At college, I knew one student in the CS department who owned a legal copy of Visual Studio, and it had been purchased for him by a contract employer. All the other Windows kids pirated it; the only folks who used Dev-C++ and the like were primarily Linux and MacOS people.
Of course there is. You get pass by reference semantics by passing or returning pointers. It's not as clean as C++'s passing a reference, but that's just syntax, not semantics.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Has anyone tried to integrate the compiler into the Visual Studio 6 IDE? Is it even possible? Would there be any advantages compared to simply installing the recent Service Pack 6 for VS6?
Speaking of standards compliance...
there ISO
their ISO
it's not there fault.
it's not their fault.
I have quite successfully linked C++ libraries compiled with GCC, VC++, and the IntelCC compiler with no problems. It appears to be ok. Perhaps code that relies on internals of STL would fail, but at least pointers to STL objects actually port back and forth.
I agree that VC++ produces faster code than GCC. Don't really know how much, because we don't use GCC on Windows anymore because of this, except to make dependencies for the makefiles. Can't be too much today, as our GCC-compiled Linux versions seem to run at the same speed as the IntelCC compiled Windows version.
The IntelCC compiler produces code almost twice as fast as VC++6. I believe VC++7 is much better, however, but have not tested it.
I've got VS 7.1 standard... the non optimizing compiler. If I get this toolkit, can I essentially "upgrade" my compiler?
PT
You are not a unique and individual sig.
I wonder if it is possible to use the newer commandline compiler from within Visual Studio 6. From what I hear, the .NET IDE isn't so great for C/C++ work. And come on, a project file is now called a "solution" file?? That's just dumb.
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...
VC7 is head and shoulders above VC6 for standards compliance, including templates. Our company is switching mainly just to get better templates compliance. We do not always upgrade; we skipped VC5, stayed on VC4.2 until VC6.
I'm not a compliance expert (I'm more of a perl hack), but the people at the company that are into advanced C++ code like the new compiler very much.
Fscking CDs are bloody expensive. Look at AOL, the IT magazines, heck, even newspapers that sell for a few cents. All of them are bleeeeding money given those CDs away for free.
MS, with his zillions of money in the bank, can't affor to spend a few thousend making development tools available.
No! Those communist ideas should be brought down and burned like the trojan horse they surely are.
To give something for free! MS! Never!
IANAL but write like a drunk one.
echo 0123456789abI send a message$ >demo.com
debug demo.com
a
mov ah,09
mov dx,010c
int 21
mov ax,4c00
int 21
w
q
demo
Got time? Spend some of it coding or testing
What does it matter when the compiler was released?
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.
1.1 General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the Software (i) for your internal use; (ii) for designing, developing, testing and demonstrating your software product(s); and (iii) for evaluation of the Software.
As in, for demonstration only. If you're going to distribute binaries, don't compile them with this tool.
I [may] disapprove of what you say, but I will defend to the death your right to say it.
Microsoft has already release a .NET framework for MacOS X and FreeBSD: rotor. And yet, for some inexplicable reason, people still use C++. Maybe they're waiting for the Linux kernel to be compiled on Mono in ECMA-standard C#?
This is not new. The .Net framework free d/l includes V# and VB command line compilers. In fact, I think that Visual Studio uses those under the covers. If you need SQL, you can use free MSDE ... yes restrictions, but 2GB db is enough for some work.
> MS seems to be doing a lot of this lately.
Yes. And have you noticed that most of the free giveaways seem to be targetted at developers, rather than users?
I suspect that Microsoft is trying to attract back the many developers who have switched to Linux.
Developers like me.
Unfortunately for Microsoft, it won't work, because it's not about the money.
I didn't switch to Linux in order to get a free-as-in-beer platform.
I switched to Linux to get a free-as-in-freedom platform.
I got tired of Microsoft sabotaging my fvorite applications (e.g. AmiPro).
I got tired of Microsoft changing the rules, in order to force me to buy upgrades, or to make me lock myself in to Microsoft's new schemes (.Net and MS Internet protocols this time).
So I left Windows, and started developing for Linux. I don't even bother to port the finished product to Windows.
There are over 10 million Linux desktop users, and multiple tens of millions of Linux server users. That's a big enough market for me.
...Ken Thompson's version of the C compiler went! (-:
Got time? Spend some of it coding or testing
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.
Intel's C++ compiler is also free for non-commercial use. It even runs under Linux.
***
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.
I don't need a signature.
(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
Quidquid latine dictum sit, altum videtur
I suppose landfills full of cds are "free" as well.
In Soviet America the banks rob you!
"3. LICENSE RESTRICTIONS -- DISTRIBUTION REQUIREMENTS. If you choose to exercise your rights under Section 2, any redistribution by you is subject to your compliance with the following terms.
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.
All that we see or seem is but a dream within a dream.
Ask and ye shall receive:
Microsoft Debugging Tools for Windows
That toolkit is part of the (also free) Platform SDK, but you can install it separately. It includes NTSD (command-line debugger) and WinDBG (GUI debugger), and KD (the kernel debugger). NTSD and WinDBG sit on top of the same user-mode debugging engine, "dbgeng.dll". They both include really fantastic on-line help which can teach you a lot about debugging in Windows. That said, they are not for the faint-of-heart (the Visual Studio debugger is much more user-friendly). KD.exe uses the kernel-mode debugger built into every NT kernel by default. Of course, you need a second machine to use KD and a serial cable; when broken into the NT kernel debugger, the debuggee is not in control.
(Incidentally, is there a kernel-mode debugger available for Linux? Last time I checked, Linus opposed the concept very strongly, and Linux did not have one available. He called it a "crutch." Sorry, Linus. Kernel-mode device driver writers *like* their debuggers. I have to say that this could be one of several factors impeding device driver development on Linux.)
It looks like some GNU developer has already disassembled it and integrated some of the code into GCC.
I just went to compile vi, and an ASCII paper clip popped up onto my terminal:
"It looks like you're trying to compile EMACS. Would you like me to launch the EMACS wizard now. Because you are stupid, I will launch it anyway"
-- If you try to fail and succeed, which have you done? - Uli's moose
There is no IDE, just command-line tools. The "build manager" referred to by the grandparent is msbuild.exe, a command-line tool that speaks a (N)Ant-like XML syntax.
As I understand it, VS.NET 2003 will use the same syntax, so you should be able to build a VS.NET project using the free SDK.
Doesn't the full blown Microsoft Studio have a tool that lets you lay out GUIs with buttons and other widgets, and then generates the code with all the positioning and etc ?
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 ?
but at least pointers to STL objects actually port back and forth
This is inherently unsafe, and still relies on using the same implementation of the STL AND the compiler producing the same internal data structures.
STL objects [generally] do not use virtual functions, as they are not meant to be derived from. As a result when you call pVector->reserve() that compiler calls its own reserve() no matter where the pVector came from.
I'm not sure how this plays out in static linking, but if you're dynamically linking stuff this has even more dangers - each DLL may have it's own heap, and you can't allocate something on one heap and free it on another. This is one major advantage of COM's reference counting - the object frees itself to the proper heap.
Trees can't go dancing
So do them a big favor
Pretend dancing stinks!
If you're still using something less than Windows 2000, you should spend the $100 (not $207 that you lie about) to upgrade to at least 2000. It's been four years now--you don't still use a Linux kernel from four years ago, do you?
.NET Framework SDK is free.
Sometimes I wonder why there are so many stupid "BSOD" jokes (I haven't seen a BSOD in five years), then I see that a lot of people here still haven't gotten off the 9x line like most everyone else has. Which explains it.
The
Only on Slashdot does Microsoft giving away a free command-line compiler (which they've always done in the past along with the rest of the SDK) somehow mean "MS is worried they're losing their development community."
.NET apps"--.NET has been a free download since the very beginning.
Losing it to what? Windows is 95+ of the market out there. As pointed out before, this isn't some "aggressive effort to get people to start developing
Come on, guys, let's stay rational here.
OPTIONS THAT WERE IN VC6 BUT AREN'T IN VC7 cl.exe:NEW VC7 cl.exe OPTIONS:So as you see most of the differences are new switches for the VC.7 version of cl.exe. Those shouldn't cause any trouble, as VC6 just won't use them by default. The two options removed I don't think are very interesting to most poeple. Besides, the VC.7 cl.exe is happy to ignore them:So as another poster has said, it looks like it should just work if you put the new directories first in the MSVC6 bin/lib/include paths.
Cool! All the updates I care about for VC 6 without having to switch to a new IDE!
People also tend to perputually generate the stuff. So if someone was in the position to spend 400 bucks on a computer, although that money is now gone, chances are that they will eventually have another 400 bucks.
Really, though it all comes down to priorities.
Reminds of a time when I walked into a Bally shoe store. Extremely overpriced footware that makes VS.NET enterprise edition seem like a bargin, in some cases. After browsing for a few minutes a salesman walked over and asked if I was interested in anything. I chuckled and made an offhand remark about the products being nice but not being able to afford anything. He chuckled back and said "You can afford as many pairs of these shoes as you want." I gave him a puzzled look and he replied "But only if you want them."
It took me a second for what he said to sink in, but by god, he was right. If I wanted those shoes I'd have a pair. Maybe not that day, but a week or a month down the road, I'd have them. Just like I have the pretty PDA phone I can't afford, the car I can't afford, the laptop I can't afford, the shed full of badass power tools I can't afford, and everything else that I have that cost a LOT more than shoes.
PS. Before you make a 'yanks love credit cards' or a 'you must have your mom wrapped around your finger' comment consider the fact that I a) have not gotten a dime from my parents since I turned 18 and b) have ZERO debt, save my house, which I simply could not attain (in a reasonable timeframe) without using credit.
Heck, the CD I have is out of date and I have to go to the developer's tools page http://developer.apple.com/ to download the newest version anyway. Why bother giving me a CD? Just a pamphlet (nice and bio-degradeable and recycled paper if you could please, since I'm throwing it away anyway) giving me the URL?
Or a link from the OS? OH wait! There is one! Apple Menu, Mac OS X Software, Clink on "Developer" in the web site's menu.
Why were we talking about distributing CDs again? Developers will most likely be downloading the latest version of the tools anyway. (Have you not updated gcc? Visual C++?) Make the tools available, and they will code.
I am, and always will be, an idiot. Karma: Coma (mostly effected by
IIRC, Electric Fence detects heap buffer overflows (presumably using guard pages). MS has AppVerifier, which allows you to turn that on for arbitrary programs at runtime. It also has a bunch of other settings you can tweak, like causing the OS to report a different version. It's a great tool for testing obscure boundary cases.
The security checks metioned here are at code-gen time. They do things like insert cookies on the stack to detect stack buffer overflows.
So, no more need to install precompiled and tested binaries, you can now port the exact same code (where did you plan on getting it?) by hand yourself and find a whole new set of bugs. Yeah, brilliant. Oh, you say you weren't going to use the GNU code? Great, yet another weird variant of coreutils.
Installing Cygwin is hardly a chore. I click setup.exe, tell it what to get, and walk away.
If you don't like the restrictions that come with the POSIX-layer DLL, then install MinGW instead. Same tools, same source code, same GNU extensions that we're already used to, no cygwin1.dll.
You're either smoking crack or you haven't actually tried installing Cygwin in the last three years. I regularly run xterms under XP's own window manager, integrated clipboards, latest builds of just about everything. If you claim *nix stuff has been "missing," then you clearly haven't tried looking.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
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.
grey wolf
LET FORTRAN DIE!
grey wolf
LET FORTRAN DIE!
Ah but do you rememebr the 6502 processor? It had one single accumulator, a stack pointer and the X and Y reference registers. Rather slim. Yet elegant.
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.
When I was a kid, the only game we had to play was pong, and we spent a hundred dollars on the game, and played it every day, rather than going outside, AND WE LIKED IT!
When I was a kid, we programmed using punched cards, and when there was a bug in our program, we had to throw away the punch card, and start a new one, AND WE LIKED IT!
When I was a kid, we were so poor, that we could not afford chicken breasts, or even thighs and legs, so we had to settle for chicken wings and necks, AND WE LIKED IT!
When I was a kid, we had to use assembly language, and keep our code down to 640 bytes of memory and 2 4-bit registers, but we learned a hell of a lot more about computers than you, AND WE LIKED IT!
When I was a kid, we were lucky if our girlfriends wore deodarant, let alone shave their legs, if we were even lucky enough to have a girlfriend, but that didn't matter, because WE LIKED IT!
But not the optimizing one. They didn't offer a free developement toolkit suitable for the Free Software hobbiest or someone writing shareware programs that they expected to generate little money. Essentially, to begin writing code they had a barrier to entry ($200 or so) that made people use mingw, cygwin, or switch entirely to linux.
I am not sure: http://sourceforge.net/projects/wix
:)
Thats free from MS and... opensource and... hosted at Sourceforge!
Armageddon is coming, run!
Has anyone managed to apply this download to a Visual Studio .NET 2003 Standard installation, to get the benefits of an optimizing compiler?
.NET crap in Professional addition, I bought Standard edition. Now it seems MS is giving away the optimizing compiler. But how to enable its use from within Visual Studio? has anyone figured out a way to do this?
Standard edition disables the optimizing compiler. You have to pay for Professional edition to get the optimizer. Being cheap, and not needing all the
"The Internet is a sphere whose center is wherever there is intelligence." (Apologies to HDT.)