Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Technology

Comparing Linux C and C++ Compilers 379

ChaoticCoyote writes "I've posted a comparison of recent GCC versions (3.3, 3.4, and the coming 4.0) with Intel C++ 8.1, including several benchmarks and "state-of-the-product" reviews. The new article replaces an older piece I published in late 2002. This new comparison marks what I hope will be an ongoing series that tracks the quality of Linux compilers."
This discussion has been archived. No new comments can be posted.

Comparing Linux C and C++ Compilers

Comments Filter:
  • gcc! (Score:4, Insightful)

    by dosius ( 230542 ) <bridget@buric.co> on Saturday September 18, 2004 @08:15PM (#10288081) Journal
    well, GCC has one thing going for it - it's open source - and that's why I'm sticking with it. XD

    FP?

    Moll.
    • Re:gcc! (Score:5, Informative)

      by Anonymous Coward on Saturday September 18, 2004 @08:21PM (#10288114)
      GCC has other things going for it, too.

      ProPolice stack smashing protection patches for one. (and many others besides.)

      And cross-platform compatability. I can compile for targets. Like working on embedded products.

      Oh, and Distcc for realy big projects to get compiled quickly using easy to setup clusters.

      It's "correctness" is pretty high up their, too.

      Remember, for Unix:
      compatability, portability, flexibility > speed.

      If all you ever have to worry about is x86, then it's not that big of a problem, but for anything else there is no comparision to GCC that I am aware of.

      That it having it free software rocks.
      • Sorry but... ProPolice sucks.

        Nobody cares about stack smashing protection anymore these days. Besides, GCC 4.0 has libmudflap and -fmudflap for C and C++. While this isn't exactly the same as stack smashing protection, it is still very effective and much more efficient.

        It's not entirely without reason that IBM still hasn't posted ProPolice for inclusion in the FSF GCC mainline. The patch against SUSE's hammer branch has been floating around literally for years, but they know really only very few peopl

        • Re:gcc! (Score:3, Interesting)

          by vadim_t ( 324782 )
          Definitely a troll.

          I googled a bit to take a look at this mudflap thing. While it looks interesting, the system looks considerably more complicated than -fstack-protector and should be noticeably slower too.

          If I understood correctly, -fstack-protector simply adds a guard value and checks it hasn't been overwritten. The performance overhead is minimal. On the other hand, mudflap does some rather intensive checking that involves things like lookup tables, which obviously has to take more time than checking
        • Re:gcc! (Score:5, Insightful)

          by Xabraxas ( 654195 ) on Saturday September 18, 2004 @10:35PM (#10288742)
          Sorry but... ProPolice sucks.

          Why?

          Nobody cares about stack smashing protection anymore these days.

          OpenBSD [openbsd.org]

          Hardened Gentoo [gentoo.org]

          GCC 4.0 has libmudflap and -fmudflap for C and C++. While this isn't exactly the same as stack smashing protection, it is still very effective and much more efficient.

          Last time I checked GCC 4.0 wasn't stable.

          It's not entirely without reason that IBM still hasn't posted ProPolice for inclusion in the FSF GCC mainline. The patch against SUSE's hammer branch has been floating around literally for years, but they know really only very few people truely believe it makes a difference.

          That's crap. Propolice does exaclty what it is supposed to do. It doesn't protect against all stack smashing attacks but no one ever claimed that it did.

      • Re:gcc! (Score:5, Informative)

        by vadim_t ( 324782 ) on Saturday September 18, 2004 @09:22PM (#10288395) Homepage
        I don't know what's up with distcc, but every time I try it, it ends failing at some point. For example a few days I was installing Gentoo, with CFLAGS having -fstack-protector, and distcc crashed somewhere in the bootstrap due to the stack protection. I didn't figure out if it's some kind of conflict, or the stack protector kicked in due to a bug.

        I also heard reports from people about Gentoo not completing the basic installation when trying to do with with distcc even without the stack protector.

        The idea itself is really nice, but at least for me doesn't seem to work nearly as well as it should.
        • Re:gcc! (Score:4, Informative)

          by Xabraxas ( 654195 ) on Saturday September 18, 2004 @10:37PM (#10288752)
          I thought in the docs it says not to use distcc for the bootstrap process. Perhaps I am wrong but I thought I remember seeing that. Then again, it's been quite a while since I've installed Gentoo. Distcc works fine for me after installation though.
    • Re:gcc! (Score:5, Insightful)

      by antifoidulus ( 807088 ) on Saturday September 18, 2004 @08:53PM (#10288235) Homepage Journal
      Yeah but how important is ultra-high performance for you? If you are in charge of a multi-million dollar super computer, I would hope that you wouldn't say, "Well, I can get better performance out of this commerical compiler, but I disagree with commercial software, so I'll use open source"
      My view on the whole open-vs-closed debate is whatever gets the job done. There are a lot of open source tools that get the job done quite well, and I use those. But there are also occaisions where proprietary software gets what I need done quicker and easier, so I'll use that.
      • Re:gcc! (Score:2, Informative)

        Well unless the benchmark is not good, the icc was not faster than gcc and was slightly slower and had much larger binaries.

        I was supprised to see that.

        Maybe on a risc platform I could see buying a proprietary compiler.

    • Re:gcc! (Score:5, Funny)

      by k4_pacific ( 736911 ) <k4_pacific@yahoo . c om> on Saturday September 18, 2004 @09:03PM (#10288283) Homepage Journal
      In other words, you can compile GCC with the Intel compiler, but not the other way around.

      Seems like there's an "In Soviet Russia" joke in there somewhere.
    • Re:gcc! (Score:4, Insightful)

      by Sipos ( 731917 ) on Sunday September 19, 2004 @03:57AM (#10289685)
      It seemed to be surprisingly fast in these benchmarks. Did you see the size of the icc binaries. I am not sure what the options for icc mean but I guess they must be doing loop unrolling/peeling and aligning functions to improve the cache useage. If you enable these on gcc you can gain a huge increase in performance (at the expense of larger code size). It may well be able to produce faster binaries than icc for the same size in many of the tests.
    • Re:gcc! (Score:3, Informative)

      Contrary to popular opinion, x86 only make up less than half of Linux machines. Most Linux devices are embedded systems running on ARM, MIPS, PowerPC etc which, I'm sure, the Intel compiler does not support.
    • Re:gcc! (Score:5, Informative)

      by ken_i_m ( 61209 ) on Sunday September 19, 2004 @04:36AM (#10289772)
      The gcc is not a linux compiler. The g stands for Gnu. The linux kernel and the systems built around it are most often compiled with the gcc. The gcc existed long before Linus's first kernel release.
      --
      ken_i_m
      Founder, Bozeman Linux User Group
  • 3.5 vs. 4.0 (Score:4, Interesting)

    by slavemowgli ( 585321 ) on Saturday September 18, 2004 @08:19PM (#10288105) Homepage
    Interesting. Something I don't understand, though, is why the article talks about both gcc version 4.0 and "the upcoming-3.5"; will there be a 3.5 version before 4.0, or is that simply a typo?
    • Re:3.5 vs. 4.0 (Score:5, Informative)

      by kristofme ( 791986 ) on Saturday September 18, 2004 @08:23PM (#10288131)
      The current version of GCC is 3.4.2, and the next planned version will be called 4.0.0
      More info on the GCC site [gnu.org]
    • I'm not sure, but I'd guess that 4.0 is the place where major development is happening, where major changes/improvements are made, whereas 3.5 is where minor/incremental stuff is being done.
      • Re:3.5 vs. 4.0 (Score:4, Informative)

        by Aardpig ( 622459 ) on Saturday September 18, 2004 @09:20PM (#10288378)

        I'm not sure, but I'd guess that 4.0 is the place where major development is happening, where major changes/improvements are made, whereas 3.5 is where minor/incremental stuff is being done.

        I'm afraid you're wrong. 3.5 is the current development version of GCC. Amongst other things (which include a new Fortran 95 frontend -- hurrah!), it uses a wholly-new optimization architecture known as 'Tree-SSA'. This change is so radical that it was recently decided that 3.5 should actually be released as new major revision -- i.e., 4.0 -- rather than as 3.6 (recall that many open source projects use odd minor version numbers for development branches, and even ones for stable releases). Therefore, 4.0 is what 3.5 will be once it is released as stable.

        You may recall that a similar version renaming was mooted for the latest Linux kernel, but it was decided to leave it as 2.6 rather than 'upgrading' it to 3.0.

        • by devphil ( 51341 ) on Saturday September 18, 2004 @10:03PM (#10288573) Homepage


          ...does not apply to GCC. Never has. And it will not in the future, unless we radically change the way we do development and releases.

          3.4 follows 3.3 follows 3.2, and none of them were singled out as "developmental" or "experimentalal" or "extra stable". The experimental-vs-stable changes all take place before any release branch is made. There's more info on the website if you want.

        • Re:3.5 vs. 4.0 (Score:5, Interesting)

          by FullMetalAlchemist ( 811118 ) on Sunday September 19, 2004 @01:47AM (#10289414)
          Tree-SSA is not new, it's new to GCC but the concept of Single Static Assignment itself is ancient and using it for optimizing trees in not new.
          The problem is the GCC codebase is so badly designed it takes major changes to many parts to introduce a very old concept of SSA into it. So you can't take advantage of a generic SSA but have to introduce different patches for the system.

          Back in my university days we did SSA in our own compilers, for a 5 week course! GCC needs a complete rewrite or a switch to something like TenDRA [tendra.org], which right now produces good solid code, but not extremely optimized machinecode. On the other hand TenDRA is really well designed so it would catch up really fast if more people worked on it.
    • Re:3.5 vs. 4.0 (Score:5, Informative)

      by ChaoticCoyote ( 195677 ) on Saturday September 18, 2004 @09:50PM (#10288510) Homepage

      The GCC Steering Committee changed the next version of GCC from 3.5 to 4.0 while I was in the midst of writing the article. I missed changing a reference; the typo is now fixed.

  • Very informative. (Score:2, Interesting)

    by mind21_98 ( 18647 )
    Not bad. Not bad at all. Hopefully this will indeed spur development and add some competition to the otherwise small compiler market. :)
  • by ameoba ( 173803 ) on Saturday September 18, 2004 @08:21PM (#10288120)
    He claims to be running AMD64 Gentoo on a P4.

    Tycho (Homebrew)

    Dual Boot: Windows XP Professional
    Gentoo AMD64 GNU/Linux, kernel 2.6 SMP
    2.8GHz Pentium 4 w/HT, Intel D850EMV2, 533MHz FSB
    2x80GB Maxtor D740X 7200 RPM ATA-100 HD
    512MB PC800 RDRAM
    Radeon 9200 Pro, 128MB, NEC FE990


    That doesn't seem right; I know that Gentoo is able to adapt itself to your hardware, but this is a bit much for me to swallow.
    • That is interesting, but it depends on the level of optimization. You can optimize for AMD64 but still run on i386, or you can compile for AMD64 and it won't run anywhere else. At least, that's how it works for other x86-compatible processors, not sure if that's how AMD64 is handled or not.
    • Re:I don't get it... (Score:5, Informative)

      by ChaoticCoyote ( 195677 ) on Saturday September 18, 2004 @09:47PM (#10288498) Homepage

      It's called a "typo". Fixed.

  • Does the Intel compiler support any other chip architectures other than Intel architectures?
    Hmm?
  • reverted (Score:3, Informative)

    by Satai ( 111172 ) * on Saturday September 18, 2004 @08:24PM (#10288135)
    At work we (well, I admin and made the call) reverted from the 8 series of intel to the 7 series because of some issues with fortran 90 compilation, but I hadn't noticed the 8.1 release. I'll have to give it a shot...
  • Binary size (Score:3, Interesting)

    by Guidlib ( 814472 ) on Saturday September 18, 2004 @08:29PM (#10288154)
    Interesting that ICC seems to create consistently quite large binaries in comparison to GCC.
    • Re:Binary size (Score:4, Informative)

      by multipart ( 732754 ) on Saturday September 18, 2004 @08:41PM (#10288195)
      This mostly comes from specializing loops and jumps. ICC does aggressive loop versioning (even including runtime CPUID checks) and, especially with profile feedback (not tested in this benchmark, unfortunately) ICC will try aggressively to try cheap alternatives before trying the generic approach. Think about expensive instructions such as divides and indirect jumpes here. GCC doesn't do that.
  • by acceleriter ( 231439 ) on Saturday September 18, 2004 @08:30PM (#10288159)
    Even if the Intel compiler is faster, it's best not to get in the habit of becoming locked into any proprietary platform. How likely is it that features on which one could come to depend will be kept available on free platforms, much less future processors not made or controlled by Intel?
    • I'm certain that if there was some quirk that seperated ICC from other compilers that you just loved abusing, that it still wouldn't be terribly hard to make the few changes required to move to another compiler down the track. That's the beauty of using a language like C. So long as you conform to the standards in your code, you should be fine wherever you go. It seems almost like scaremongering to make the suggestion in the parent post.
      • by Anonymous Coward
        So when the purveyors of proprietary software engage in FUD against Free Software, that's marketing, but when OSS folks point out the drawbacks of imprisoned software, that's "scaremongering?"
    • it's best not to get in the habit of becoming locked into any proprietary platform. How likely is it that features on which one could come to depend will be kept available on free platforms
      And how likely is GCC to continue supporting the features you love? In case you haven't been checking, gcc-3.4 has removed some of its extensions to C grammar (the old joke used to go that gcc can accept a perl script as valid input). I use Gentoo, and after gcc-3.4 was released, I frequently encountered programs that r
    • How is using an Intel compiler locking you into a proprietary platform? Well-written code can be run through any compiler -- your main cost in switching compilers is figuring out the correct command-line switches, since they're all different...

      • Not true at all. Every compiler has specific extensions that are not implemented in other compilers, and they are support different parts of the standard with different levels of compliance. Template support for C++, for example, is different on every compiler, so there is a lot of cost in switching compilers if you have a large codebase.
        • That's funny: my templates, which are written to the C++ standard, work just fine under GCC, SCC, ICC, Comeau/EDG-based compilers like MSVC and BCC, and so on. Rather than make claims that things vary from compiler to compiler, why not show us some examples?
    • So you just have to make a habit of compiling using both compilers. With more and more projects using Tinderbox-like auto-compilation, it's easy.
    • by Screaming Lunatic ( 526975 ) on Saturday September 18, 2004 @09:04PM (#10288291) Homepage
      Even if the Intel compiler is faster, it's best not to get in the habit of becoming locked into any proprietary platform.

      That is why it is important to compile your code using multiple compilers. Prefer to write code to the C/C++ standards rather than to a particular compiler's idiosyncracies, GCC included. Different compilers also emit different warnings, helping one find bugs sooner.

      • Different compilers also emit different warnings, helping one find bugs sooner.


        You can say that again. We had a bug recently in some code that gcc compiled without any warnings or problems but the code didn't work right. Compiled it with another compiler and got a warning in the code, looked at it, and sure enough, that was a legitimate bug. Corrected that line of C, recompiled on that compiler and gcc and both executables worked.
      • by smcdow ( 114828 ) on Sunday September 19, 2004 @09:34AM (#10290503) Homepage
        Prefer to write code to the C/C++ standards rather than to a particular compiler's idiosyncracies, GCC included.

        Nonsense. GCC has way too many extremely useful "idiosyncracies" to abandon. If you don't know what they are, then you aren't paying attention.

        Better that other compiler makers mimic GCC's behavior. Better still is for the standards groups to adopt GCC as the reference standard for C and C++ compilers.
    • That being said, if your target audience is x86 systems anyway, ICC provides an alternative that can significantly (in some cases) boost performance.

      I think the key is to write good code first, then take advantage of the optimizations ICC provides second. Intel won't lock anyone in, but they'll put the lock on the door. Whether you close it behind yourself is your own choice.

      --Dan
  • 32 bit intel binaries will run on an Opteron and will probably give some gain as seen here at Aces.
    Aces article [aceshardware.com]
  • by Billly Gates ( 198444 ) on Saturday September 18, 2004 @08:46PM (#10288217) Journal
    I hear people complain about gnu C++ alot because its not as good as commercial compilers.

    However from what I see is the performance of the compiled code is the same with the exception that the resulting binaries are alot bigger.

    Maybe gcc is good on x86 but sucks on other architectures? I know the Sun and SGI geeks have complained for years that gcc does not run well on their platforms compared to expensive alternatives by their vendors.

    Has anyone run ICC and VC++.net on Windows? How does it compare to Borland and MS compilers under Windows2k?

  • Vectorization? (Score:5, Interesting)

    by r6144 ( 544027 ) <r6k.sohu@com> on Saturday September 18, 2004 @08:50PM (#10288226) Homepage Journal
    On some numerical tests icc seems to give twice faster code than gcc, and I think it is probably due to icc's automatic vectorization (the difference in almabench is said to be mainly due to the superior software SSE-based sin() and cos() functions used by ICC, correct me if this is wrong).

    I think the author had better mark the tests whose inner loops have been vectorized, since while some algorithms are easily vectorizable, some are not, so the performance of both are interesting. After all, we care most about the features (such as automatic vectorization) of the compiler, while benchmarks only very roughly reflect the existence of such features, the applicability of them, and their effects.

  • C++ compile times? (Score:2, Insightful)

    by tetromino ( 807969 )
    One of the main reasons I was looking forward to the new GCC versions was faster compile times for C++. Yet it seems that for povray (the only c++ source in the benchmark), the compile times consistently get worse with newer versions of gcc. Does no-one care about people who actually compile kde?
    • Let's see... compile time, which is a vast minority of the time spent with an application, or execution speed, which has increased.
      Nope. It's not that they don't care about you, it's that they have their priorities in order. Download the binary if it's going to cause you considerable pain to compile.
  • by Isldeur ( 125133 ) on Saturday September 18, 2004 @09:20PM (#10288376)

    You can tell this guy is a nerd, but it goes far beyond the pizza and mountain dew... Is that [coyotegulch.com] really an empty tub of frosting sitting my his computer?? :)

  • commercial thinking (Score:4, Informative)

    by foog ( 6321 ) <phygelus@yahoo.com> on Saturday September 18, 2004 @09:31PM (#10288427)
    The article seems to be rather narrowly from a computer hobbyists' point of view.

    It fails to point out that compile times are a fairly critical factor in programmer productivity. Yes, we should care that compile times with the Intel compilers look to be over 25% shorter than with gcc on average. (very rough eyeball estimate)

    I am amused, also, at how perplexed the author seems that IBM would ship Eclipse 2.x (and CDT 1.x, its associated C/C++ plugins) with the compiler. The CDT plug-ins for Eclipse 3.x were only ready a couple of months ago, so this is plainly a matter of how much time and money the Intel team had to test them with ICC. Or maybe they weren't available yet at all: when WAS the Intel 8.1 compiler released, anyway?
    • Compile time (Score:3, Interesting)

      I always get confused about people claiming compile time is important for development. It seems to be people who make a habbit of compiling everything from scratch. Haven't they heard of make? To me, link time is the limiting factor. When I make a change, I have to compile just the file I changed, or maybe a handfull of files if I changed an interface. And then I have to link all 236 files, which is where the time is spend.

      I can see it compile time being important to people who use the compiler as an
  • C/C++ vs. Fortran (Score:5, Interesting)

    by Aardpig ( 622459 ) on Saturday September 18, 2004 @09:50PM (#10288509)

    I find it interesting that there are only two C/C++ compilers available for Linux, as compared with seven [polyhedron.com] Fortran 90/95 compilers (soon to be eight with the release of GCC 4.0). This not only dispels the myth that Fortran is a dead language, it also suggests that there is much more of a competitive market in compiling numerical code, than in producing other types of software.

  • by kanly ( 216101 ) on Saturday September 18, 2004 @10:09PM (#10288598)
    I've been developing in C++ with gcc 3.3 for some time, and just moved to 3.4 for some testing. Thank god for unit tests. There's some bitop-heavy code that gets miscompiled with full optimization (-O2). In the process of trying to debug these (I'm not prepared to assume that they're the compiler's fault, it could certainly be my code invoking implementation-defined behavior,) I managed to get the compiler to choke with the -fschedule-insns flag with 'no free register' errors.

    In short, I don't have much confidence in the optimizer in 3.4. I'm trying to condense the problem to a testcase right now to submit a bug report.
  • by arose ( 644256 ) on Saturday September 18, 2004 @10:12PM (#10288610)
    Both [coyotegulch.com] Coke and Pepsi. What's the benchmark on those?
  • LLVM and C++ (Score:4, Interesting)

    by pb ( 1020 ) on Saturday September 18, 2004 @11:11PM (#10288933)
    Another thing to try--LLVM [uiuc.edu] can use g++ as a front-end to compile C++, and can often do further optimizations to speed things up even more. LLVM also has a C back-end, so you can benchmark other C compilers against each other too!

    Of course, the real fun will begin when it has completed Java and C# front-ends. :)
  • by Baudelaire76 ( 813799 ) on Saturday September 18, 2004 @11:29PM (#10289012)
    I'm always perplexed by such comparisons. Specifically, everyone talks about how awesome ICC is for numerical stuff. Well, I have written a fair amount of C++ code for computational fluid dynamics, and, for my code, GCC has always beaten ICC by a fairly wide margin (typically, 50 percent or more). Perhaps it has something to do with the fact that my code makes heavy use of templates? I don't really know.

    Also, in my experience, the C++ standard library that shipped with the previous versions of ICC just wasn't that good. Well, that may be a little harsh, but it was a source of considerable irritation to me that ICC's implementation of valarray did not even use expression templates (hello temporaries!). Yes, I know valarray isn't all that, but it is standard C++ (hence, in principle, code that uses it is portable). Once again, the GCC implementation was very much superior. This may be part of the reason why ICC now uses GCC headers.

    (As an aside, I did roll my own implementation of valarray that uses expression templates. I tested it with both GCC and ICC, and GCC still won.)

    I am now curious to test whether things are indeed better with ICC 8.1 (the last version I tested was 8.0). Maybe this time it will actually speed my code up rather than slow it down.
  • by jbn-o ( 555068 ) <mail@digitalcitizen.info> on Sunday September 19, 2004 @01:54AM (#10289429) Homepage

    Quoting the article:

    GCC is, of course, released under the GNU Public License, and I own a commercial license for the Intel compiler.

    Actually, the name of the license is the GNU General Public License. It is "General" because when the GNU project began there was no single license used throughout the project [free-soft.org]; .

    [...] while GCC has not quite reached the performance of its commercial competitor [...]

    GCC can be commercial [gnu.org] too -- many firms distribute copies of GCC for a fee. I believe the author should have said "proprietary" meaning that what the Intel compiler program does, exactly, is secret. As RMS said when describing a proprietary web video streaming application he didn't want MIT to use to distribute a feed of his talk on copyright and globalization [gnu.org]:

    "What it does is secret. You can't study it; you can't change it; and you certainly can't publish it in your own modified version. And those are among the freedoms that are essential in the definition of "free software."

    GCC, by contrast, is free software licensed under the GNU General Public License. Getting back to the article:

    These "coyote" benchmarks provide an excellent example of the advantages of "open" software development.

    Here I don't think "open" was the best choice of words, I think "free" would have been more accurate. The GNU Compiler Collection was originally the GNU C Compiler and first written by RMS. I guarantee you that RMS did not and does not now do work for the open source movement. He makes effort to make that point clear [gnu.org] (like when he corrected Mike Uretsky who made the same mistake). The FSF asks you not to lump their work in with the work of the open source movement [gnu.org]. Eben Moglen spoke at Harvard [groklaw.net] some months ago and also made this distinction. Prof. Moglen makes it clear why they are so adamant on this point:

    "We need to keep reminding people that what's at stake here is free speech. We need to keep reminding people that what we're doing is trying to keep the freedom of ideas in the 21st century, in a world where there are guys with little paste-it labels with price tags on it who would stick it on every idea on earth if it would make value for the shareholders. And what we have to do is to continue to reinforce the recognition that free speech in a technological society means technological free speech. I think we can do that. I think that's a deliverable message."

    I don't think he's overstating the case.

    Finally, there's a common misunderstood myth repeated in the end of the article:

    "Choice" is the key word here -- choice is good, be it in democracy or software. Intel provides a useful alternative to GCC for development on ia32 systems. One compiler might have a great environment for developing GUI code; another compiler might generate fast code. GPL-like freedom may be important -- or not -- as individual circumstances dictate.

    Many people believe this, I've even heard a variant of this myth being repeated by a representative of the Mozilla Foundation. Choice is no substitute for software freedom, in fact they speak to different aims entirely and in computer software choice is not as important as software freedom. If all we have are three web browsers to choose from (say, Microsoft Internet Explorer, Netscape, and Opera) choice is satisfied. B

    • Choice is no substitute for software freedom, in fact they speak to different aims entirely and in computer software choice is not as important as software freedom.

      You can not have freedom without choice. Competition in a diverse environment is the engine of evolution; any monoculture stagnates. I no more want a world run by RMS than I do a society that is beholding to Mr. Gates. A pox on both their monopolistic houses.

      I believe in the competition of ideas, and strongly support and defend the conce

  • Compatibility issues (Score:3, Interesting)

    by captaineo ( 87164 ) on Sunday September 19, 2004 @02:27AM (#10289497)
    Regardless of benchmarks, I consider the nasty backwards compatibility issues of GCC a serious problem. Virtually all of my Linux tech support time over the last two years has been spent messing with libstdc++ or libgcc_s versions to get various software packages to run. The problem is exacerbated because these libraries in turn are coupled tightly to glibc and pthreads, leading to more versioning headaches. My #1 wish for GCC is to get these libraries set in stone and make them as independent of glibc/pthread versioning as possible. I really want to be able to install a random C++ binary and have it work the first time.

    Also, the ability to compile a C++ DSO without requiring the exact same compiler version as the program that will load it, is a major need for commercial Linux software vendors.
  • by 0x0d0a ( 568518 ) on Sunday September 19, 2004 @03:39AM (#10289644) Journal
    I was empirically analyzing the gcc 3.3.3 optimizer a couple of days ago. Some interesting points:

    [argh...lameness filter refuses to allow source code]

    I'm providing a link [slashdot.org] to my journal entry so that I can post these examples.
  • by master_p ( 608214 ) on Sunday September 19, 2004 @05:09AM (#10289835)
    I am especially interested in GCC because I want to write a new front end (my own programming language). I don't want to mess with back ends, since I am not interested in that stuff; the linguistic part of the programming languages is far more interesting. But I can't find decent documentation anywhere on the internet for a GCC newbie. I tried looking at the source code, but it is an ugly mess of macros. The article of course mentions C/C++ only, but GCC is something more than that...I think it deserves a well written piece of how to extend it with new front ends.
    • If you don't want to mess with back-ends etc, why not get your program to spit out C code? Then compile that with gcc. I think that SmallEiffel started out this way.
  • by polyp2000 ( 444682 ) on Sunday September 19, 2004 @09:06AM (#10290349) Homepage Journal
    Does anyone know if it is possible to use one of the alternative compilers ICC , OpenWatcom or Corneau ? to build a linux system from scratch?

    I would be truely intrigued at what overall performance might be like.
  • by tundog ( 445786 ) on Sunday September 19, 2004 @09:34AM (#10290502) Homepage

    1983 called and it wants its programming language back.....

"Everything should be made as simple as possible, but not simpler." -- Albert Einstein

Working...