Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
GNU is Not Unix Programming Technology

GCC 4.0.0 Released 680

busfahrer writes "Version 4.0.0 of the GNU Compiler Collection has been released. You can read the changelog or you can download the source tarball. The new version finally features SSA for trees, allowing for a completely new optimization framework." The changelog is pretty lengthy, and there's updates for every language supported from Ada to Java in addition to the usual flavors of C.
This discussion has been archived. No new comments can be posted.

GCC 4.0.0 Released

Comments Filter:
  • by Anonymous Coward on Thursday April 21, 2005 @10:21PM (#12309623)
    Yes, I was curious what SSA trees are, so I clicked the link. I realize this is slashdot, but do try and overcome your fears and RTFA or just google it [justfuckinggoogleit.com] to find this paper on SSA [uiuc.edu]. :)
  • src tarball link? (Score:2, Insightful)

    by codergeek42 ( 792304 ) <peter@thecodergeek.com> on Thursday April 21, 2005 @10:30PM (#12309673) Homepage Journal
    Why didn't the poster just link to a list of mirrors? I don't want my favorite compiler's source to be unavailable =(
  • Misplaced blame (Score:5, Insightful)

    by tepples ( 727027 ) <tepplesNO@SPAMgmail.com> on Thursday April 21, 2005 @10:35PM (#12309708) Homepage Journal

    Did you not get pleasure out of things being errors in 3.0 that weren't even warnings in 2.95?

    At least the maintainers of the ISO C++ standard did.

    GCC motto: "What code can we break today?

    Blame the standards committee, not the GCC maintainers.

  • Re:Moving fast (Score:3, Insightful)

    by Anonymous Coward on Thursday April 21, 2005 @10:41PM (#12309745)
    There are a hell of a lot more users that depend on GCC then the paltry Apple userbase.

    GCC is pretty much the standard for the industry.. there are faster, and more specialized, but GCC is the standard.

    Linux/Unix/BSD/etc, IBM, servers, clients, embedded platforms, all hosts of different computers.

    Hell if you just look at the embedded computers there are more of those then all the different desktop computers (Windows + *nix + Apple) put together.

  • Re:debian (Score:5, Insightful)

    by dhakbar ( 783117 ) on Thursday April 21, 2005 @10:48PM (#12309803)
    I am curious why this AC's comment was modded troll. Is Debian's release cycle truly so slow that what appears to be an honest curiosity is modded as a troll?
  • by vlad_petric ( 94134 ) on Thursday April 21, 2005 @11:04PM (#12309910) Homepage
    The main problem is the C language. While vectorizing a loop is generally not that difficult, figuring out if it's the right thing to do is extremely tough. To do that, you have to "prove" that iterations of a loop are independent of each other. This, in turn, requires good pointer alias analysis, and gcc isn't doing it well enough yet. BTW ... a language like Fortran, that doesn't have pointers at all, is much easier to vectorize; that's one of the reasons a lot of scientific codes are still in Fortran.

    Without automatic vectorization, the performance benefit of compiling for 686 as opposed to 386 is simply minimal. A lot of people have done benchmarks on this, and found out that tuning for 686 with gcc only provides 1-2% improvements in the best case. Keep in mind that current X86 processors execute instructions out-of-order, so instruction scheduling for a specific pipeline is not going to do much (it's very important for in-order machines, though)

  • Any bechmarks (Score:2, Insightful)

    by DesiVideoGamer ( 863325 ) on Thursday April 21, 2005 @11:16PM (#12309960)
    Does anybody have some informal performance benchmarks between 4.0.0 and the last version? (particularly the runtime of the application)
  • Comment removed (Score:2, Insightful)

    by account_deleted ( 4530225 ) on Thursday April 21, 2005 @11:31PM (#12310058)
    Comment removed based on user account deletion
  • by Analog Squirrel ( 547794 ) on Thursday April 21, 2005 @11:33PM (#12310072) Homepage
    As I understand it - and I'm sure someone will correct me when I'm wrong - gcc is actually a suite of language-specific "front ends" which reduces a given language to a common intermediate form that is then compiled(and linked, etc) by the "back end" into the executable code. In a way you already have different compilers... they're just all grouped together in one package.
  • by 1lus10n ( 586635 ) on Friday April 22, 2005 @12:50AM (#12310471) Journal
    You have no concept of numbers. Both Linux and mac are minor on the desktop but close to 50% of the backend of the internet is handled by unix or unix like systems (not including apple). The vast majority of which use gcc or some derivative.

    Unix and its children and cousins on the back and front end probably double the total number of apple boxes out there. If not more so. Hell some numbers suggest that there actually are more linux desktops than mac desktops. Even if its close between apple and linux on the desktop (which is likely) the number of nix systems in use in general at least matches the number on either side (though they are not desktops).
  • by AHumbleOpinion ( 546848 ) on Friday April 22, 2005 @01:02AM (#12310518) Homepage
    You have no concept of numbers. Both Linux and mac are minor on the desktop but close to 50% of the backend of the internet is handled by unix or unix like systems (not including apple). The vast majority of which use gcc or some derivative.

    My concept of numbers is probably fine. Try this, desktops dwarf servers and such. So your 50% of a small number is not all that meaningful. ;-)
  • Re:Misplaced blame (Score:5, Insightful)

    by IntergalacticWalrus ( 720648 ) on Friday April 22, 2005 @01:02AM (#12310519)
    Your analogy is thoughtful but flawed. Unlike compilers, automobiles aren't built PRIOR to the solidification of their standards of manufacturing (yeah, thank God for that).
  • Re:Why? (Score:5, Insightful)

    by Sivar ( 316343 ) <charlesnburns[@]gmail...com> on Friday April 22, 2005 @01:04AM (#12310527)
    I know you were just poking fun but--

    Standards are the reason that computers are tolerable to use for any purpose.
    If a programmer can't be bothered to follow an international standard of his own language, there is no guarantee that the code is future-proof. One can hardly blame the compiler vendor, as we can't expect a compiler to mindlessly maintain backwards compatibility with every weird use of a bug and every bizarre code construct that has ever been supported in the past.

    The ability to compile code written for GCC in another compiler is a *good* thing. If it requires informing the programmer that their code has always been broken, then so be it. A little inconvenience is a small price to pay for standards compliance, or should we expect that the GCC authors "embrace and extend" C and other languages until so much code relies on weird GCC nuggets that programmers (and users) are "locked in" to using just that compiler? (But Douglas Adams forbid if Microsoft does the same thing!)

    Maybe I am missing something. If so, please enlighten me (This is not a sarcastic remark--I haven't done much research on what 4.0 has broken so I may be way out of line).

    Sheesh, for as hard as the GCC authors work, and for as much GCC has improved in the last 10 years, the contributers sure get a lot of flak. Anyone who doesn't contribute code themselves should be greatful (or at least appreciative) of their efforts, even when they do make mistakes.
  • Re:Moving fast (Score:4, Insightful)

    by paulymer5 ( 765084 ) on Friday April 22, 2005 @01:46AM (#12310699)
    Absolutely.

    However, I was referring to the underutilization of Altivec in G4/G5 environments. Whereas SSA will be excellent across platforms, autovectorization will be especially significant on chipsets with powerful vector processors.

    Being able to optimize for this hardware, which is not as common or powerful in the x86 world, without much effort is indeed significant.

    I do not disagree with your assessment in the relative worth of SSA and vectorization, but I would simply like to clarify my post.
  • MINGW? (Score:3, Insightful)

    by Spy der Mann ( 805235 ) <`moc.liamg' `ta' `todhsals.nnamredyps'> on Friday April 22, 2005 @02:26AM (#12310839) Homepage Journal
    From what I've read, GCC 4 is blazingly fast, _AND_ provides dead code elimination (VERY important for windows users).

    So, any ideas of how long till the MINGW port is done?
  • Re:Moving fast (Score:2, Insightful)

    by garbletext ( 669861 ) on Friday April 22, 2005 @02:30AM (#12310853)
    I do not disagree with your assessment in the relative worth of SSA and vectorization, but I would simply like to clarify my post.
    If more people took the time to do things like this, slashdot would be a happier place. I commend you.
  • Re:Misplaced blame (Score:4, Insightful)

    by Alioth ( 221270 ) <no@spam> on Friday April 22, 2005 @04:37AM (#12311231) Journal
    So basically the GCC developers are damned if they do, damned if they don't - if they fix their bugs to make their compiler ISO C++ compliant, they are whined at for following the standard, if they preserve the bugs, they are whined at for not following the standard!

    Personally, I prefer GCC to be standards compliant.
  • by multipart ( 732754 ) on Friday April 22, 2005 @07:33AM (#12311700)
    Well, it's a shame then, that GCC 4.0 cannot even compile KDE. It miscompiles it.
  • by Anonymous Coward on Friday April 22, 2005 @08:03AM (#12311791)
    Yeah, it's really too bad that you can't compile stuff on other distros. How do people survive?
  • by A nonymous Coward ( 7548 ) * on Friday April 22, 2005 @09:33AM (#12312447)
    No. Being the largest single vendor is not the same as being larger than all other vendors combined. Apple may be larger than RedHat, and larger than Mandrake, and larger than Slackware, and larger than Debian, but that doesn't make Apple bigger than all of them combined.
  • You have no concept of numbers. Both Linux and mac are minor on the desktop but close to 50% of the backend of the internet is handled by unix or unix like systems (not including apple).

    The backend of the internet compared to the number of desktop machines? Talk about having no concept of numbers.

  • by jusdisgi ( 617863 ) on Friday April 22, 2005 @11:33AM (#12313652)

    Mac OS X itself is compiled with GCC 4. That was the point. Hence, all Mac users depend on GCC 4. That's 40 million and counting according to the latest figures.

    No, no, and no, jackass! Max OS X Tiger was compiled with gcc 4. Hence all Mac users do not depend on gcc 4. That is not 40 million and counting...it is currently zero. Give it a rest!

"If it ain't broke, don't fix it." - Bert Lantz

Working...