Slashdot Mirror


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. ;-)"

187 of 953 comments (clear)

  1. Weird Output by naden · · Score: 5, Funny

    I just tried the following program:

    #include

    main()
    {
    printf ("Hello World!\n");
    }

    And I got the output "Hello Suckers" .. anyone have any idea why ?

    --
    Funtage Factor: Purple
    1. Re:Weird Output by Anonymous Coward · · Score: 2, Funny
      Blame Slashcode for removing
      <stdio.h>
    2. Re:Weird Output by Borg453b · · Score: 2, Insightful

      Never mind the troll. I thought your "suckers" joke was funny, and so did my bro when I told him about it

      --

      - Mad, ingenous - they've both left you puzzled -
    3. Re:Weird Output by KarmaMB84 · · Score: 2, Funny

      Does MS's compiler no longer require a return type for main()?

    4. Re:Weird Output by ion_ · · Score: 5, Funny

      And I got the output "Hello Suckers" .. anyone have any idea why ?

      I tried it as well, the bug exists indeed. The \n really was missing from the output.

    5. Re:Weird Output by Gabrill · · Score: 3, Insightful

      You guys are evil, and I like it. It's perfect justice to hit M$ with a Slashdot trying to download a tool that represents one the greatest advantages of open source and Linux (at least a little): the native compiler.

      --
      Always going forward, 'cause we can't find reverse.
    6. Re:Weird Output by scotch · · Score: 2, Informative

      Not for standard compliant C++, bucko.

      --
      XML causes global warming.
    7. Re:Weird Output by Anonymous Coward · · Score: 4, Funny
      unless MS's compiler is different than gcc

      No; they're actually just the same compiler, packaged under different names and under different licenses.

    8. Re:Weird Output by tesmako · · Score: 2, Informative

      Actually implicit int return type is no longer legal in C99 so a good compiler should at least warn about it by now imho.

    9. Re:Weird Output by The+Snowman · · Score: 3, Informative

      With MS's latest C++ compiler (and with newer Os's), you need "\r\n" to make a new line. This drove me nuts when I first started doing it. Now, it's not so bad.

      That is weird, I do not have this problem. The I/O layer should translate newlines for you. All I ever use in Windows programs (console and GUI) is '\n' and it ouputs "\r\n" as well as reversing it on input. This is in both MinGW and Visual C++

      --
      24 beers in a case, 24 hours in a day. Coincidence? I think not!
    10. Re:Weird Output by treke · · Score: 2, Informative

      The header file part was eaten by /. since it looks like an html tag. You need to use the html entities for the greater and less than signs.

    11. Re:Weird Output by shrykk · · Score: 2, Interesting

      Beacuse you can rely on implicit in return from main, or no return statement, but not both.

      For undefined behaviour, the compiler is quite entitled to change your output, or do anything.

      --
      #define struct union /* Reduce memory usage */
    12. Re:Weird Output by exp(pi*sqrt(163)) · · Score: 3, Interesting

      You may mock! years ago Watcom had a bug in their C compiler that somehow confused the size of a char with the size of an int. This meant I could write a piece of code, apparently to print out a string one character at a time, but instead printed every fourth character instead. I sent them a bug report including some code that would, in the absence of this bug, print the message "fortune coookie". Note, the triple 'o' isn't a spelling error. Think about it!

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    13. Re:Weird Output by ElliotLee · · Score: 2, Funny
      The header file part was eaten by /. since it looks like an html tag.

      /. is too hungry when it comes to eating html tags..

    14. Re:Weird Output by Anonymous Coward · · Score: 4, Informative

      I'm fairly sure this behavior is required by the C/C++ standard. The key is to open streams in ASCII mode, rather than binary mode. Because C/C++ are designed to be portable, the standard I/O library is required to convert the line endings (but not in binary mode). Unix's binary mode is equal to its ASCII mode (since it uses \n natively).

      If the standard I/O library didn't understand line endings, then functions like fgets() could never work, and working with strings (where you expect to be able to match against \n) would be much harder.

      Networking is different, since it uses raw I/O, and doesn't pass through stdio's translation layer. Also, you usually want the binary data on the network. :) The Internet mainly uses \r\n as the line ending (although this made sense in the past, why they continue to stick with it in new protocols is beyond me, besides maybe the ability to easily telnet in and type in raw protocol commands by hand).

    15. Re:Weird Output by CabanaBoy · · Score: 4, Informative
      When you fopen() a file in binary ("rb", etc.) mode, you do have to take that into account. However, when you open in text mode ("r", "w", etc.) the stdlib does linefeed conversion for you.

      Here's an excruciatingly detailed explaination.

      Note that fseek() with SEEK_CUR will almost always fail in text mode, since the number of bytes read may vary from the current offset in the file due to the conversion. Recording the current offset with ftell() followed by an fseek() with SEEK_SET will clear that right up.

      Crazy but true. This has corrupted my data more than once. Here's an excruciatingly detailed explaination.

  2. MS seems to be doing a lot of this lately... by Amiga+Lover · · Score: 5, Interesting

    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.

    1. Re:MS seems to be doing a lot of this lately... by paganizer · · Score: 3, Troll

      The page seems to indicate that the .net runtime might be installed on your machine if you execute the download; can anyone who has done it confirm this for me? I don't want to have to drive a wooden stake through my CPU.
      I'm a MCSE, but I would never purposfully allow .net in my house. it activates all my tin foil hat's little buzzers and lights.

      --
      Why, yes, I AM a Pagan Libertarian.
    2. Re:MS seems to be doing a lot of this lately... by Anonymous Coward · · Score: 5, Informative

      just to clarify this Apple's dev tools ARE included, just NOT installed by DEFAULT.

      EVERY new machine SHOULD come with a separate developer's CD just as every boxed version of OSX should. The end user just has to apply some elbow grease in a) noticing this, and b) bothering to install it.

      Also in the unlikely event that the developer CD is not present or there is an upgrade it is ALWAYS available(even to free online developer members) as a download. Hell even the old classic dev toolset(name escapes me at the moment) has been available free since, what?, 1994/5 or so?

      The only commercial environments are things like Codewarrior(Metrowerks), Absoft FORTRAN, RealBASIC, etc. Codewarrior MIGHT be worth it if you are trying to make money as their compilers are proprietary and USUALLY optimize much better than gcc. (I don't think that anyone has done a recent set of benchmarks of Apple's latest improvements of gcc v. current Metrowerks compiler though...) ...and now that I'm thinking of it most OSes of recent years, free AND proprietary seem to come with some sort of gcc based plus IDE dev tools any more anyways, e.g. BeOS, *Linux, *BSD, OSX, MacOS 7.5-9.x etc. On top of this didn't M$ used to have pretty decent pricing(surprisingly) for VC++/dev studio only anyways? (It's been a while since I've bothered to check.)

    3. Re:MS seems to be doing a lot of this lately... by Artega+VH · · Score: 2, Informative

      For OSX dev tools come free on the software update cds.

      xcode, interface builder and more.

      also see The Fink Project

      --
      groklaw, wired and slashdot. The holy trinity of work based time wasting.
    4. Re:MS seems to be doing a lot of this lately... by SoSueMe · · Score: 5, Informative

      The very first thing it does is try to configure .net on your machine.

      Since my only Windows machine is 98, it couldn't complete the rest of the install.

      Yes, it is a sacrificial test machine. I just wanted to see the EULA.

    5. Re:MS seems to be doing a lot of this lately... by ReelOddeeo · · Score: 4, Insightful

      EVERY new machine SHOULD come with a separate developer's CD just as every boxed version of OSX should.

      Twenty years ago I would absolutely agree.

      Not today.

      Only one in one hundred, maybe one in one thousand users would do anything with this CD. (And I am counting the users who make clocks or other decorations out of useless CD's.) Don't increase the cost for everyone so that you can have a CD in the box.

      What development tools? What language? What IDE? There are so many to choose from. If the CD doesn't have the right one, then it doesn't do any good anyway. As soon as two (2) of those tools on that CD are out of date, then the CD is perceived to be out of date.

      If developer tools are to be free as in lunch, then why not just make them available for download. This is much cheaper than including a CD with every computer.

      --

      Those who would give up liberty in exchange for security and DRM should switch to Microsoft Palladium!
    6. Re:MS seems to be doing a lot of this lately... by The+Infamous+Grimace · · Score: 2, Informative

      If developer tools are to be free as in lunch, then why not just make them available for download.

      They are. You have to register, though. Make up a dummy account if you don't want Apple to have your real info. You can find development kits with IDEs for use with 10.2 and 10.3. I use Xcode quite a bit, although I'm also learning to work with vi and make.

      (tig)
      --
      Ignorance and prejudice and fear
      Walk hand in hand
    7. Re:MS seems to be doing a lot of this lately... by jellomizer · · Score: 5, Insightful

      Well I think Microsoft has found out what the biggest threat to their business. It isn't the quality, security or price of their software that makes them popular. It is and always has been how much software is available for their platform. Since the DOS days up to Win 95 or 98 (I am not sure which) Microsoft always packaged some development software with their OS. Although it was usually just BASIC but still it got people programming for them. After they got their market share they stopped giving away their development software, Then hobby developers who often turn professional developers start switching to Linux and OS X because there are development tools out there for them to program. Now over a long period of time as the old windows software companies merge go out of business, consoled or got bought out, there are less software titles available for windows. And the new programmers out there are programming in Linux and OS X get use to programming in that environment and when they make a professional grade application they release it for that platform. So after a while the software titles available to Linux and OS X could match or exceed that of Windows thus Microsoft will then need to find a way to make up the the long period of time of developers.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    8. Re:MS seems to be doing a lot of this lately... by Anonymous Coward · · Score: 2, Funny

      I thought debug was the DOS assembler?

    9. Re:MS seems to be doing a lot of this lately... by zulux · · Score: 5, Funny

      One could alomst say that it was developers that drive the sucuess of a operating saystem. Without developers, Linux woulden be anwhere. It's time thank all the Linux and *BSD developers, and GNU developers and other Open-Source developers. We need more Developers! Developers! Developers!

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    10. Re:MS seems to be doing a lot of this lately... by mattgreen · · Score: 3, Informative

      The system requirements list Win2000 on up and you complain that it won't install on Win98. Classic.

    11. Re:MS seems to be doing a lot of this lately... by ajp · · Score: 3, Informative

      As it says on the downloads page: "Supported Operating Systems: Windows 2000, Windows Server 2003, Windows XP". The page also points out that it does try to install .NET (not that anyone reads the page...)

    12. Re:MS seems to be doing a lot of this lately... by andalay · · Score: 5, Funny

      Perhaps what you meant to say is:

      Developers! Developers! Developers! Developers!Whooooo... Cmon. C-c-c-c-cmon!

      If you don't get it, thats ok too

    13. Re:MS seems to be doing a lot of this lately... by tepples · · Score: 2, Troll

      So the cost of Microsoft's optimizing C++ compiler is down from 1,089 USD (Microsoft Visual Studio) to 207 USD (Microsoft Windows 2000 Upgrade plus the .NET Framework SDK).

    14. Re:MS seems to be doing a lot of this lately... by E_elven · · Score: 3, Funny

      Oh hell. *Goes in search of the Win 3.1 disk*

      --
      Marxist evolution is just N generations away!
    15. Re:MS seems to be doing a lot of this lately... by .com+b4+.storm · · Score: 2, Insightful

      If developer tools are to be free as in lunch, then why not just make them available for download. This is much cheaper than including a CD with every computer.

      Way to be sensationalist and not even entirely read the post you're replying to! Quoth the grandparent:

      Also in the unlikely event that the developer CD is not present or there is an upgrade it is ALWAYS available(even to free online developer members) as a download.

      Oh and - what is the big deal about including the CD? It's not like CDs are expensive, especially when they are mass-produced for inclusion with Macs and copies of OS X. How does this in any way "increase the cost for everyone?"

      What language? What IDE? There are so many to choose from. If the CD doesn't have the right one, then it doesn't do any good anyway.

      Uh, what the hell are you talking about? What language? How about Objective-C, C, C++, and Java? Ya know, the main languages for developing OS X and UNIX programs?

      Yes there are "so many to choose from" (REALbasic, CodeWarrior and... uh... and.....) but it's a CD that's thrown in as a gift, and it's the same tools you can download later if they become out of date. And if you don't like Xcode, you don't have to use it. You are free to go out and pay for other IDEs and development tools if you wish.

      Again, what is the friggin deal? Apple includes, for free, a bunch of very powerful development tools so that you can, for free, develop programs for their OS. Yeah, what a bunch of evil bastards they are.

      --
      "Wow, you're like some kind of superhero able to ward off happiness and success at every turn."
      -- Ryan Stiles
    16. Re:MS seems to be doing a lot of this lately... by Moridineas · · Score: 4, Insightful

      The page seems to indicate that the .net runtime might be installed on your machine if you execute the download; can anyone who has done it confirm this for me? I don't want to have to drive a wooden stake through my CPU.
      I'm a MCSE, but I would never purposfully allow .net in my house. it activates all my tin foil hat's little buzzers and lights.



      What the hell? Informative? You're afraid of a program library? Do you not have any clue wthat .net is?

      It's users like you that give MCSE's a bad name (and pagan libertarians as well).

    17. Re:MS seems to be doing a lot of this lately... by LetterJ · · Score: 4, Insightful
      While still not free, XP Home can be had for $85 in a full version, not just an upgrade. And that cost only exists if you didn't already buy a computer with 2000 or XP on it. Obviously, you either bought a computer with Win98 on it or bought 98 by itself a few years ago.

      Your complaint sounds like someone griping that some piece of free software (could even be Linux-based) isn't really free because it requires a 600Mhz processor and 128MB of RAM and your old 133/16MB will require a CPU and RAM upgrade to run it.

    18. Re:MS seems to be doing a lot of this lately... by c4Ff3In3+4ddiC+ · · Score: 4, Informative
      What development tools? What language? What IDE? There are so many to choose from. If the CD doesn't have the right one, then it doesn't do any good anyway.

      Just wanted to note. If you install the dev tools on MacOS X, you get perl, python, ruby, c, c++, objective-c, java, php, bash, and probably more right from the start. You even get emacs and vim!

      You also get a nice IDE called Xcode. I don't do much programming so I can't say how nice it really is, but it does the usual project management, debugging, etc that you would expect.
      --
      *twitch*
    19. Re:MS seems to be doing a lot of this lately... by rnd() · · Score: 3, Insightful

      Why don't you try to install the latest GCC on a 1.0 linux kernel...

      --

      Amazing magic tricks

    20. Re:MS seems to be doing a lot of this lately... by SquadBoy · · Score: 4, Funny

      don't forget power, a desk, somewhere to put it. You need to buy food and something to eat it on/with. My god I hate those bastards. :)

      --

      Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
    21. Re:MS seems to be doing a lot of this lately... by blincoln · · Score: 2, Interesting

      It's the .net runtime framework i'm in morbid fear of.

      Why? Are you afraid of DirectX too? .NET is just an engine that allows new types of programs to run. Developing in .NET is faster and easier for a lot of applications. We use VB.NET and ASP.NET in my engineering department at work, and they're really handy. I also know some hardcore developers who like C# and managed C++.

      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 .NET? HailStorm, and all of that? They're different things. MS is putting the .NET label on everything now.

      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.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    22. Re:MS seems to be doing a lot of this lately... by Moridineas · · Score: 2, 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

    23. Re:MS seems to be doing a lot of this lately... by paganizer · · Score: 2, Interesting

      Sigh.
      anyone who thinks WinXP is the best MS/OS has serious reality issues.
      Win2k. All the power, non of the crap.

      --
      Why, yes, I AM a Pagan Libertarian.
  3. Not needed by sweet+cunny+muffin · · Score: 4, Interesting

    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?

    1. Re:Not needed by Anonymous Coward · · Score: 5, Informative

      There's a decent free IDE available called Dev-C++ for windows, it comes with mingw32 ofcourse.

    2. Re:Not needed by lpontiac · · Score: 4, Informative
      • Microsoft's compiler produces better (smaller, faster) x86 code than GCC.
      • I get the impression that when you move above vanilla C code (eg C++, libraries distributed in binary form only), different compilers don't play so nicely. (Just like gcc 2.9x versus gcc 3.x). And most of the binary only stuff out there on Windows is compiled with Visual C++.
    3. Re:Not needed by tesmako · · Score: 5, Insightful

      Because it starts to feel like I have wasted several years of my life waiting for g++ by now. g++ is probably the slowest compiler I have ever used.

  4. Yes! by Flingles · · Score: 5, Funny

    "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
    1. Re:Yes! by Anonymous Coward · · Score: 3, Funny

      try {
      std::standards.conform(VisualC++, ISOC++);
      }
      catch (nonstd::ConformanceFailureException cf) {
      /* We are here */
      cout << "Damn!" << endl;
      this.serve(FreeCompiler);
      }

    2. Re:Yes! by nukey56 · · Score: 4, Funny

      Seems firmiliar.. ahh yes.

      Goth Kid #3: "I'm the biggest non-conformist!"
      Goth Kid #4: "I'm such a non-conformist, that I'm not going to conform with the rest of you. I'll do it!"

    3. Re:Yes! by naden · · Score: 2, Insightful

      Heh, sounds like this has confirmed to another standard. The standard way to fsck your competitors:

      "Embrace and extend"

      --
      Funtage Factor: Purple
  5. Microsoft offers interoperatibility? by plj · · Score: 3, Interesting

    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
    1. Re:Microsoft offers interoperatibility? by sploo22 · · Score: 2, Informative

      As usual, they won't let you view the license before you download it.

      --
      Karma: Segmentation fault (tried to dereference a null post)
    2. Re:Microsoft offers interoperatibility? by Paul+Townend · · Score: 4, Informative

      The "learning edition" of MSVC++ prohibited you from commercially distributing binaries made with it (or perhaps even just distributing the binaries, I can't remember just now). It also displayed a pop-up window whenever you executed your code, reminding you of this.

      However, considering it cost virtually nothing to get the thing, I don't think this was particularly unfair.

    3. Re:Microsoft offers interoperatibility? by nukey56 · · Score: 2, Informative

      However, considering it cost virtually nothing to get the thing, I don't think this was particularly unfair.

      Not to be unfair, but I've got a fairer solution. Just season with a genetic optomizer.

    4. Re:Microsoft offers interoperatibility? by ReelOddeeo · · Score: 3, Funny

      I don't know about lately, but years ago, MS development tools had EULAs that prevented you from using MS tools to develop either (1) more development tools or (2) word processors.

      --

      Those who would give up liberty in exchange for security and DRM should switch to Microsoft Palladium!
    5. Re:Microsoft offers interoperatibility? by arkanes · · Score: 2, Informative
      I just read the EULA. I'll post it here, after my comment.

      There's suprisingly little in it, the vast majority of it is standard boilerplate. Only the first clause relates to what you can do with it, and it seems to limit you to personal use only (ie, no selling the binaries you create), but it's not explicit. The rest of it deals with standard redistributables (the C/C++ runtimes/STL) and standard waivers of liability, etc.

      Presumably because it's distributed/sold in Quebec, theres a bunch of French at the end which, in the interests of space, I have snipped.

      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 Redi

  6. This is a Good Thing(TM) by El+Cubano · · Score: 3, Interesting

    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.

  7. platform SDK by halfdan+the+black · · Score: 5, Informative

    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.

    1. Re:platform SDK by sweet+cunny+muffin · · Score: 3, Informative

      The command line C++ compiler was never included in the SDK. The C# compiler and so on were, however.

    2. Re:platform SDK by Danster · · Score: 2, Informative

      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.

      Not quite.

      The Platform SDK ships the 12.00.880 version of the VC++ compiler, which roughly corresponds to the 2002 version of Visual Studio .NET.

      This release is the 13.10.3077 version which corresponds to the current version of the environment -- Visual Studio .NET 2003.

      So no, not quite the same thing.

    3. Re:platform SDK by hobuddy · · Score: 4, Informative

      The command line C++ compiler was never included in the SDK. The C# compiler and so on were, however.

      That's incorrect. The .NET SDK has always included the C++ compiler (installed by default to C:\Program Files\Microsoft Visual Studio .NET 200x\Vc7), but the compiler was the Standard Edition, without an optimizer. If you pass it an optimization switch, the Standard Edition issues a warning to the effect that "The Standard Edition of Microsoft Visual C++ does not include an optimizer.". Naturally, lack of an optimizer makes the Standard Edition almost useless for production code.

      This newly released command-line compiler includes a fully functional optimizer. It's the same C++ compiler that underlies VC++ .NET 2003 Professional.

      --
      Erlang.org: wow
  8. Re:My experience with VC++ by sweet+cunny+muffin · · Score: 5, Insightful

    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?

  9. huh? by Knights+who+say+'INT · · Score: 3, Funny

    Go Forth?

    But isn't it a C compiler?

    What next, Visual PL/I?

  10. Awesome by Ryvar · · Score: 3, Interesting

    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.

  11. Clippy's response to compiling OSS by foidulus · · Score: 5, Funny

    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."

    1. Re:Clippy's response to compiling OSS by Anonymous Coward · · Score: 3, Funny

      That's 'K' - Karl Marx.


      No, no. This is the Gnome version, not the KDE one.

  12. crack is free first time by mabu · · Score: 4, Interesting

    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.

    1. Re:crack is free first time by mattgreen · · Score: 4, Informative

      I know knowledgable comments are looked down on at Slashdot, but the .NET SDK has been free from the start and included cl.exe, (the C++ compiler) but it was the non-optimizing compiler I think. What the .NET SDK didn't have was the full STL and a few other things that are now free.

      The end-result of this is everyone gets a free compiler upgrade if they haven't moved to VC7.1 already. It means on my OSS project I can say "VC7.1 minimum," and expect everyone can follow suit without a problem. However I realize this isn't as fun as tin-foil explanations, so I'll let you get back to that.

  13. Microsoft Had A Change of Heart? No. by Famatra · · Score: 2, Interesting

    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.

  14. wow, good job microsoft! by timecop · · Score: 2, Informative

    This is absolutely awesome.

    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 .NET framework SDK did not have optimization command-line options enabled.

    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,

  15. EULA? by nukey56 · · Score: 4, Interesting
    From linked site:
    Are there any restrictions on how I use the Visual C++ Toolkit?

    In general, no. You may use the Toolkit to build C++ -based applications, and you may redistribute those applications. Please read the End User License Agreement (EULA), included with the Toolkit, for complete details.

    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:

    You may not disclose the results of any benchmark test of the .NET Framework component of the OS Components to any third party without MicrosoftÃÂ's prior written approval.

    Use at your own discretion.
  16. Yes, but... by heironymouscoward · · Score: 3, Funny

    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
    1. Re:Yes, but... by tesmako · · Score: 2

      Making sure your code is portable is one very good reason to use the microsoft compiler on Windows. Compile with gcc on Linux and Microsofts compiler on Windows and you will catch more bugs in the long run.

    2. Re:Yes, but... by nukey56 · · Score: 2, Funny

      The day Microsoft releases a real cross compiler is the day I'm going to add a layer onto this here foil hat of mine...

    3. Re:Yes, but... by TheRaven64 · · Score: 2, Insightful

      If your code really is 100% portable, then it won't use any gcc-specific extensions, and so should compile fine with this compiler. If the MS compiler produces better optimisations (and I'd be very surprised if it didn't. Optimisation in gcc is handicapped somewhat by the need to be cross-platform) then there's no reason at all not to use it when compiling your apps for release in a Windows environment.

      --
      I am TheRaven on Soylent News
    4. Re:Yes, but... by MrBlue+VT · · Score: 2, Informative

      You can use POSIX via Windows Services for Unix.

  17. Re:My experience with VC++ by startup.cmd · · Score: 5, Informative
    Anyone know where to get a free visual debugger for Win32?

    MS provides the Debugging Tools for Windows as a free download. GUI and command line debuggers are included.

  18. goes both ways... by TamMan2000 · · Score: 2, Funny

    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...
    1. Re:goes both ways... by Waffle+Iron · · Score: 5, Funny
      CC was the most liberal of them all, it would complile and run your email.

      This highlights once again how Windows is a more flexible and modern development platform than Un*x. With Windows, email can be run automatically and remotely, without the need for a separate compilation step.

  19. No lib.exe by Asmodeus · · Score: 3, Informative

    Major omission - no lib.exe for building .a files

    Looks like this is just to encourage people to migrate to .NET as without lib.exe it is pretty useless for larger projects.

    Still, nice of them to release it

    Asmo

    1. Re:No lib.exe by swamp+boy · · Score: 2, Informative

      The original poster says "without lib.exe it is pretty useless for larger projects".

      My suggestion of building DLL's negates this complaint. Notice the original post didn't say "can't build static link library". A DLL on Windows is essentially the same as a ".so" on Unix. True, a DLL is not the same as a statically linked library, but in the original poster's comment aboutl "useless", one could easily build any number of DLL's for a large project. Indeed, this is how most commercial Win32 apps are built. Am I missing something?

    2. Re:No lib.exe by willll · · Score: 2, Informative

      In case you didn't notice, they didn't include a lot of stuff that's neccessary for building Windows apps: the Windows headers, the .lib files for linking with Windows stuff, a resource compiler, nmake, etc. You have to download some more stuff (for free as well) to get this stuff. That would be the Platform SDK.

    3. Re:No lib.exe by ajp · · Score: 5, Informative

      Try using the link /lib switch. It offers the exact same functionality as lib.exe.

    4. Re:No lib.exe by DotNetGuru · · Score: 2, Informative

      Just to put a fine point on how much this is the "exact same functionality". If you delete link.exe from your system then lib will fail to work. That's right, lib just calls link for you. It could be replaced by a batch file or a 1 line C program.

      The same goes for dumpbin and editbin. It's just a wrapper over link.

    5. Re:No lib.exe by kylef · · Score: 2, Interesting
      That's right, lib just calls link for you. It could be replaced by a batch file or a 1 line C program.

      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!

  20. Nice move by Anonymous Coward · · Score: 2, Interesting

    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.

    1. Re:Nice move by Anonymous+Brave+Guy · · Score: 4, Funny
      As a university student I can get VS.NET2003 Pro with the optimizing compiler for free anyway

      You know that copying it over Kazaa from your mate down the corridor is illegal, right? ;-)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  21. I suppose Electric Fence and Valgrind don't count by BitwizeGHC · · Score: 2, Interesting

    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!
  22. can't believe I am doing this, but... by TamMan2000 · · Score: 2, Interesting

    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...
    1. Re:can't believe I am doing this, but... by kryptkpr · · Score: 2, Informative

      I don't have VC++ installed, so I'm afraid I cannot cite very specific examples. Most of my troubles came from pointers (big surprise there), and if I recall correctly calloc() would randomly fail to initialize allocated memory. I also recall being angry that I cannot sizeof() a row vector in a 2D array, but sizeof() on a 1D array works fine.

      Most of my trouble likely came from being a n00b to the language, and coming from a Pascal background I don't quite like the way C does a few things things (like multi-dimensional arrays, and pass by reference).. but using VC++ made learning even harder, becuase stuff would just mysteriously fail to work post-compilation that worked fine on other compilers.

      (Disclamier: never touched C++ with even a 40 ft stick, and was using an older version of VC++, I think it was 4)

      --
      DJ kRYPT's Free MP3s!
    2. Re:can't believe I am doing this, but... by Anonymous+Brave+Guy · · Score: 2, Interesting
      What does it matter when the compiler was released?

      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.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  23. How about some evidence? by enosys · · Score: 4, Insightful

    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.

    1. Re:How about some evidence? by man_of_mr_e · · Score: 4, Informative

      This is a few years old (as are most of the benchmarks i've seen) but you can try this http://www.willus.com/ccomp_benchmark.shtml?p11

      Note that this is comparing MSVC 6 (current version is 7.1, and it's improved a lot). In this test, Intel beats everyone, MSVC comes in second with MingW third, however, both the Intel and MS compilers have improved massively in the last couple years. I don't know about MingW. At least part of MingW's success is that they use MS's runtime library, which means that a great deal of the code being run was compiled by MSVC.

    2. Re:How about some evidence? by Anonymous+Brave+Guy · · Score: 4, Informative
      I suspected someone would say Microsoft's compiler produces better code. Now where's the evidence?

      There are at least two easy answers to that question:

      • Look at the disassembly for any reasonably complex algorithm, and spot all the platform-specific optimisations that VC++ (and indeed most other commercial compilers on Windows) perform that GCC (due to its portability requirements) does not.
      • Use Google, and look for people who've compared the real world performance of non-trivial apps built with each compiler. (You might do better with Google Groups than the Google web search engine on this one.)
      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:How about some evidence? by dial0g · · Score: 2, Informative

      Latest issue (May) of DDJ has an article on compiler performance.

      For C code, VC++ 7.1 ranked 2nd (tied with Intel and Open Watcom) whereas GCC ranked 8th.

      For C++ code GCC and VC++ 7.1 were tied for 2nd.

      I'll leave it to you to buy the magazine if you want the details (they tested 9 x86/Win32 compilers all together).

    4. Re:How about some evidence? by Too+Much+Noise · · Score: 4, Informative
      heh - benchmarking, gotta love it. Here's a clue about (more recent) compilers - note that the bench you linked to has what would be a 5-gen-old gcc (2.7.x). even 2.9* used to spank MS' cl 13.x (that's the pre-release versions of 7.0 that were also freely downloadable - in fact, MS used to give away compiler toolchains for a long time as part of the SDK, old news, huh?).

      1. recent icc (7.x, 8) spank about everyone on vector fp due to various reasons (like Intel not releasing a full spec of the SSE2 unit - check out the gcc mailing lists about SSE2, you'll see they didn't have info on timings and so on, hence gcc does only some integer optimization and mostly scalar fp).

      2. icc does some (nice when not useless) automatic parallelization of code (the idea being to use hyperthreading better).

      3. gcc 2.9x -> 3.1+ was a big improvement as well (moreso for 3.2+, check the docs for the new way they do the machine description for scheduling). Just check your own link.

      4. -ffast-math on gcc only has it do what both Intel and MS are already doing - using the bloody fp unit instead of software emulation!!! (easy proof - do an asm dump of the generated .o file).

      5. another big thing that's done by default by icc and cl is the gcc flag -fomit-frame-pointer (which on x86 is quite important due to register starvation). Again, gcc has that missing.


      Actually, looking at the compiler flags makes me wonder whether there's any point in taking those bench's seriously - the guy didn't even bother to use anything more than -mcpu=i686 (aka 'generate for pentium pro) for gcc, and the other compilers' switches are still close to minimal (even if they mean quite more than the gcc one). Makes one wonder about how competent the guy doing the benchmark was.
    5. Re:How about some evidence? by Joe+Tie. · · Score: 2, Insightful

      What really baffled me was the line This is a nice boon for those that have to deal with cross-platform compatibility

      I can think of some reasons to use microsoft's compiler, but it seems to me that cross-platform compatibility is the single largest reason not to. It can be hard enough keeping things cross-platform when you're using gcc on each, adding a whole other compiler to the mix is just asking for trouble.

      --
      Everything will be taken away from you.
    6. Re:How about some evidence? by fatphil · · Score: 2, Informative

      Erm:

      "-ffast-math on gcc only has it do what both Intel and MS are already doing - using the bloody fp unit instead of software emulation!!! (easy proof - do an asm dump of the generated .o file)."

      bash-2.05b$ more foo.c
      double foo(double a, double b, double c, double d)
      {
      return (a+b)*(b+c)*(c+d)*(d+a);
      }

      bash-2.05b$ gcc -S -O3 -fno-fast-math foo.c
      bash-2.05b$ more foo.s
      .file "foo.c"
      .text
      .p2align 4,,15
      .globl foo
      .type foo, @function
      foo:
      pushl %ebp
      movl %esp, %ebp
      fldl 8(%ebp)
      fldl 16(%ebp)
      fldl 24(%ebp)
      fld %st(2)
      fadd %st(2), %st
      fldl 32(%ebp)
      fxch %st(3)
      fadd %st(2), %st
      fxch %st(2)
      popl %ebp
      fadd %st(3), %st
      fxch %st(1)
      fmulp %st, %st(2)
      fxch %st(2)
      faddp %st, %st(3)
      fmulp %st, %st(1)
      fmulp %st, %st(1)
      ret
      .size foo, .-foo
      .section .note.GNU-stack,"",@progbits
      .ident "GCC: (GNU) 3.3.3 (Debian 20040401)"

      If that's not using the FPU unit, then I'm a Dutchman.

      FP. (Not a Dutchman)

      --
      Also FatPhil on SoylentNews, id 863
    7. Re:How about some evidence? by man_of_mr_e · · Score: 2, Insightful

      Floating point performance is not the only performance out there, and in fact it's a benchmark i'm least concerned with.

      I care about optimization of the executing code and integer performance 99.999% of the time, and MS's compiler generates some extremely good code. Remember, the smaller it is, the better chance there is that it will fit within the cache, especially for tight loops.

      I've not been very impressed with the size or performance of gcc's integer code.

    8. Re:How about some evidence? by be-fan · · Score: 3, Informative

      Loop vectorization does not have to do with hyperthreading. Loop vectorization takes code like this:

      for(...iterate over buffer...)
      for(...iterate over vector...)
      do_scaler_op()

      And turn it into code like this:

      for(...iterate over buffer...)
      do_vector_op(...on vector...)

      This has nothing to do with hyperthreading. Hyperthreading deals with parallelism between threads, not parallelism within threads. Intel has a seperate facility for the compiler to generate seperate program threads (OpenMP), but the auto-vectorizer does not. The auto-vectorizer works at a much lower level, replacing several scaler ops with a smaller number of vector ops. GCC does not have the analysis technology necessary to do that.

      --
      A deep unwavering belief is a sure sign you're missing something...
  24. Suits me just fine.. by multipartmixed · · Score: 4, Interesting

    ...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.

    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) ..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.

    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()?
  25. Port to Linux by crow · · Score: 2, Interesting

    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).

    1. Re:Port to Linux by Anonymous Coward · · Score: 3, Insightful

      wine CL myfile.c -o myprog.exe
      wine myprog.exe
      Is that what you want? It's not a crosscompiler. It compiles for Windows, not for Linux.

    2. Re:Port to Linux by SlightOverdose · · Score: 2, Informative

      Why not just develop for .NET? this way you can compile using either Microsofts compiler or either of the free open source compilers Portable.NET or Mono), and run it natively under either of the said runtimes.

      And yes, this works. I have a project I'm working on now that I wrote in VS.NET2003 and ran with no problems using Portable.NET

      I can compile with Portable.NET and it works under Windows. I can compile with Microsoft c# compiler and it runs under Linux. Just like Java, minus the insanely ugly and slow Swing widgets.

  26. Code Size! by parryFromIndia · · Score: 3, Interesting

    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

    1. Re:Code Size! by lkaos · · Score: 3, Informative

      Large code size != bad code generation.

      Considering a very common (and powerful) optimization of inlining. What you literally do is change function invocations to the code for that function.

      Another common (but more advanced optimization) involves making an optimized duplicate of a particular code path.

      What you're probably seeing is a difference between the included optimizations in GCC's -O2 verses MSVCP's -02. Try enabling individual optimizations and then comparing code size if that's what you're interested in. That's a more fair metric.

      --
      int func(int a);
      func((b += 3, b));
  27. I wonder by Xerp · · Score: 2, Interesting

    Anyone had any luck running it in WINE?

  28. Last I tried, this failed to compiled by Carl+T · · Score: 2, Insightful
    for(int i = 0; i < 10; i++) ;
    for(int i = 0; i < 10; i++) ;

    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.
  29. It makes as much sense as Linux... by aksansai · · Score: 4, Insightful

    Give Linux away for free - they will come. Same principle applies.

    If you bothered to download the .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.

    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
  30. Loop variable? by BenjyD · · Score: 2, Informative

    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.

    1. Re:Loop variable? by man_of_mr_e · · Score: 4, Insightful

      It was never "wrong" per se.

      The for scoping you refer to was introduced in the C++ standard, which VC++ supported as far back as version 5 IIRC, however it supported it in a way that was not very useful. You had to turn off all MS extensions to use it, and that also had the side effect of breaking many other things.

      As of VC++7 they have a specific switch to enable/disable the for scoping (current version is 7.1, with 8.0 due out next year).

    2. Re:Loop variable? by harlows_monkeys · · Score: 3, Insightful
      I haven't used MS VC++ for a few years (fortunately), but does it still get the scope of loop variables wrong?

      This is the most annoying thing about using compilers that came out before the final C++ standard. The proper scope of such variables flip-flopped between draft standards. Here's a trick I saw somewhere that fixes this problem.

      At the top of your code, put this:

      #define for if(false);else for

      That will make the for loop variable scope correct, no matter which draft of the standard the compiler follows.

  31. Port Anjuta on top of this? by Anonymous Coward · · Score: 4, Interesting

    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.

  32. .NET is the potential for platform independence... by aksansai · · Score: 3, Informative

    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.

    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 .NET and Mono.

    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
  33. Build dll's using cl.exe by swamp+boy · · Score: 3, Informative
    You can easily build dlls with just cl.exe. You must remember to export things correctly though.

    class __declspec( dllexport ) MyClass
    {
    ...
    };

    I use a macro that handles this for me, with conditional directives to be empty on other platforms. Not that hard - really.
    1. Re:Build dll's using cl.exe by AArmadillo · · Score: 2, Informative

      The same technique that is used to build DLLs is also used to build statically linked libraries, its just a matter of using the right compiler/linker switch. Claiming there is no method of generating static or dynamically linked libraries under Visual C++ is just showing ignorance.

  34. Finally something good from Microsoft! by Prodigy+Savant · · Score: 2, Interesting

    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!
  35. The battle is for the hearts/minds of develop by pcause · · Score: 5, Insightful

    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.

  36. Optimizing beyond Win32... by aksansai · · Score: 5, Interesting

    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
    1. Re:Optimizing beyond Win32... by moosesocks · · Score: 2, Insightful

      NOT TRUE

      This is simply not true. In the past decade, Microsoft has released versions of windows which run on PowerPC, MIPS, Alpha, and Itanium (not to mention Opteron). The first hardware NT actually ran on was MIPS - it was originally intended for the intel i860 which never made it to mass-production. (Source

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    2. Re:Optimizing beyond Win32... by SnowZero · · Score: 2, Informative

      And if you'd ever used their Alpha compiler you'd know how far behind the x86 compiler it was. Even internal MS developers had a lot of problems with it. The Itanium could be better supported perhaps, as they probably got some help from Intel and generally have their act together better now.

  37. Re:slightly OT, but chance to ask a question by bhima · · Score: 2, Insightful
    GCC is not as fast as some commercially available specialty compliers on those target platforms but that's not really the point of GCC. If someone requires the fastest complier on a specific platform then they go buy one. But really the difference is not that pronounced

    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.
  38. Motive by ickoonite · · Score: 4, Interesting

    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 :)

    1. Re:Motive by cubic6 · · Score: 3, Interesting

      Rumor (and MSDN) says that Longhorn will ship with a full .NET development environment including compiler, debugger, and build manager. This makes it the first time since QBasic that a kid could learn how to program with only the tools installed with the OS. I don't see them integrating X11 any time soon, since it doesn't have most of the features of the Avalon framework that they're trying to introduce. If they did, it'd probably be a heavily extended version.

      --
      Karma: Contrapositive
  39. Re:More standards compliant? by swamp+boy · · Score: 3, Informative

    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.

  40. Re:no! by firew0lfz · · Score: 4, Informative

    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.
  41. Ok, here's one by CrystalFalcon · · Score: 4, Informative
    Functions in named classes inside template classes, that are not written inline.

    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:
    // === DECLARATION ===

    template <T>
    class SimpleBinaryTree
    {
    public:
    SimpleBinaryTree();
    ~SimpleBinaryTree();
    void Add (const& T);
    // etc

    protected:
    class Element
    {
    public:
    Element();
    Element (const Element& source);
    ~Element();
    const Element& operator= (const Element& source);
    private:
    void Destroy();
    const Element& CopyFrom (const Element& source);

    }
    }

    // === IMPLEMENTATION ===

    template <T>
    void
    SimpleBinaryTree<T>::Element::Destroy()
    {
    // Clean up, common code for destructor and copy ops
    }

    template <T>
    const Element&
    SimpleBinaryTree<T>::Element::CopyFro m (const Element& source)
    {
    // Copy from 'source' - common code for
    // copy ctor and assignment op
    }
    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.
    1. Re:Ok, here's one by Yokaze · · Score: 4, Informative
      Some minor modifications like
      s/template<T>/template <typename T>/
      and for the external declarations
      s/ Element/ typename SimpleBinaryTree<T>::Element/
      and VS .Net 2003 says:
      ------ Build started: Project: test, Configuration: Debug Win32 ------

      Compiling...
      stdafx.cpp
      Compiling...
      test.cpp
      Linking...

      Build log was saved at "file://z:\devel\test\Debug\BuildLog.htm"
      test - 0 error(s), 0 warning(s)
      You probably tested it with .Net 2000. That version also had problems with partial template specialisations.
      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
  42. Re:They're just defending their turf. by Bastian · · Score: 4, Insightful

    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.

  43. Pass by reference in C by Anonymous+Brave+Guy · · Score: 2, Informative
    There is no pass by reference in C.

    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.
  44. Visual Studio 6 integration? by mardoen · · Score: 2, Interesting

    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?

    1. Re:Visual Studio 6 integration? by Anonymous Coward · · Score: 2, Informative

      It should be possible -- I've integrated the C compiler from the DDK with VS6, and that's basically the same compiler as what MS is giving away now. If you're happy with the VS6 IDE, this is a good way to keep the IDE you like, while getting the benefits of the latest compiler.

      Select the Tools | Options menu and go to the Directories tab of the Options dialog. Add the directories for new C compiler to the top of the lists for Executable files, Include files, and Library files. I'd also recommend downloading the Platform SDK and using the Windows headers/libraires from there rather than the ones that came with VC6 (which date back to the NT 4.0 era).

  45. Re:More standards compliant? by SlashdotLemming · · Score: 3, Informative

    Speaking of standards compliance...

    there ISO
    their ISO

    it's not there fault.
    it's not their fault.

  46. Compatability does not seem so much of a problem by spitzak · · Score: 4, Informative

    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.

  47. VS 7.1 Standard upgrade? by palmtree3141 · · Score: 2, Interesting

    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.
  48. Using new compiler with Visual Studio 6? by baxissimo · · Score: 3, Interesting

    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...

    1. Re:Using new compiler with Visual Studio 6? by baxissimo · · Score: 2, Insightful

      A solution is a workspace?? Wow. That's even worse naming. A workspace is basically just a collection of projects (which in turn correspond usually to an exe or a lib). So who says that a collection of exes and libs is going to be "solution" to anything? A workspace is a "space" for doing "work" on several projects at once (related or not). So workspace always seemed like a perfectly reasonable name to me. "Solution" somehow sounds like the same smug marketing speak that brought us "My Computer" and "My Music". Like they're stepping in my shoes trying to put words in my mouth. Maybe I want to have 5 completely unrelated projects in my "solution" because those are the projects I'm currently working on. How is that a "solution" to anyting? Anyway "solution" is a really pompous name for what amounts basically to a simple ASCII list of project file names. It's like the manager claiming that he "solved" the problem, when all he really did was just ask someone else to do it for him. Or like Al Gore "inventing" the internet.

      Bah! Solution files. Ridiculous.

    2. Re:Using new compiler with Visual Studio 6? by JFMulder · · Score: 2, Insightful

      By experience, I found that while the Intel compiler generates faster code, there are quite a few thigns that are broken in it where it sometimes crashes, compiles code that shouldn't be compilable, while MSVC gives an error as expected. Or literally generates bad code. Try debugging that! For speed, always compile with Intel. But for standards compliance, I've come to the conclusion that compiling with MS's 2003 compiler is a good thing just to make sure the code you write is compliant with the standards.

    3. Re:Using new compiler with Visual Studio 6? by omicronish · · Score: 4, Informative

      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.

      I'm currently writing C++ code using Visual Studio.NET, and I haven't noticed any problems compared to Visual C++ 6. Some of the keyboard shortcut defaults are different, but you can revert to the VC++ 6 layout easily.

      I think the main reason it might not seem as good for C++ work is that VS.NET adds considerably more features geared towards .NET development, while C++ appears to be neglected somewhat. Remember that VS.NET's IDE supports all their .NET languages, and C++.

      For clarification, a solution can contain multiple projects. The old term they used was workspace. Yeah, I thought it was weird at first, but it's just terminology, plus a workspace sort of implies open windows and developer-specific settings to me. A single solution can be used by multiple developers (CVS works nicely).

    4. Re:Using new compiler with Visual Studio 6? by baxissimo · · Score: 2, Informative

      Ok, I gave it a try, the new free compiler with VC6 IDE. It seems to compile and run ok. But debugging doesn't work.

      The new link.exe complained that it doesn't know the /pdbtype flag. It still ignored it and linked ok, but when I went to debug, VC6 said the exe didn't have any debugging symbols. I've tried changing the debugging options in VC6 a few different ways (C7 compatible, no program database etc), but nothing I've tried makes the debugger happy.

      So it looks like this may not be something that will work as well as one might hope, unless anyone has any other ideas.

    5. Re:Using new compiler with Visual Studio 6? by baxissimo · · Score: 3, Funny

      What's the problem? The problem is that they've taken a perfectly good word and used it to describe something that it is not. Yes it's just terminology, but all I'm saying is it's a stupid name, and there was no reason not to continue calling it a "workspace". At least "workspace" was a made up word to which they are free to assign whatever meaning they wish, since they made it up.

      I guess the thing that really irks me about the name "solution" is that it almost makes sense. It's so close to making sense that I want to interpret it literally, like the code I need written is the problem and the solution is contained in a "solution" file. But the "solution" file doesn't contain the solution to my problem most of the time. Like for instance when my code doesn't even compile yet. That's hardly a solution. Or maybe I should interpret it as the solution to the problem of building my application. The build configuration problem. But the most difficult bits of the build problem are contained in the project files. The "solution" file is just a glorified list pointing to several projects. So it doesn't really make sense to think of it as the solution to the build problem.

      And I can't think of any other context in which it could be the solution. So it just bugs me, ok.

      I think we need to think of a new interpretation of the .sln suffix. From this day on, I declare that it's is no longer a "solution" file -- instead .sln will stand for a "sirloin" file. Yes, that's it. It's the file that contains the meat that makes up your application. The sirloin file. That's what it is. Ok, now I'm happy. Maybe I'll even upgrade to VC7 now that I can use these cool new sirloin files.

  49. Try VC7 by jridley · · Score: 2, Informative

    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.

  50. Yes please! Don't increase the cost for the rest! by jotaeleemeese · · Score: 5, Funny

    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.
  51. No assembler? by leonbrooks · · Score: 3, Interesting

    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
    1. Re:No assembler? by billcopc · · Score: 5, Interesting

      I remember a certain 12 year old student who couldn't afford MASM and didn't like TASM so he wrote his own macro preprocessor in C. Then the code was fed back to Debug.com and BEHOLD it worked.

      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.

      --
      -Billco, Fnarg.com
    2. Re:No assembler? by Krach42 · · Score: 2, Interesting

      Jesus! You sound way too hard-core... I mean, I was doing some crazy stuff with Assembly, even up until the Pentium4 came out, but nothing like this timing stuff you're talking about.

      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.

      --

      I am unamerican, and proud of it!
    3. Re:No assembler? by Malc · · Score: 2, Insightful

      Thank goodness we don't have to do that anymore. Talk about poor productivity levels.

    4. Re:No assembler? by ThrobbingGristle · · Score: 3, Insightful

      Do you remember when you had to go out and kill your own food if you wanted to eat?

      Do you remember when you had to crank-start your car?

      Lowering the barriers to programming has been good by and large... would we have all this free software if it all required assembly programming?

    5. Re:No assembler? by Cruxus · · Score: 2, Insightful

      Is it just me, or is it preferable to think about what you can do by writing a program rather than how you can get it done under technical constraints? If programming were all about making sure this or that about some register was good or some small amount of memory was not used up, I'd probably have no interest in it at all, and I would have gone back to playing video games or something.

      I'll take my high-level object-oriented programming languages, like C++ and Java, running on modern systems any day!

      --
      On vit, on code et puis on meurt.
  52. 8 years ago gcc had severe problems as well by AHumbleOpinion · · Score: 2, Interesting

    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.

  53. From the posted EULA by Spaceman40 · · Score: 2, Informative

    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.
    1. Re:From the posted EULA by shiftless · · Score: 5, Informative

      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.


      Nope. That clause governs copying of the Software- in other words, the compiler. It says nothing about distribution of works you create using the Software.

  54. Re:.NET is the potential for platform independence by ajp · · Score: 2, Insightful

    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#?

  55. C# and VB.Net free also, SQL by JamesR2 · · Score: 2, Informative

    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.

  56. Re:no! by mst76 · · Score: 2, Interesting
    Ok, reading this
    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.
    and this
    4. RESERVATION OF RIGHTS AND OWNERSHIP. Microsoft reserves all rights not expressly granted to you in this EULA.
    the question remains: can I use this to develop and distribute commercial software? Or GPL software?
  57. Thanks, but I don't need it -- I have Linux by Anonymous Coward · · Score: 4, Insightful

    > 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.

  58. Aha! So _that's_ where... by leonbrooks · · Score: 4, Funny

    ...Ken Thompson's version of the C compiler went! (-:

    --
    Got time? Spend some of it coding or testing
  59. Re:no! by rborek · · Score: 3, Interesting
    Yes, you can use it to develop and distribute commercial software. Section 1.1 of the EULA is for the Toolkit ONLY. It's a standard clause - you'll see something similar in the Master EULA for MSDN Professional/Enterprise/Universal (the only other EULA I can easily find online), and these people pay big dollars for the package.

    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.

  60. Intel has a smilar deal by Animats · · Score: 4, Informative

    Intel's C++ compiler is also free for non-commercial use. It even runs under Linux.

    1. Re:Intel has a smilar deal by Johnno74 · · Score: 3, Informative

      Yes, but MS are now allowing you to download this compiler for free, and use it for COMMERCIAL use as well.

      Quite a big difference, IMO.

    2. Re:Intel has a smilar deal by the_greywolf · · Score: 4, Informative

      last i checked, Intel's non-commercial license is explicitly linux-only. the only download for the Windows compilers are 30-day evaluations only.

      that is, after 30 days, every executable in the Intel directory becomes useless after 30 days.

      --
      grey wolf
      LET FORTRAN DIE!
  61. Does that mean: NO GPL-style Licenses??? by koi88 · · Score: 4, Interesting
    From the EULA I found here:
    ***

    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.
    1. Re:Does that mean: NO GPL-style Licenses??? by IO+ERROR · · Score: 4, Insightful
      I ran into this with VS.net 7.1. Upon discussion with the legal types, we determined this:

      In order to release our application under the GPL, we would have to write a "special exception" permitting linking with Microsoft runtime libraries, same as we currently do with linking against OpenSSL and some other BSD-licensed stuff.

      Not too difficult, but it does tend to become annoying to write all those special execptions. I proposed a minor change to the GPL's wording to address this type of situation, but who knows if it'll make it into GPL 3.

      Though there would be no problem compiling existing apps with this toolkit, as long as you didn't distribute the resulting binaries.

      This post is not legal advice. Check with your attorney first before doing anything. The issues raised here are quite complex legal issues and you are going to need a damn good lawyer, especially since you're dealing with Microsoft here.

      --
      How am I supposed to fit a pithy, relevant quote into 120 characters?
    2. Re:Does that mean: NO GPL-style Licenses??? by Chuck_McDevitt · · Score: 2, Interesting

      Wrong. This just covers the redistributables (not the compiler or things you compile with it). The idea is you can't make derivitives of those redistributables that would cause Microsoft's code to be GPL'd.

    3. Re:Does that mean: NO GPL-style Licenses??? by Anthony+Bailey · · Score: 2, Informative

      Assuming that "Redistributables" is defined to be the downloadable software development kit (as it is in licenses for similar MicroSoft SDKs) then I think you should not be worried.

      My reading would be that the GPL is indeed "Excluded" according to the clause above. (Again, the term/clause is not new in MS SDK licenses.) But this just means you can't e.g. redistribute the SDK itself under the GPL.

      The object files produced by a compiler are not considered to be derivative works of the compiler. So, you can distribute binaries compiled with this SDK under any license you desire. The analogy is that you can safely use Word to edit a document without Microsoft having a copyright claim on the resulting document.

  62. Sounds like a dig at GPL really deep by Gopal.V · · Score: 3, Interesting
    Read excerpt:

    (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

  63. Re:Yes please! Don't increase the cost for the res by Zork+the+Almighty · · Score: 3, Insightful

    I suppose landfills full of cds are "free" as well.

    --

    In Soviet America the banks rob you!
  64. The Trojan Horse by daemonc · · Score: 2, Interesting

    "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.
    1. Re:The Trojan Horse by Anonymous Coward · · Score: 2, Interesting

      Redistributables seem to include what is listed in REDIST.TXT and not what you compile. Can someone please list REDIST.TXT?

  65. Get your free Microsoft Debugger right here by kylef · · Score: 4, Informative
    Anyone know where to get a free visual debugger for Win32?

    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.)

  66. Code theft? by moosesocks · · Score: 4, Funny

    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
  67. Not an IDE by jsoderba · · Score: 2, Informative

    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.

  68. What about building GUIs ? by RGRistroph · · Score: 2, Interesting

    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 ?

  69. Re:Compatability does not seem so much of a proble by Cuthalion · · Score: 3, Insightful

    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!
  70. Sorry, but... by bonch · · Score: 2, Insightful

    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?

    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 .NET Framework SDK is free.

  71. Uh...what a ridiculous post by bonch · · Score: 3, Insightful

    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."

    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 .NET apps"--.NET has been a free download since the very beginning.

    Come on, guys, let's stay rational here.

  72. Re:Edit with VC6, use Scons to build.. by baxissimo · · Score: 4, Informative
    There could be switches whose meanings have changed slightly, but I just ran the two versions of "cl.exe /?" and compared the output of the two. Here's the list of differences:

    OPTIONS THAT WERE IN VC6 BUT AREN'T IN VC7 cl.exe:
    /GD optimize for Windows DLL
    /noBool disable "bool" keyword
    NEW VC7 cl.exe OPTIONS:
    /AI<dir> add to assembly search path
    /FU<file> forced using assembly/module
    /Fx merge injected code to file
    /G7 optimize for Pentium 4 or Athlon
    /GH enable _pexit function call
    /GL[-] enable link-time code generation
    /GS enable security checks
    /GT generate fiber-safe TLS accesses
    /QIfist[-] use FIST instead of ftol()
    /RTC1 Enable fast checks (/RTCsu)
    /RTCc Convert to smaller type checks
    /RTCs Stack Frame runtime checking
    /RTCu Uninitialized local usage checks
    /WL enable one line diagnostics
    /Wall enable all warnings
    /Wp64 enable 64 bit porting warnings
    /Y- disable all PCH options
    /Yl[sym] inject .PCH ref for debug lib
    /Zc:arg1[,arg2] C++ language conformance, where arguments can be: forScope - enforce Standard C++ for scoping rules wchar_t - wchar_t is the native type, not a typedef
    /arch:<SSE|SSE2> minimum CPU architecture requirements, one of: SSE - enable use of instructions available with SSE enabled CPUs SSE2 - enable use of instructions available with SSE2 enabled CPUs
    /clr[:noAssembly] compile for the common language runtime noAssembly - do not produce an assembly
    /showIncludes show include file names
    /w<l><n> set warning level 1-4 for n
    /wd<n> disable warning n
    /we<n> treat warning n as an error
    /wo<n> issue warning n once
    @<file> options response file
    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:
    C:\Program Files\MSVC++2003>cl /nobool
    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3052 for 80x86
    Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

    cl : Command line warning D4002 : ignoring unknown option '/nobool'
    cl : Command line error D2003 : missing source filename
    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!
  73. Re:They're just defending their turf. by mingot · · Score: 2, Insightful

    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.

  74. Re:Yes please! Don't increase the cost for the res by Kalak · · Score: 2, Informative

    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 .hack)
  75. Re:I suppose Electric Fence and Valgrind don't cou by wbtotb · · Score: 2, Informative

    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.

  76. Um, huh? by devphil · · Score: 2, Informative
    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.

    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.

    There used to be a barrier to getting *nix stuff to Windows.

    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)
  77. EULA section 3 by the_greywolf · · Score: 4, 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.

    --
    grey wolf
    LET FORTRAN DIE!
    1. Re:EULA section 3 by the_greywolf · · Score: 2, Interesting

      that's what i want to know. it reads as if it applies to anything linked to the redistributables.

      --
      grey wolf
      LET FORTRAN DIE!
  78. The Full EULA per request (sans francais) by the_greywolf · · Score: 2, Informative

    END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE

    MICROSOFT VISUAL C++ TOOLKIT 2003

    IMPORTANT-READ CAREFULLY: This End-User License Agreement (&#147;EULA&#148;) is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation (&#147;Microsoft&#148;) 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, &#147;online&#148; or electronic documentation, and Internet-based services (&#147;Software&#148;). 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 &#147;Samples&#148; in REDIST.TXT or elsewhere in the Software (&#147;Sample Code&#148;) 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 (&#147;Redistributable Code&#148;). 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 &#147;Redistributables&#148;) 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 (&#147;Licensee Software&#148;); (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 &#147;break-the-seal&#148;, &#147;click-wrap&#148; or signed), with terms no less protective than those contained in this EULA; (iv) not to use Microsoft&#146;s name, logo, or trademarks to market the Licensee S

    --
    grey wolf
    LET FORTRAN DIE!
  79. 6502 by Anonymous Coward · · Score: 2, Interesting

    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.

  80. Obligartory SNL ref by Rick+and+Roll · · Score: 2, Funny
    When I was a kid, if we were lucky enough to have a modem, we would have to wait a full minute for it to connect, and then another minute for each page of text, AND WE LIKED IT!

    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!

  81. Re:Nothing new - This has been available for years by Anonymous Coward · · Score: 2, Interesting

    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.

  82. Re:Wait a minute... by Ilgaz · · Score: 2, Funny

    I am not sure: http://sourceforge.net/projects/wix

    Thats free from MS and... opensource and... hosted at Sourceforge!

    Armageddon is coming, run! :)

  83. Using the optimizing compiler in Visual Studio? by david_christie · · Score: 2, Interesting

    Has anyone managed to apply this download to a Visual Studio .NET 2003 Standard installation, to get the benefits of an optimizing compiler?

    Standard edition disables the optimizing compiler. You have to pay for Professional edition to get the optimizer. Being cheap, and not needing all the .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?

    --
    "The Internet is a sphere whose center is wherever there is intelligence." (Apologies to HDT.)