Slashdot Mirror


GCC 4.0.0 Released

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.

680 comments

  1. Moving fast by slapout · · Score: 4, Interesting

    Is it just me or did the jump from version 3 to 4 happen a lot faster than the one from 2 to 3?

    --
    Coder's Stone: The programming language quick ref for iPad
    1. Re:Moving fast by ari_j · · Score: 4, Funny

      There was a version 3?

    2. Re:Moving fast by NinjaFodder · · Score: 0, Offtopic

      Good point. How long until the programming community embraces this product? My workcenter typically holds our breath with any new release for the first few months and lets the gutsy businesses work through the initial bugs. http://freestuffcongas.coingo.net/free-ipod-conga- line.php

      --


      Cause everyone wants a free Xbox360
    3. Re:Moving fast by william_w_bush · · Score: 1

      2 to 3 was insanely slow because of the nature of the changes. 3 is almost a new compiler compared to 2, the fork happened rather far back and was more of a replacement than a rejoin, hence the buggery. 4 seems more like a new framework was added and a lot of the functionality was dropped into that framework, maybe some off-mainline work was merged also, but not on the level of 2-3.

      my guess at least.

      --
      The first rule of USENET is you do not talk about USENET.
    4. Re:Moving fast by JohnsonWax · · Score: 5, Interesting

      Apple wasn't working on GCC until version 3. I suspect a lot of other companies weren't either.

    5. Re:Moving fast by burns210 · · Score: 4, Interesting

      Apple is using it in their Tiger (OS X 10.4) release come the 29th of this month. So there is a few millions new GCC 4.0 users right there.

    6. Re:Moving fast by Anonymous Coward · · Score: 5, Funny

      Yes, it came with Slackware 5 and 6.

    7. Re:Moving fast by Anonymous Coward · · Score: 3, Insightful

      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.

    8. Re:Moving fast by IWannaBeAnAC · · Score: 1

      Wasn't that due to the gcc/egcs split?

    9. Re:Moving fast by Dink+Paisy · · Score: 2, Informative

      Well, there was the whole stagnation on 2, leading to the egcs fork and eventual reconciliation with the FSF branch. So it's not really surprising that development is happening a whole lot faster now.

      --

      Whoever corrects a mocker invites insult;
      whoever rebukes a wicked man incurs abuse.
      --Proverbs 9:7
    10. Re:Moving fast by Anonymous Coward · · Score: 0

      So has RMS won???

    11. Re:Moving fast by vandan · · Score: 1

      Don't think so. Slackware 7 had 2.95.something, or maybe even egs-1.something. It was a long time ago. But Slackware 5 and 6 certainly didn't have gcc-3.

    12. Re:Moving fast by Anonymous Coward · · Score: 0

      I think so, wasn't that around 2.72 or something?

    13. Re:Moving fast by adamjaskie · · Score: 2, Informative

      It was a joke. There WAS no Slackware 5. Or 6.

      --
      /usr/games/fortune
    14. Re:Moving fast by Anonymous Coward · · Score: 0

      The average user does not compile code, so your stats are bogus.

    15. Re:Moving fast by paulymer5 · · Score: 2, Interesting

      No, most Mac applications will soon be using the new version.

      Users, when discussing a compiler, is a nebulous term. Does one mean programmers developing for the compiler, or does one mean any person using the compiler directly through source or indirectly through binaries?

      I consider the latter more significant; autovectorization will be extremely important on G4 and G5 hardware, and Mac OS X binaries (by far the most popular distribution method for the platform) will soon reflect this.

    16. Re:Moving fast by vandan · · Score: 1

      Ah yes.
      I do remember that now.
      Like I said, it was a long time ago.
      Consider me slow.

    17. Re:Moving fast by Omniscientist · · Score: 1

      I remember quite clearly Slackware 5 being my first ever Linux OS on my computer.

    18. Re:Moving fast by Anonymous Coward · · Score: 0
    19. Re:Moving fast by Anonymous Coward · · Score: 0


      It would have been funnier to let the GP post stand uncorrected.

    20. Re:Moving fast by Daengbo · · Score: 1

      Mine was Mandrake 5.0. I guess that kind of makes us brethren, doesn't it?

    21. Re:Moving fast by Anonymous Coward · · Score: 0

      Yes, it came with Slackware 5 and 6.

      And was used to compile the release version of Netscape 5...

    22. Re:Moving fast by Anonymous Coward · · Score: 1, Informative

      > Apple wasn't working on GCC until version 3.

      Apple wasn't, but NexT sure was. Objective C was a hacked up gcc.

    23. Re:Moving fast by andreyw · · Score: 0, Troll

      Sure it wasn't Slackware 3.6?

    24. Re:Moving fast by norwoodites · · Score: 0

      That actually not quiet true, Apple^wNeXT has at least on person working on GCC since 1.x days.

    25. Re:Moving fast by ConceptJunkie · · Score: 2, Funny

      According to Slashdot users, I'm funny, insightful and interesting! So why aren't girls all over me?

      'Cause we (the people who find you funny, insightful and interesting) are pasty couch potatoes just like you. ;-)

      --
      You are in a maze of twisty little passages, all alike.
    26. Re:Moving fast by smokeslikeapoet · · Score: 3, Funny

      Mine was Gentoo 1.4, by the time I had it compiled it was 2004.3. Talk about a time warp.

    27. Re:Moving fast by bani · · Score: 2, Informative

      autovectorization is nice, but its like a peephole optimizer. it optimizes small bits of code.

      in terms of technology, SSA is far more important as it optimizes "the big picture".

    28. Re:Moving fast by Bradee-oh! · · Score: 3, Funny

      >Consider me slow.

      Done.

      --
      "This is Zombo Com, and welcome to you who have come to Zombo Com" - www.zombo.com
    29. Re:Moving fast by InvalidError · · Score: 2, Funny

      Or...

      "And next time I get mod points, you will also be overrated, redundant, flamebait and a troll."

    30. Re:Moving fast by paulymer5 · · Score: 4, Insightful

      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.

    31. Re:Moving fast by Anonymous Coward · · Score: 0

      But the all got crushed by Windows 4 through 94.

    32. Re:Moving fast by Billly+Gates · · Score: 2, Funny

      Debian user?

    33. Re:Moving fast by Anonymous Coward · · Score: 0

      > No, most Mac applications will soon be using the new version.

      Ridiclous. First of all, most big commerical mac apps use CodeWarrior, not GCC/XCode. That includes many Apple applications.

      Second, very few smaller developers are going to make 10.4-only software for a long time. They will continue to target 10.2/3 and that means GCC 3.x.

    34. Re:Moving fast by Anonymous Coward · · Score: 0

      Slackware 5 was the name given to the "current" tree before the version jump. 7.0 is exactly what was going to be 5.0, if I remember correctly.

    35. Re:Moving fast by garbletext · · Score: 2, Insightful
      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.
    36. Re:Moving fast by strider44 · · Score: 1

      mmm. I remember them arguing for ages as to whether to put JRE 3 or 4 into Slackware and whether that'd violate the GPL.

    37. Re:Moving fast by msh104 · · Score: 1

      http://news.bbc.co.uk/2/hi/science/nature/4469793. stm
      you happened to be there first human test subject?

    38. Re:Moving fast by paulymer5 · · Score: 1
      Ridiclous. First of all, most big commerical mac apps use CodeWarrior, not GCC/XCode. That includes many Apple applications.

      Sure, I'll agree with that. However, open source applications and smaller programs do use GCC/XCode. Also, with XCode 2.0, I wonder if more developers will be persuaded to switch.

      We're going to see a speedup across the system, not just from major applications. I'm looking forward to significantly improved X11, Apache, Tomcat, and so on, as I prefer to acquire my own source distributions rather than use Apple's provided binaries. Applications will come later, when the performance benefits of gcc 4.0 become apparent.

      Second, very few smaller developers are going to make 10.4-only software for a long time. They will continue to target 10.2/3 and that means GCC 3.x.

      You do know that you can build gcc on legacy hardware? I mean legacy hardware. Though you may not receive the benefits of G4 and G5 specific hardware optimization (such as autovectorization), you will still receive the new software-level optimizations.

      Further, just because you compile on one OS does not mean your binary will not work on a previous version. Indeed, developers do this often, targeting Jaguar or even 10.1 from a Panther environment. The hardware and chip instruction set does not change, only the available APIs and frameworks. Targeting 10.2/3 does not mean being limited to gcc 3.x. You can still fully benefit from Altivec ready code and SSA optimzed trees without any modifications in the system layer.

    39. Re:Moving fast by PJBonoVox · · Score: 1

      I remember quite clearly Slackware 5 being my first ever Linux OS on my computer.

      ...and the last? :)

    40. Re:Moving fast by PJBonoVox · · Score: 0, Offtopic

      About as funny as you then, you hairy assclown.

    41. Re:Moving fast by cafard · · Score: 1

      bruno@debian:~$ ls -l /usr/bin/gcc lrwxrwxrwx 1 root root 7 Mar 30 10:53 /usr/bin/gcc -> gcc-3.3

      --
      This post is awesome.
    42. Re:Moving fast by HuguesT · · Score: 1

      In general the Slashdot developer forum is made of much more reasonable people.

    43. Re:Moving fast by niteice · · Score: 1
      7.0 is exactly what was going to be 5.0, if I remember correctly.

      So I'm actually running Slackware 8.1...then what about this CD labeled "Slackware 8.1 i386"...uh...10.1...8.1...6...um....*brain implodes*
      --
      ROMANES EUNT DOMUS
    44. Re:Moving fast by Capt+James+McCarthy · · Score: 3, Funny

      Dude, this is the PC days, as we prefer the term "physically uninterested" as opposed to "couch potato."

      --
      There are no loopholes. It's either legal or it's not.
    45. Re:Moving fast by stitch · · Score: 2, Funny

      According to Slashdot users, I'm funny, insightful and interesting! So why aren't girls all over me?
      Ah, sorry about that. I'll lend you one when I'm finished.

    46. Re:Moving fast by Kazymyr · · Score: 2, Informative

      Yeah I know most people will chime in to say there never was a Slackware 5, but I happen to have a burned copy of it. :)

      [Slack 5 was the name it held in the beta or "current", which was later released as 7.0]

      --
      I hadn't known there were so many idiots in the world until I started using the Internet -Stanislaw Lem
    47. Re:Moving fast by mmkkbb · · Score: 1

      Was version 3 when they turned egcs into gcc?

      --
      -mkb
    48. Re:Moving fast by jusdisgi · · Score: 1

      Assuming you meant to address whomever this first human test subject was, you should seperate your clauses, like "You happened to be there, first human test subject?"

      Oh, and where exactly is the "there" in question?

      --
      Given a choice between free speech and free beer, most people will take the beer.
    49. Re:Moving fast by TG1 · · Score: 0

      They're not "users" of GCC 4 (or GCC 3.. whichever). Those few million OS X owners aren't users of GCC, they're simply using the product of a GCC compile. that doesn't make them users of GCC. I'm sure at least half that few million OS X owners aren't even aware of GCC.

    50. Re:Moving fast by Lars+T. · · Score: 1

      Tiger comes with gcc 4.0 (and was compiled with it). How many of "Linux/Unix/BSD/etc, IBM, servers, clients, embedded platforms, all hosts of different computers" are going to be recompiled with gcc 4.0 any time soon? So who is your daddy?

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    51. Re:Moving fast by cimetmc · · Score: 1

      Actually, you could consider EGCS as an intermediate version between GCC 2 and 3.
      After GCC 2.7, the most important GCC developers jumped ship and started the EGCS development based on the original GCC code, but introducing many new optimization ideas. After this, the original GCC development died. There was still a version 2.8, but that was not very popular. GCC 2.7.x however had a rather long carreer as system compiler for Linux kernels and for some time, the Linux kernel code depended on quirks of this compiler making it incompatible with EGCS or GCC 2.95 or later.

      As EGCS became more and more popular, the FSF approached the EGCS steeing comitee and proposed them to become the official GCC project. This lead to one intermediate release GCC 2.95 which was kind of the last version of the EGS code. After this, the GCC developers made some important changes to GCC leading to GCC 3.0. The main target for GCC 3.0 was better C++ support, but unfortunately, the architecture changes inside GCC lead to a major slowdown of the compiler while not making any significant change in the generated code quality. That is why GCC 3.0 did not generate too much enthusiam among developers (except for some C++ developers which finally got features that had been missing before).

      All in all, while from the version number point of view EGCS was labelled as GCC 2.9x, it was actually different enough from the old GCC 2 that you could consider it another major version between 2 and 3. As such, there is not really such a change of development speed between major new versions.

      Marcel

    52. Re:Moving fast by malxau · · Score: 2, Informative

      I have a prerelease build of OS X built with gcc 2.7. I remember the Apple engineers wanted to ship the original OS X with gcc 3.x, but 'it just wouldn't make it' and they used 2.96 instead. OS X 10.0 and 10.1 were built on that compiler.

    53. Re:Moving fast by bani · · Score: 0, Troll

      except when it comes to topics like mysql or php. then its a trollfest.

    54. Re:Moving fast by Omniscientist · · Score: 1

      Was 10.0. Since then I have switched to Gentoo. Slackware has died more times than the number of fingers on my hands. Gentoo has been the most stable Linux I have ever witnessed, and it has surprised the living hell out of me (it gets so much bad press).

    55. Re:Moving fast by Omniscientist · · Score: 1

      Thanks for proving I'm not a delusional fool :)

    56. Re:Moving fast by william_w_bush · · Score: 1

      yeah, that was the remerge between the 2 forks, or as obi-wan put it "before the dark times".

      --
      The first rule of USENET is you do not talk about USENET.
    57. Re:Moving fast by smokeslikeapoet · · Score: 1

      Oops, someone modded my post flamebait. I guess I should have qualified my remark by stating that I actually run Gentoo. I'm all in to that self deprecating humor stuff.

    58. Re:Moving fast by stonecypher · · Score: 1

      Not to mention that GCC is behind three nintendo and two sony platforms...

      --
      StoneCypher is Full of BS
  2. Lisp? by ari_j · · Score: 4, Funny

    Yeah, but does it have a Common Lisp compiler yet?

    1. Re:Lisp? by refactored · · Score: 1, Interesting
      Always had since way back when. It was called RTL. Classic Lisp syntax (function arg arg)

      Say
      info gccint and look at the entry on RTL.

      Ok, so I'm almost joking.

    2. Re:Lisp? by after · · Score: 0

      It seems to me that there are more comments on /. about moderated comments then the article itself.

      Just a thaught... I'm a little breezy from yesterday :)

    3. Re:Lisp? by sketerpot · · Score: 4, Informative

      Try SBCL, CMUCL, GCL, or CLISP. They're all good Lisp implementations. SBCL and CMUCL compile to native code directly and are probably the fastest free CL implemetations, GCL compiles via C (and therefore GCC), and CLISP has a bytecode interpreter.

    4. Re:Lisp? by jm92956n · · Score: 5, Funny
      every language supported from Ada to Java

      From A to J. Lisp starts with an L.

      Therefore, according to the summary... no.

      --
      An effective signature identifies a particular user amongst a base of thousands.
    5. Re:Lisp? by ari_j · · Score: 1

      GCL sucks, CLISP kinda sucks, and SBCL is just fun. I'm still waiting for a Lisp compiler that can compile to a standalone executable, though.

    6. Re:Lisp? by EZR-2000 · · Score: 1

      It is strange that GCC is lacking in Lisp capability; Richard Stallman is a huge Lisp fan. That's why it's in GNU Emacs, after all.

    7. Re:Lisp? by Anonymous Coward · · Score: 0

      Try arilisp. It's not full-featured nor complete because the developer is lazy as heck, but you can just compile it into a C program and run it :) Not the standalone executable that you were thinking of, but you can still make standalone lisp programs assuming you have the library (or if you statically link it)

      - Garfield

    8. Re:Lisp? by Anonymous Coward · · Score: 0

      RMS is now a scheme fan. He was flogging guile for everything a ways back.

    9. Re:Lisp? by pkhuong · · Score: 1

      It's the libraries, ********. .dll, .so, or, in CL's case, the whole image.

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    10. Re:Lisp? by Anonymous Coward · · Score: 0

      Forget the standalone executable... I rejected the idea of using Lisp for my project because I could not find a free compiler that looked suitable, mature, reasonably standards compliant, AND ran on Windows, Mac, and Linux.

      It's unfortunate that Lisp has no standard or even de facto standard way to interface with C. I personally think that has been Lisp's biggest downfall - because of that, there is no way to do sockets or threads or GUIs or whatever else that is portable between multiple implementations, short of writing your socket/thread library with conditional compilation to work with several different C interface libraries. I don't mind writing to a SINGLE C interface library (in fact, I've been doing just that, with Lua) but I sure as heck ain't gonna write to 3 different ones.

    11. Re:Lisp? by Theatetus · · Score: 4, Informative

      Yes, gcl (formerly known as kyoto common lisp). But it doesn't need the assembler/linker part of the toolchain so it's packaged separately. But I think it is "Part of the GNU Compiler Collection", for what that's worth, and it does depend on GCC.

      --
      All's true that is mistrusted
    12. Re:Lisp? by ari_j · · Score: 1

      There are libraries available that do this for you on many different Lisps.

    13. Re:Lisp? by Anonymous Coward · · Score: 0

      They found me. I don't know how, but they found me! - A

    14. Re:Lisp? by tchernobog · · Score: 2, Funny

      Oh, no!
      Still no support for LOGO, then!
      I've been waiting it for *years*!

      --
      42.
    15. Re:Lisp? by rob_squared · · Score: 0

      It's still funny that APL *actually* stands for A Programming Language.

      --
      I don't get it.
    16. Re:Lisp? by sketerpot · · Score: 1
      GCL is free, mature, runs on all the Bug Three OSes, and is a compiler. CLISP is also free, mature, and cross-platform, but it's generally slower than other CL implementations.

      The de facto way of interfacing with C in Common Lisp is the UFFI library. It runs on most Lisp implementations, but sadly it does not yet support GCL or CLISP. If you decide to play with either of those, you should probably just try its foreign function interface. CLISP in particular is noted for having an excellent FFI.

    17. Re:Lisp? by sketerpot · · Score: 1
      With SBCL it's not too hard to make standalone executable bundles. It won't give you a single executable file, though; you still need the SBCL executable along with your core file.

      You can do something similar on CLISP, although it could be a minor headache to make this work on multiple platforms.

      GCL can make standalone executables. This is how the Windows version of the Maxima computer algebra system is distributed: as a GCL-generated EXE file. It's also getting quite a bit faster, since they added some type inference code.

      ECL is fairly new, so it's not as mature as the others, but it looks very promising. It can generate standalone executable files on all major platforms and a few minor ones.

      I hope someone gets something out of this.

  3. i'm having horrible flashbacks... by ribo-bailey · · Score: 4, Interesting

    of the 2.95 -> 3.0 transition.

    1. Re:i'm having horrible flashbacks... by whovian · · Score: 2, Funny

      Keep your hands inside the moving vehicle.

      Just over a week ago Fedora Core 3 got its gcc4 package. Not that there's anything wrong with that, as long as it's a supported gcc version *cough*2.96*cough*

      --
      To-do List: Receive telemarketing call during a tornado warning. Check.
    2. Re:i'm having horrible flashbacks... by after · · Score: 0

      can you tell me what happened?

    3. Re:i'm having horrible flashbacks... by Anonymous Coward · · Score: 1, Interesting

      AFAIK, RedHat is the only company that sells commercial support specifically for GCC.

    4. Re:i'm having horrible flashbacks... by Anonymous Coward · · Score: 0

      So Debian compiles it's Woody kernels with 2.9x, not because it's so old, but 3.x had issues?

    5. Re:i'm having horrible flashbacks... by Wolfger · · Score: 1

      Heck, I'm having flashbacks of the transition from 3.2 to 3.4...

    6. Re:i'm having horrible flashbacks... by Anonymous Coward · · Score: 0

      Serves you right for not writing standard compliant code.

    7. Re:i'm having horrible flashbacks... by FuzzyBad-Mofo · · Score: 1

      Did someone say RedHat 7.0? Horrors..

    8. Re:i'm having horrible flashbacks... by Anonymous Coward · · Score: 0

      Redhat used a beta version of GCC that was known to be broken and already had it's problem fixed with newer versions of GCC before 7.0 was released.

      It was Redhat that fucked up, not the GCC people. Unless you considure allowing Redhat access to beta software a mistake.

      Of course since then Redhat has improved.

    9. Re:i'm having horrible flashbacks... by FuzzyBad-Mofo · · Score: 1

      Now that you mention it, maybe it wasn't RH 7.0 that I had so much trouble with (sorry, it's been years). SuSE 8.0 shipped with GCC 2.95, and I had lots of trouble compiling packages with it. Pretty nice distro otherwise.

    10. Re:i'm having horrible flashbacks... by bfizzle · · Score: 1

      I'm sure for the right price anyone would be willing to support it.

    11. Re:i'm having horrible flashbacks... by den_erpel · · Score: 2, Interesting

      Ah things no longer compiling :) True, it was very annoying and made you go through an extra code review while porting your code forward.

      In the long term, I think it was a very good thing: coding C (and C++, but didn't have that much experience on that) got much more stickt and in my experience, removes a lot of possible problems later on.

      If someone had a lot of problems porting 2.95 to 3.2, his code needed to be reveiwed anyway. It kind of removes the "boy" from "cowboys" in coders (experience is drawn from not-so-embedded systems).

      Based on the remarks obtained from the compiler for embedded code (they made a lot of sense) during the switch and gcc becoming more strict, we now even compile everything with -Werror.

      In our deeply embedded networking code, we got a speed improvement of 20% just switching to 3.4 (from 3.3) :) I am going to try to compile a new PowerPC toolchain one of these...

      Go GCC!

      --
      Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
    12. Re:i'm having horrible flashbacks... by __aahlyu4518 · · Score: 3, Funny

      ... kind of removes the "boy" from "cowboys" ...

      Which results in..... cows :-)

    13. Re:i'm having horrible flashbacks... by den_erpel · · Score: 2, Funny

      Which results in..... cows :-)

      I'm hoping for a mutation into GNUs :-P

      --
      Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
    14. Re:i'm having horrible flashbacks... by phcrack · · Score: 1

      Good God man. This is nothing compared to the great libc -> glibc move. There were T-shirts made up for that one.

    15. Re:i'm having horrible flashbacks... by multipart · · Score: 1

      There are in fact many many more companies selling support for GCC. The number of commercial GCC forks for embedded chips is simply huge. I know of at least a dozen companies selling GCC support. The most notable ones are of course Redhat, CodeSourcery, and Specifixinc, but there are many smaller ones, selling support for GCC for one or a fews weird embedded chips...

  4. Is anyone else curious what SSA trees are? by Da+w00t · · Score: 4, Interesting

    Not a C coder myself, (sticking mainly to perl).. I've just got to ask, what are SSA trees, and what benefit do they serve?

    --

    da w00t. mtfnpy?
    1. Re:Is anyone else curious what SSA trees are? by rbarreira · · Score: 3, Interesting

      An educated guess - are they a move in the direction of making code optimizations in gcc easier to code? I heard that a lot of optimization experts (you need to know a lot of graph theory for example) wouldn't work on gcc because of the difficulty of working with it for optimizations, so they would do their experiments in other compilers...

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    2. Re:Is anyone else curious what SSA trees are? by Entrope · · Score: 5, Informative

      Single static assignment is a way the compiler can rewrite the code (usually for optimization purposes) so each "variable" being analyzed is only written once. This makes a lot of optimizations easier to do, since it eliminates aliasing due to the programmer assigning different values to the same variable. You'd probably learn these things if you would RTFA.

    3. Re:Is anyone else curious what SSA trees are? by hey+hey+hey · · Score: 4, Informative

      Static Single Assignment, optimization techniques. Try here for more details.

    4. Re:Is anyone else curious what SSA trees are? by Anonymous Coward · · Score: 0

      Previous versions of GCC had language specific optimalizations. With the new tree SSA infrastructure, optimalization became generic, language independent. The new, cleaner infrastucture makes room for better code generation.

    5. Re:Is anyone else curious what SSA trees are? by Anonymous Coward · · Score: 1, Insightful

      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 to find this paper on SSA. :)

    6. Re:Is anyone else curious what SSA trees are? by GillBates0 · · Score: 5, Informative
      Wikipedia (as usual) has a nice article about the Static Single Assignment (SSA) form.

      To put it simply, SSA is an intermediate representation where each variable in a block is defined only *once*. If a variable is defined multiple times, the target of any subsequent definitions of the same variable is replaced by a new variable name.

      SSA helps to simplify later optimizations passes of a compiler (for example: eliminating unused definitions, etc) as described in greater detail (with examples and flowcharts) in the article linked to.

      That's the SSA form in short. Now I need to ask somebody the difference between the standard SSA form and "SSA for trees".

      --
      An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
    7. Re:Is anyone else curious what SSA trees are? by nofx_3 · · Score: 1

      So to the lay C coder, does this mean executables compiled with GCC 4 and optimized properly will run faster? use less memory? be less prone to errors???

      -kaplanfx

      --
      Visualize Whirled Peas
    8. Re:Is anyone else curious what SSA trees are? by tepples · · Score: 2, Informative

      does this mean executables compiled with GCC 4 and optimized properly will run faster?

      In the long run, yes. But for now, I'd imagine that because the SSA form is so new to the GCC codebase, the GCC maintainers are waiting for latent bugs to surface and be fixed before squeezing the most wizardly optimizations out of the SSA tree.

    9. Re:Is anyone else curious what SSA trees are? by Dink+Paisy · · Score: 4, Informative
      As other people have said, SSA is static single assignment. It means that each variable in the program is assigned in only one place. SSA is for optimization, and is usually done in intermediate forms generated by the compiler, rather than in programs written by a human in common computer languages such as C, C++, Perl or assembly languages.

      Trying to recall my knowledge of optimizing compilers:

      SSA makes optimization easier, since it is obvious where a variable was assigned (since it was assigned in only one location) and what value it contains (since there is only one value being assigned to it). The complexity moves to register allocation, where there can be many more variables to allocate because of SSA. Register allocation is Hard, but doing an ok job is quite possible. Most optimizations are impossible unless you can prove various properties about the variables involved, which is often much easier with variables in SSA form.

      --

      Whoever corrects a mocker invites insult;
      whoever rebukes a wicked man incurs abuse.
      --Proverbs 9:7
    10. Re:Is anyone else curious what SSA trees are? by ScytheBlade1 · · Score: 2, Informative

      Not that pertains to SSA trees, but...

      I wanted to know the differences in the optimization levels, so I made up a script[1] that compiled zlib and libpng with various optimizations on various archs and timed how long it took to run the test suite with 4 various images[2][3][4][5].

      I ran this test on a 2.8GHz Intel P4 HT proc, with 512MB Kingston HyperX DDR-400. Results are here.

      The X axis, is in the format "L-Z", where "L" is the libpng optimization level (3, 2, 1, 0, or s (size)), and "Z" is the zlib optimization level (3, 2, 1, 0, or s (size)). The Y axis is in seconds, and for precise values, look at the graph data vs the visual graph.

      The google logo[3] was useless, it's far too small to give me accurate results. However, if you compare the comic[5], the difference is 0.665 seconds... while this may not seem *huge*, in the case of a server where every tenth of a second counts, multiply the time by requests and compare the two. In the simple case of a libpng test case (opens a PNG image, re-writes it, compares the old to the new), optimizations matter, and a lot.

      Of course, some code can be optimized more than others, and there is a large number of variables to take into account, but I'd hope that booting into single user mode and running this in a terminal should remove as much of that as possible.

      The thing is, very few people are going to notice the 2/3rds of a second optimizations give you, vs the hours spent compiling OpenOffice.


      Not linked due to bandwidth reasons (384kbps upstream = teh suck)
      [1]http://www.brantleyonline.com/sf.sh
      [2] Tranqulity - @ gallery.artofgregmartin.com - down due to bandwidth, but it's a 1.4MB file (PNG format), 1600x1200, using a large variety of blues and blacks.
      [3]http://www.google.com/intl/en/images/logo.gif
      [4]Screenshot of OSX on dual monitors, large amount of windows, varied transparancies, 1440x576, 570.2kb. (not linked due to bandwidth)
      [5]http://www.applegeeks.com/comic_archive/viewcom ic.php?issue=134
      Note: if you use the script, please, PLEASE, mirror the images LOCALLY and use that instead...

    11. Re:Is anyone else curious what SSA trees are? by mindriot · · Score: 4, Informative

      Hmm. Funny. Seems like perfect timing, in retrospect. I just held a presentation on SSA (and efficiently transforming code into SSA) today.

      Get the slides here.

      HTH

    12. Re:Is anyone else curious what SSA trees are? by IvyMike · · Score: 5, Informative

      There have been several good answers to your question, but if you're really new to compilers, you might want a little more context. Want a quick lesson in how compilers work? If you're willing to accept some gross oversimplifications, here's how most modern compilers work:

      1) Tokenize the input. For example, if you were compiling perl, you might choose to turn "print $foo" into three tokens; KEYWORD_PRINT, TYPE_SCALAR, and IDENTIFIER('foo'). The output is typically a stream of tokens. This step might be done by lex or flex.

      2) Parse the sequence of tokens using a set of rules called a grammar. For example, "TYPE_SCALAR" followed by "IDENTIFIER()" is might match a rule to generate a variable called "$foo", and "KEYWORD_PRINT" followed by a variable means call the function print on the contents of the variable. The output is typically an abstract syntax tree (AST); a high-level data structure representing the program. This step might be done by yacc or bison.

      3) Match the AST against a series of rules to output the final code. This might actually be two steps; you might generate something into a low-level register transfer language (RTL) that looks very much like assembly, and then turn THAT into actual machine instructions.

      At each stage, you might choose to optimize the output. You might also insert optimizations passes between steps. (For example, you might insert a pass between 2 and 3 to optimize the AST into a simpler AST.)

      Before SSA, GCC sort of skipped making any high-level AST; it used to go from parsing almost immediately into a RTL. You can still optimize RTL, but since it's pretty low-level, it misses out on higher-level context and made some optimizations really difficult.

      SSA is simply a form used for the high-level AST. Why SSA? It is a very nice form to optimize. Read the wikipedia article for more details on why SSA is particularly useful for some optimizations.

      Page 181 of this PDF file from the 2003 GCC Summit explains the flow of the GCC compiler.

    13. Re:Is anyone else curious what SSA trees are? by Anonymous Coward · · Score: 1, Informative

      Trees are the earliest intermediate representation. Think "parse trees", annotated with all sorts of additional info. They are language-specific, but target-agnostic.

      If I understand it correctly, tree-ssa is just the parse tree, where each block has been converted to SSA. It's just the internal name for the SSA infrastructure.

      Of course, there's a link in the article summary to the GCC wiki page on tree-ssa. You might as well RTFA

    14. Re:Is anyone else curious what SSA trees are? by Aeiri · · Score: 1

      SSA is static single assignment. It means that each variable in the program is assigned in only one place

      Oooo... I can see it now *shudders*

      Just wait until people start confusing this with constants, and people are using SSA variables to store the number "5" and such.

    15. Re:Is anyone else curious what SSA trees are? by Anonymous Coward · · Score: 0

      Cool :)

      For interest's sake, could you reply to yourself in a day or two with the stats on how many times your presentation was downloaded?

      No reason, just curious :)

    16. Re:Is anyone else curious what SSA trees are? by MarcQuadra · · Score: 1

      Now I need to ask somebody the difference between the standard SSA form and "SSA for trees"

      Well amongst people I know, 'trees' are a euphemism for cannabis. Considering the habits and mannerisms of most OSS developers, I have little question that SSA was merged into GCC 'for trees'.

      On the other hand, if GCC keeps getting better at the rate it has, we have much to look forward to in the next few years. It might be painful when the compiler changes as much as it has, but the benefits outweigh the detriments, in my opinion.

      --
      "Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
    17. Re:Is anyone else curious what SSA trees are? by Jamori · · Score: 0

      I'm not sure there was a FA associated with this entry, actually. The closest thing is the changelog, which is going to mean next to nothing to someone who hasn't done a fair amount of programming.

    18. Re:Is anyone else curious what SSA trees are? by ZephyrXero · · Score: 2, Funny

      Great...now I have to wait for GCC 4.2 :P

      --
      "A truly wise man realizes he knows nothing."
    19. Re:Is anyone else curious what SSA trees are? by Cougem · · Score: 1

      If everyone RTFA we wouldn't need the comments.

    20. Re:Is anyone else curious what SSA trees are? by carnivore302 · · Score: 1

      You're right. Lot's of graph theory in optimizing compilers. Advanced Compiler Design and Implementation is a good book (both as an introduction, and more in-depth material) to get you going in this field. If, while browsing on amazon you encounter Writing Compilers and Interpreters, run like hell. Take it from me :-)

      --
      Please login to access my lawn
    21. Re:Is anyone else curious what SSA trees are? by node+3 · · Score: 1

      I've just got to ask, what are SSA trees, and what benefit do they serve?

      IIRC, they are part of the President's plan for Social Security. If, on retirement, your private Social Security account runs dry due to bad investments, the Social Security Administration gives you a little tree.

      As for what benefit they serve, no one's really sure.

    22. Re:Is anyone else curious what SSA trees are? by joib · · Score: 1

      I see that you're using latex-beamer? Congratulations! ;-)

      Yes, I recognized it since I use it myself. It's really cool.

    23. Re:Is anyone else curious what SSA trees are? by multipart · · Score: 1

      When you say "SSA form", my question is "SSA form for what?"

      Single Static Assignment form in itself means nothing. Now, add the name of the intermediate representation to it. In GCC, that's GIMPLE, and the underlying data structures are called 'tree', from Abstract Syntax Tree node.

      GIMPLE is the intermediate representation for function bodies that GCC will rewrite in SSA form. The proper name of GCC's SSA framework should be SSA for GIMPLE, but GIMPLE didn't exist when the tree-ssa project started. In fact there was not even a formal 'tree' based intermediate language at all. The first tree-ssa bits worked directly on the parse tree of the C front end. Only later a new source language independent and target machine independent intermediate representation was invented (first a rip-off of SIMPLE, used in McCat, later redesigned and "GNU-ified" to GIMPLE).

      GIMPLE is lowered GENERIC. GENERIC is the language that the front ends target (i.e. C/C++/Fortran compile to GENERIC). The middle-end lowers GENERIC to GIMPLE, rewrites GIMPLE into SSA form, optimizes it, rewrites it out of SSA form, and from there the *cough* good old (target specific( RTL optimization framework takes over again.

    24. Re:Is anyone else curious what SSA trees are? by Anonymous Coward · · Score: 0
      Nice one. That was interesting.

      What did you use to create the diagrams?

    25. Re:Is anyone else curious what SSA trees are? by Anonymous Coward · · Score: 1, Informative

      Match the AST against a series of rules to output the final code

      While this is what gcc does, most modern compilers don't because it's a bit slow. gcc only uses AST matching because (formerly) it tried to combine optimization and code generation. Once you're in SSA you don't need the codegen to optimize, so most modern SSA-based compilers generate simple correct but hideously inefficient code directly from the AST. All the real intelligence about the machine ISA is in the optimizer.

      gcc is kind of mid-way to becoming modern, since it has a module that uses SSA but it's shoehorned into the old classical architecture.

      SSA is simply a form used for the high-level AST.

      This is incorrect. SSA is a form used for the low-level RTL, after the AST has been processed into pseudocode. It comprises nodes that correspond to RTL instructions. The AST, by comparison, represents the type of things that exist in the original language - declaration nodes, for example - which no longer exist in the RTL and have no SSA equivalents.

    26. Re:Is anyone else curious what SSA trees are? by mindriot · · Score: 1

      Yup. It's a great package. :-) I never liked using Powerpoint (or OO.o Impress), especially when I required a lot of math. I did presentations in Latex before (don't remember what I used, slitex? foiltex?), but the beamer package is what convinced me to never touch ppt again. Doing all these overlays in latex is of course a bit of a pain (you don't want to see the tex source ;)), but at least I get a nice PDF with (almost) all the benefits of a regular powerpoint-like presentation.

      It's now already included as a standard package in tetex-3.0.

    27. Re:Is anyone else curious what SSA trees are? by mindriot · · Score: 1

      Heh. I'd love to, but the University's server doesn't provide me any access statistics...

  5. Sweetness by kronak · · Score: 5, Informative

    Glad to see they are targeting the AMD64 architecture for improvements.

    1. Re:Sweetness by lgalindo · · Score: 1

      Glad to see M Processors support

  6. debian by Anonymous Coward · · Score: 5, Funny

    i wonder when debian sid will integrate GCC 4.0...

    1. Re:debian by dhakbar · · Score: 5, Insightful

      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?

    2. Re:debian by alehmann · · Score: 5, Funny

      Pretty much, yeah.

    3. Re:debian by Anonymous Coward · · Score: 1, Interesting

      Sid is the unstable branch, so probably a whole lot sooner than you think. I think you mean that you wonder when debian *sarge* (or etch) will integrate it...

    4. Re:debian by EnderWiggin99 · · Score: 1

      It does seem a lot more relevant modded funny...

    5. Re:debian by Mongoose · · Score: 4, Informative

      Debian has had pre-releases for 4.0 for a while now. I guess you'd know that if you were a developer and actually used Debian. Hell I have mono 1.1.6 on Debian -- not many distros even have that yet. =)

    6. Re:debian by Anonymous Coward · · Score: 3, Interesting

      Is Debian's release cycle truly so slow that what appears to be an honest curiosity is modded as a troll?

      Kidding aside, no. Debian is legendary for being, ahem, slow about releases; they release when it's done, not on some date. Thus /. gets lots of jokes about Debian being slow. "I heard that Duke Nukem Forever will be open source and part of Debian's next release!!!11!" etc.

      If GCC 4.0 made changes that would affect the ability of the linker to link things, then GCC 4.0 would actually be slow to go into Debian. Packages would probably show up right away in Debian Experimental but otherwise would stay out for a long time.

      Debian Unstable ("sid") is where the new, potentially unstable, stuff goes once it is out of Experimental. Things in Unstable are automatically promoted into Testing if they look stable, which means the Debian guys can't put anything half-baked into Unstable. They would have to wait until the current Testing is released as Stable, and then they could do a big change like that. The current Testing ("sarge") is getting closer to actually shipping but I don't know when exactly.

      As long as GCC 4.0 simply produces better code, and doesn't break anything, it will show up in Unstable within a very short amount of time. I don't know enough about it to tell you whether this will happen or not, but I did read the release notes and I don't see anything in there that looks like linker breakage.

    7. Re:debian by Anonymous Coward · · Score: 1, Informative

      GCC4 release candidates have been in sid for months. Recompiling everything with gcc4 is not even likely to happen for a good long while, even with distros like gentoo.

    8. Re:debian by trouser · · Score: 1

      Interesting, I'm running Debian and I had to use the binary installer for Mono 1.0.6. Later binaries don't work, glibc version problem. The only packages available are in testing, don't know which version and no gtk-sharp, but I'm targetting Sarge. Are you using testing or perhaps some other package repository?

      --
      Now wash your hands.
    9. Re:debian by Trejkaz · · Score: 1

      Gentoo has it harder in a way. It doesn't tend to push forwards the version of GCC until everything compiles with it...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    10. Re:debian by aonaran · · Score: 1

      I don't know but I did an apt-get install of sometthing yesterday and it down loaded GCC 4.0 as a requirement. ... but then I'm using Ubuntu Hoary.

    11. Re:debian by thomasweber · · Score: 3, Informative

      > Is Debian's release cycle truly so slow that what appears to be an honest curiosity is modded as a troll?
      As Debian sid is the unstable branch of Debian, the release cycle is pretty unimportant for gcc's inclusion. Looking at the experimental branch, you'll find gcc 4.0 already included: http://packages.debian.org/experimental/devel/
      (w hich is probably an earlier release candidate).

      In sid itself exists a snapshot of gcc as of 20050319.

    12. Re:debian by Billly+Gates · · Score: 1

      Dumb question?

      Isn't woody still based on 2.95?

      No offense but its hard not to make fun of debian. Good lord.

    13. Re:debian by Anonymous Coward · · Score: 0

      Just to be extremely clear I'll add the package url:

      http://packages.debian.org/experimental/devel/gcc- 4.0 //fatal

    14. Re:debian by nathanh · · Score: 1

      I can't speak for the grandparent but I installed mono-1.1.6 by building the source package. Add "deb-src http://manno.name/debian/ hoary main cvs" to your sources.list, apt-get source mono, then dpkg-buildpackage. It builds pretty cleanly.

    15. Re:debian by Cro+Magnon · · Score: 1
      Isn't woody still based on 2.95?


      Well, yes, but only because they needed it to compile Linux 2.2!
      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    16. Re:debian by mrtom852 · · Score: 2, Informative

      For the impatient...

      deb http://ftp.us.debian.org/debian/ ../project/experimental main contrib non-free

      apt-get -t experimental update
      apt-get -t experimental install g++-4.0 gcc-4.0
    17. Re:debian by Alan · · Score: 1

      Well they have to, it's the default kernel!

    18. Re:debian by slapout · · Score: 1

      It's amazing what people will waste mod points on to mod down. They'll even mod down stuff that's currently at 1, even thought it would have stayed toward the bottom anyway.

      --
      Coder's Stone: The programming language quick ref for iPad
    19. Re:debian by petermgreen · · Score: 1

      maybe although there are issues for sid with sarge this close to release

      basically stuff that is part of the base system is no longer being allowed into sarge without human permission (as is normal in the last stages of release preperation) the result is the packages in sid need to be kept in a state where what they build can propogate into sarge.

      don't be surprised if this doesn't make it into sid until after sarge release.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  7. whoa by william_w_bush · · Score: 4, Interesting

    reading tfa and changelog intrigued me. optimisations aside im curious if this will be better able to thread on the new multi-core systems coming out, as tls has been spotty till 3.3 and glibc 2. maybe native xd support coming soon too?

    also, the c++ side makes me feel optimistic about ongoing support, which had been a big problem till 3.4.

    yes im x86/64 centric.

    --
    The first rule of USENET is you do not talk about USENET.
    1. Re:whoa by Anonymous Coward · · Score: 0

      optimisations aside im curious if this will be better able to thread on the new multi-core systems coming out, as tls has been spotty till 3.3 and glibc 2. maybe native xd support coming soon too?

      WTF are you talking about? Do you even know what any of that means or are you just posting acronyms to get modded as interesting by mods who think it sounds good?

      Multi-corse systems need threaded programs, which is done by the programmer. It's a global change, which induces a lot of problems with race conditions and such. If you can come up with an algorithm to transform a single-threaded to multithreaded program you'll probably be a runner-up for a Turing award.

      Now, what is tls? How has it been spotty? What does glibc have to do with gcc?

      There may be small things you can do to optimize for multithreaded programs, but most of these would also help with single-threaded ones (improve locality of reference, etc).

      Multithreaded programs... well, the semantics of moving around loads and stores get ... interesting. You need to at least tell the compiler at which points of your program you want the memory to look the way it looks in the source code, which requires language extensions. Even if you did implement this, testing the features becomes nearly impossible (I remember a discussion on the GCC mailing lists along these lines).

      So, please, mod parent down. Overrated, troll, etc.

    2. Re:whoa by AHumbleOpinion · · Score: 1

      Threading is not as bad as you make it seem. The language extensions are becoming "standardized" via OpenMP, something heavily pushed by both Intel and AMD. Intel and MS compilers already support it. First thing I'm going to go looking for in the gcc 4.0.0 docs is any reference to OpenMP.

      Your post is about as weak as the gp, it merely differs in polarity, and deserver negative moderation about the same.

    3. Re:whoa by Anonymous Coward · · Score: 1, Interesting

      Maybe. It's been a while since I looked at language extensions for multithreading and such. Still, I assume these extensions you speak of don't involve automatically adding threads to a program, or using multiple cores without spawning threads. Heck, I doubt the compiler does any optimization based on that. Most of the interactions between optimization and threading have to do with disabling some optimizations across certain sections.

      e.g. a global variable that is not changed but is reread inside a loop is never rechecked because the reads are hoisted out of the loop by the optimizer. If the variable is something that is supposed to be written to by another thread, your code doesn't work as expected. One way to deal with this is to mark the variable as volatile, as you'd do in Java, but that disables a lot of other optimizations on every use of the variable. Another way is to put a mark in the loop saying that the variable can be modified (using an asm statement in GCC IIRC).

      Basically there is very little a compiler can do to improve performance for multi-core systems.

      At least I knew what I was talking about. Apologies if it didn't come out very well, but I stil can't make sense of the OP.

      And BTW, I'm posting as AC, so you can be pretty sure I'm not karma whoring.

    4. Re:whoa by AHumbleOpinion · · Score: 3, Interesting

      ... I assume these extensions you speak of don't involve automatically adding threads to a program ...

      Actually they do just that. You put a #pragma omp before a for loop to have it implemented using threads. You put another #pragma omp before access to a shared variable to have access serialized. You never code to a specific API. The compiler automatically generates pthread calls, Win32 calls, etc as appropriate. Your code is portable. Lawrence Livermore has some nice examples but the seem to be down right now, www.llnl.gov.

    5. Re:whoa by Anonymous Coward · · Score: 0

      You're correct about moving from a single thread model to multi threaded, but that's about it.

      Multi-core CPU's don't require a multi-threaded application. They just appear to the OS as an SMP machine. The OS can schedule any process onto any of the CPU's. Obviously it helps if your process has multiple threads, because they may be able to run in parallel on the two CPU's.

      TLS is an ancronym for "Thread Local Storage", also known as "Thread Local Data". Normally automatic variables are global to all threads within a process, but TLS provides a mechanism for a thread to create data which is local to only itself.

      TLS is part of POSIX threads. POSIX threads on Linux are provided via. NPTL, which is part of Glibc. For TLS to work, it requires architecture specific support from the compiler, so it means co-operation between Glibc, GCC and Binutils. TLS support with NPTL has been spotty in the past because the necasary compiler support was missing for most architectures. That support has now improved to cover most of the popular architectures on which Linux & Glibc is available and where TLS would be expected to work.

      P.S: Writing a multi-threaded application is a peice of piss. Just remember to lock before accessing global data and you'll be fine. I'm compiling several thousand lines of asyncronous multi-threaded application in C++ as I write this.

  8. Great Timing by LordRPI · · Score: 1, Redundant

    I guess they couldn't have Apple release it first under the Developer Tools for Tiger :)

    1. Re:Great Timing by Rubel · · Score: 4, Informative
      Although the version of GCC 4 that Apple ships is from last October:
      gcc version 4.0.0 20041026
    2. Re:Great Timing by kronak · · Score: 0

      LOL, I'm actually quite excited that XCode 2.0 is going to ship with GCC 4.0.0

    3. Re:Great Timing by Anonymous Coward · · Score: 0
      I guess they couldn't have Apple release it first under the Developer Tools for Tiger :)

      Uh...they did. Just because it hasn't hit retail doesn't mean everyone isn't already using it.

    4. Re:Great Timing by Anonymous Coward · · Score: 2, Informative

      It's not a snapshot though, it's a fork (from that date). Apple has done some development on it.

    5. Re:Great Timing by Tharkban · · Score: 2, Informative

      Fedora Core 4 has literally been waiting for this.

      From Feburary: http://lwn.net/Articles/124798/

      That article includes the question/answer:
      - Does that mean Fedora Core 4 will ship with a pre-release compiler?
      We're not *that* crazy. If GCC 4.0 is delayed, we will either revert, or slip.

      --
      Tharkban (It is a signature after all)
  9. works great! by k4_pacific · · Score: 3, Funny

    I've already downloaded it and used it to recompile Firefox and I must say that gf@fd@k3nl&
    NO CARRIER

    --
    Unknown host pong.
    1. Re:works great! by NanoGator · · Score: 2, Funny

      "I've already downloaded it and used it to recompile Firefox and I must say that gf@fd@k3nl&
      NO CARRIER"


      So... what.. did you have FireFox open while trying to compile it?

      --
      "Derp de derp."
    2. Re:works great! by Foxxz · · Score: 4, Funny

      It looks like you used it to recompile your kernel or pppd program too!

      -foxxz

    3. Re:works great! by Anonymous Coward · · Score: 0

      I'm amazed that the NO CARRIER joke can be mode so often, and always get modded funny.

    4. Re:works great! by Anonymous Coward · · Score: 2, Informative

      I'm posting right now with Firefox CVS code compiled tonight with GCC 4.0.0 20050418 (prerelease). I just finished building GCC 4.0 a bit ago and Firefox is now compiling. I've seen no problems with the GCC prerelease builds from the last few weeks. Firefox seems a little more responsive than with builds using GCC 3.4.3.

    5. Re:works great! by decax · · Score: 0, Offtopic

      >> I've already downloaded it and used it to recompile Firefox and I must say that gf@fd@k3nl&
      >> NO CARRIER


      NO CARRIER?! wtf?!

      I guess you didn't use that version of GCC to recompile your time machine software!

    6. Re:works great! by Anonymous Coward · · Score: 1, Funny

      placebo is a wonderful thing

    7. Re:works great! by Anonymous Coward · · Score: 5, Funny

      > I'm amazed that the NO CARRIER joke can be mode so often, and always get modded funny.

      It doesn't always get modded fun&@^4-- NO CARRIER

    8. Re:works great! by Anonymous Coward · · Score: 0

      Moderators of your calibre are what make Slashdot's world-class moderation system what it is today.

    9. Re:works great! by Anonymous Coward · · Score: 0

      I choose to take that comment seriously.

    10. Re:works great! by Anonymous Coward · · Score: 0

      I ran HTML and JavaScript benchmarks in my GCC 3.4.3 and 4.0 builds and the 4.0 build really is a little faster.

  10. Trees by goodbadorugly · · Score: 4, Funny
    The new version finally features SSA for trees,

    So I guess its pretty safe to say that this release is for the birds

    *ducks*

    1. Re:Trees by Anonymous Coward · · Score: 0

      ducks in trees?

    2. Re:Trees by Anonymous Coward · · Score: 0

      Ducks are not arboreal.

    3. Re:Trees by rob_squared · · Score: 0

      Not just ducks, chickens, turkeys and all matter of birds as well.

      --
      I don't get it.
  11. gcl? by william_w_bush · · Score: 0

    think you mean gcl. it's not as integrated as gcj or g77 but it doesn't have to be because it's not the full toolchain.

    --
    The first rule of USENET is you do not talk about USENET.
  12. Testing the old girl out... by Julian2 · · Score: 1

    I'm one of those crazy people who built Linux From Scratch. I can't wait to figure out what will (won't?) build with GCC 4.0.0. (One thing's for sure... JDK and OOo won't.)

    1. Re:Testing the old girl out... by Anonymous Coward · · Score: 4, Informative

      I can't wait to figure out what will (won't?) build with GCC 4.0.0. (One thing's for sure... JDK and OOo won't.)

      FYI: Red Hat has a guy working full-time on building OOo on GCJ. His blog.. Not that everything works straight out-of-the-box. But it's not like nothing works either.

      (And from what I've heard, you can't expect it to work out of the box either. Sun's coders have done a terrible job and adding all kinds of dependencies on undocumented Sun-internal classes. So it probably doesn't work on Apple's JDK either, and that one is Sun-approved!)

    2. Re:Testing the old girl out... by Anonymous Coward · · Score: 0

      JDK or OOo?

      No loss there!!!

    3. Re:Testing the old girl out... by Lally+Singh · · Score: 1

      please do us a favor and try some timing tests for user-relevant tasks on your current system and the new build.

      --
      Care about electronic freedom? Consider donating to the EFF!
    4. Re:Testing the old girl out... by Anonymous Coward · · Score: 0

      nor will xorg IIRC.

    5. Re:Testing the old girl out... by Anonymous Coward · · Score: 0

      hmmm... I was under the impression that OOo worked with Blackdown Java... can't be too Sun-Java-centric

    6. Re:Testing the old girl out... by Anonymous Coward · · Score: 0

      i was under the impression that, OO HAS NOTHING to do with java. Except database functions..

    7. Re:Testing the old girl out... by m50d · · Score: 1

      Blackdown is just a repackaged Sun one as far as I can see, not a separate one like IBM's

      --
      I am trolling
    8. Re:Testing the old girl out... by Anonymous Coward · · Score: 0

      hmmm... I was under the impression that OOo worked with Blackdown Java... can't be too Sun-Java-centric

      Blackdown Java is Sun's Java ported to Linux. It has very few changes.

      Apple and IBM's implemenations (both based on Sun too though) are much more different, especially with support for anything in com.sun.*

  13. Re:What a coincidence by Anonymous Coward · · Score: 0

    I don't really get what you're saying.

    Referenced by ^ - are you talking about System.Text.RegularExpressions?

    Also, multiple versions of .NET Framework can peacefully co-exist on the same box. If your app is meant to run on 1.1, and not 2.0, it will run on 1.1.

  14. Is this spam? by Anonymous Coward · · Score: 0

    This looks suspiciously like spam to me...

  15. Re:What a coincidence by ergo98 · · Score: 0, Flamebait

    Nice troll.

    However note (this is for the grandparent to) - it isn't Visual Studio.NET - It's Visual Studio 2005.

  16. What SSA for trees is by Anonymous Coward · · Score: 0

    Are the GCC high level intermediate representation (RTL is the low level representation).
    Thus, SSA for trees means the high level IR in SSA form.
    Before 4.0, no optimizations but inlining were done on the high level IR. All of them were done on RTL.

  17. Why? by Mr.+Underbridge · · Score: 4, Funny
    of the 2.95 -> 3.0 transition.

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

    I'm sure all the contractors loved it! ;)

    GCC motto: "What code can we break today?

    1. Re:Why? by js7a · · Score: 1
      Did you not get pleasure out of things being errors in 3.0 that weren't even warnings in 2.95?
      Even though that took weeks from my life, I thought it was worth it in the long run. Most of the errors I got were fair enough.
    2. Re:Why? by Sivar · · Score: 5, Insightful

      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.

      --
      Computer Science is no more about computers than astronomy is about telescopes. --E. W. Dijkstra
    3. Re:Why? by Billly+Gates · · Score: 1

      Worse the libraries of libc5 and glibC were not compatible between the 2 compilers.

      It was a very very big hassle and pain in the ass. Also gcc 3.0 was not fully ansi ready and had bugs.

      gcc 3.2 became finally stable enough.

      VC++ could compile STL code in addition to older code for years before it become ISO certified to the latest version. Then porting was not a problem.

      Linux suffered a big problem due to compatibility issues with apps compilied with different versions of C and C++ and libraries. It was awefull.

      Linux become more bloated as a result too since libc5 was much smaller. The BSD's handled the transition alot better.

    4. Re:Why? by Theatetus · · Score: 2, Informative

      Man... I'd almost forgotten. the 5/6 libc switch was horrendous, much worse than the 2/3 gcc switch.

      Another big problem was that a lot of the early proprietary Linux software vendors hopped on board right before both of those switches, so there were a boatload of closed-source apps requiring ecgs and a patched libc5 or some other bizarre combination.

      --
      All's true that is mistrusted
    5. Re:Why? by shaitand · · Score: 1

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

      Not to disagree with your general post but you understand the whole Free Software thing makes it impossible for there to be technology and extensions in GCC that competitors can not adopt right?

      If Microsoft extends the problem is not just the extension but rather the fact the extension is proprietary so that competitors can not add it to their products as well.

    6. Re:Why? by DrXym · · Score: 1
      But 2.95 and 3.0 can live on the same box as can 3.x and 4.0. Where's the problem?

      Fix or don't fix your code. I doubt for the most part that updating to be more standards compliant it is a bad thing anyway. Not everyone uses gcc after all.

    7. Re:Why? by Anonymous Coward · · Score: 3, Informative

      Maybe I am missing something. If so, please enlighten me

      It frustrates me because I don't think older open source projects should just mysteriously break. For example, I have an older sublaptop which I got pretty cheaply on Ebay. There is some someware I would like to try on this machine, such as the last pre-Gecko version of Mozilla (which had a not of Netscape 4 code in it), that I can't get to compile in Gcc 3.4 because too much has changed since then.

      I don't like the fact the gcc breaks code the used to compile fine just two years ago. Another example: Abiword 1.x. Compiled just fine in 2002. Won't compile in 2005.

      The big advantage of open source licenses is that anyone can pick up some old open-source code which has been abandoned a few years back and make something useful out of it. Or would be able to, except for the fact that the people who write GCC continue to insist on breaking older code.

      I'm quite frustrated because I wasted hours trying to compile older code a few weeks ago and constantly hit a wall because of GCC's breakage.

      I think a well-written "How to fix things that don't compile" guide would be nice; I can usually make an educated guess and compile the code again, but obscure things like old-style variable-number-of-arguments code stump me.

      I think this is a general trend with some open source developers; they break code or configuration files without any regard for how much inconvenience they cause end users.

    8. Re:Why? by makomk · · Score: 1

      Inicdentally, one of the things removed is -fwritable-strings. Making running old ofuscated C programs that little bit harder.

    9. Re:Why? by m50d · · Score: 1

      GCC is GPL, so MS can't add the extension to VC++ without making it GPL, which they don't want to do, and possibly can't. (might not have rights to distribute source for some of the things included). So for practical purposes you are locked out of propriety compilers. And since gcc is there, to the best of my knowledge no-one has made a big effort to make another free compiler (maybe one or all of the BSDs has one, but there again they can't incorporate gcc code because they want to keep the core system BSD rather than gpl), that means you're practically locked into gcc, because there isn't and won't be another compiler that has those features.

      --
      I am trolling
    10. Re:Why? by Anonymous Coward · · Score: 0

      Just use an older compiler to compiler older software.
      There wouldn't be a problem if app writers didn't write their apps to depend on bugs.

    11. Re:Why? by Deusy · · Score: 1

      Well, this pretty much holds true for most large open source efforts. Just sub $PROJECT:

      "Sheesh, for as hard as the $PROJECT authors work, and for as much $PROJECT 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."

      --

      Free Gamer - Free games list and commentary

    12. Re:Why? by gaj · · Score: 2, Informative
      So you're saying that the smart developers over at Microsoft can't manage to code up support for new lanugage features themselves?

      While the standards compliance of pre-.net VC++ releases (and the C99 support of *any* VC++ releases) indicate that might well be the case, I'm inclined to think that it is not.

      I think it is much more sensable to conclude from your post that you are a) confused about the GPL, b) intentionally misrepresenting the situation, c) not the sharpest knife in the drawer or d) some combination of the above.

      Putting the gcc code under GPL doesn't put the language extensions under GPL.

    13. Re:Why? by Anonymous+Brave+Guy · · Score: 1
      Not to disagree with your general post but you understand the whole Free Software thing makes it impossible for there to be technology and extensions in GCC that competitors can not adopt right?

      So I've been told.

      Unfortunately, in the real world, porting that technology isn't free: at the very least, it takes time and resources. And since those extensions aren't standard, it may well not be the best use of whatever limited time and resources other compiler writers have.

      Moreover, the fact that GCC is GPL'd makes lifting its algorithms straight out a massive no-no for any commercial compiler vendor I can think of. Without wanting to restart the usual pointless holy war, this is an obvious case where the GPL being free-as-in-FSF and not free-as-in-completely may well be inhibiting reuse of existing code/design work.

      This all sounds a bit harsh, so if you can name me any other C++ compiler that effectively implements all the C++ extensions used in the major Linux-related projects, I'll concede that the reuse isn't being completely inhibited.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    14. Re:Why? by Anonymous+Brave+Guy · · Score: 1
      It frustrates me because I don't think older open source projects should just mysteriously break. For example, I have an older sublaptop which I got pretty cheaply on Ebay. There is some someware I would like to try on this machine, such as the last pre-Gecko version of Mozilla (which had a not of Netscape 4 code in it), that I can't get to compile in Gcc 3.4 because too much has changed since then.

      I understand your frustration, but it sounds like the original code wasn't written in standard C++ when it could have been; the standard has been around since about '97 for practical purposes, after all. This is a great example of why we have standards: if you write code to the standard, it will compile on any standard-compliant compiler (yeah, I know), and it will continue to compile on any future standard-compliant versions. If you rely on non-standard features or implementation-defined or undefined behaviour, then you're trusting to fate whether your code will continue to compile and work the same way in future.

      In other words, this is certainly a real problem, but I think you're attributing the blame to the wrong source. When you write

      Or would be able to, except for the fact that the people who write GCC continue to insist on breaking older code.

      you imply that the older code wasn't broken already, which probably isn't the case -- certainly if it was written as recently as 2002!

      FWIW, I work with a lot of code that was written pre-standard, and the pre-standard compilers to match, every day, and it can be very frustrating when things that are trivial in standard C++ take extra code clutter and testing time to achieve "just because". I feel your pain! :-)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    15. Re:Why? by MynockGuano · · Score: 1

      FWIW, I work with a lot of code that was written pre-standard, and the pre-standard compilers to match, every day, and it can be very frustrating when things that are trivial in standard C++ take extra code clutter and testing time to achieve "just because". I feel your pain! :-)

      Ironic how the non-standard shortcuts, now that everyone's been "forced" to code to standards, are now considered to be "extra code clutter." Makes one wonder why people used them in the first place. From this perspective, it sounds to me like the intentional "breakage" in GCC 3 was a Good Thing.

    16. Re:Why? by cortana · · Score: 1

      Of course they can. They just can't copy code verbatim (the clue is in the name--copyright). Doing so wouldn't be useful anyway since presumably the code for Gcc and Visual C++ are very different.

    17. Re:Why? by m50d · · Score: 1

      In that case nor does MS coding their language extensions under a propriety license make those extensions propriety. If MS adds an extension to their compiler they will have to explain what it does for developers to use it, meaning it's just as easy to add support for an MS extension to GCC as for MS to add support for a GCC extension. After all, it's simply a matter of coding it up, right?

      --
      I am trolling
    18. Re:Why? by dvdeug · · Score: 1

      except for the fact that the people who write GCC continue to insist on breaking older code.

      Why use the latest version of GCC, then? The reason they break old code is to improve the compiler; if you don't want the improvements, install the old version of the compiler.

    19. Re:Why? by m50d · · Score: 1

      If it's something simply implemented in c, like gcc's safe gets(), then it could usefully be straight copied. And if you're saying making them implement it independently is ok, how's that different from propriety MS extensions - why can't the gcc people copy them?

      --
      I am trolling
    20. Re:Why? by cortana · · Score: 1

      You'd have to ask the GCC people. Either Microsoft have patented their language extensions, or the developers don't think they're worth it.

    21. Re:Why? by entrigant · · Score: 1

      I'm quite frustrated because I wasted hours trying to compile older code a few weeks ago and constantly hit a wall because of GCC's breakage.


      The entire point of the parent post was that this is not an error in GCC. GCC is not breaking old code. It is forcing adherence to standards. The code was broken before GCC refused to compile it. The fact that it did compile at one time was a bug in GCC, and the person that wrote the code was using the bug as if it was a feature. Code should not be written for GCC. It should be written in standard C/C++ so that it may compile on all compilers that follow the standard.

      I think a well-written "How to fix things that don't compile" guide would be nice

      The changelog for each major revision includes a comprehensive list of every unsupported bug/feature that has become deprecated or fixed/removed. Usually they give a short example of what exactly changed. I do agree that a single guide listing all the major changes in the entire 3.x series with a more comprehensive description and better examples would be a good thing however. This is also the correct attitude to take. The broken code should be changed to adhere to standards instead of GCC remaining broken so it can compile non standard code.

      I think this is a general trend with some open source developers; they break code or configuration files without any regard for how much inconvenience they cause end users.

      These changes in GCC don't have much of an effect on the typical understanding of what an end user is. Most of the burden is on application developers and packagers. In all honesty most of the problems I've had with FOSS is that way. The most visible end user problem is when you have libraries that change their ABI or command line interface so frequently that frontends or other apps that use them just can't keep up. Take for example avifile or transcode. Many packages use avifile, and it isn't uncommon to need to install many different versions of avifile to accomodate those packages.

      Anyways this rant is going off topic. To close, I suppose to many advocates would consider strain on the developers and packagers as less of a problem than strain on the end user. I personally disagree, but I am also in the seemingly unpopular crowd who doesn't really want joe average using linux.

    22. Re:Why? by shaitand · · Score: 1

      Patents for starters. Second sometimes you need to know more about how a feature works than how to use it, particually if it is an algorithm that is applied without interaction. Microsoft does not document these algorithms, it considers them trade secrets or patents them.

      Simply because you can not copy the GCC code verbatim does not mean you can not look at the actual code and learn the algorithm from it and then implement it yourself.

    23. Re:Why? by shaitand · · Score: 1

      "Unfortunately, in the real world, porting that technology isn't free: at the very least, it takes time and resources. And since those extensions aren't standard, it may well not be the best use of whatever limited time and resources other compiler writers have."

      It is worth their time if they want those features. Just as the GCC developers considered those features to be worth their time to code to begin with. In all cases the developers of a compiler have to determine if any feature they would implement is worth their time to implement, whether it is in a standard or not.

      "Moreover, the fact that GCC is GPL'd makes lifting its algorithms straight out a massive no-no for any commercial compiler vendor I can think of. Without wanting to restart the usual pointless holy war, this is an obvious case where the GPL being free-as-in-FSF and not free-as-in-completely may well be inhibiting reuse of existing code/design work."

      Hardly, it is a case of the proprietary licenses being used by the commercial vendors being too restrictive to be compatible with the GPL (the gpl does not require gpl, it merely requires the same rights be granted when distributed). And the GPL does not prevent even commercial vendors from studying the algorithms and writing their own implementation.

      The big bomb that applies to proprietary extensions versus open source however is software patents.

    24. Re:Why? by gaj · · Score: 1

      Assuming that the extension is indeed clearly defined, and assuming that they don't use software patents to "protect" said extensions, and assuming that their compiler has the option to disable said extensions or at least warn about their use and non-standard nature, then they are no more "propriety" [sic] than GNU extensions.

    25. Re:Why? by m50d · · Score: 1

      No, you can't do that, because you're often infringing the copyright if you "rewrite" the code having seen it. Patents are another issue, patented extensions are horrible, but other than that it's no easier for MS to implement a gcc extension than for gcc to implement an MS one, and we shouldn't see gcc extensions as any better than non-patented extensions from anyone else.

      --
      I am trolling
    26. Re:Why? by shaitand · · Score: 1

      No, you're often at risk of someone claiming you are infringing the copyright if you write your own implementation of the algorithm. Even that can be avoided by having someone read and describe the algorithm and then yet another party write the actual code.

      We certainly should hold gpl'd compilers at a higher standard. There is no restriction in the GPL preventing MS from using a GCC extension. The restrictions are in the MS license.

      The ultimate fact that can not be worked around by any viewpoint on licenses however, is that ANYTHING in GCC is FULLY documented right down to the sourcecode. Microsoft intentionally neglects to fully document their API's and extensions.

      The arguement that they have to tell developers does not hold water. Some behaviors are incorrectly documented. Many 'features' and API calls are licensed only to those who are willing to pay a premium to find out about them. Some 'features' are kept entirely secret and only used by Microsoft and those who stumble upon them.

      Besides, the ultimate point of standards is not to compile on any compiler, it is to compile on any platform. Compiling on GCC IS compiling on virtually any platform. Compiling on VC++ is compiling on ONE platform.

  18. Autovectorization by QuantumG · · Score: 5, Interesting

    Correct me if I'm wrong here, but most Linux distributions are still i386 right? It's only the people who use Gentoo who actually compile everything with i686 options right? So, if autovectorization and all the other improvements in GCC 4.0 make binaries massively faster on modern platforms, how long will it be before the major binary based distributions (like Ubuntu) start making i686 the default and i386 an available alternative (like AMD64 is now).

    --
    How we know is more important than what we know.
    1. Re:Autovectorization by Dan+Berlin · · Score: 2

      Autovectorization is rarely going to make things "massively faster" for most applications. It just makes people feel better when they see their code is vectorized because they think it's cool. (Not that there aren't real applications for autovectorization, SIMD packing, etc. It's just not going to speed up OpenOffice, for example).

    2. Re:Autovectorization by timbo234 · · Score: 1

      Mandrake is i586 and has been almost since the beggining.

      --
      Pre-canned Evolution Links for all those Slashdot holy wars.
    3. Re:Autovectorization by WMD_88 · · Score: 1

      Autovectorization is mostly for Apple's benefit. Few want to hand-code AltiVec...so there you go.
      It probably won't help with SSE/SSE2 very much, since you need some specialized software to really take advantage of the new feature, and Linux doesn't have much of it (and where it does, like Cinelerra, it's written in asm).

    4. Re:Autovectorization by QuantumG · · Score: 4, Interesting

      I used to work for Codeplay, a company that made compilers for games development, and we were pretty surprised at the kinds of speedups you would get on non-gaming applications. Obviously compiling open source software was a great way to test our compiler. Basically any loop which performs the same operation on multiple data can be unrolled 4 times and vectorized. That's a massive speedup. So yes, I would expect OpenOffice to be faster.

      --
      How we know is more important than what we know.
    5. Re:Autovectorization by Dan+Berlin · · Score: 1

      This works on the incredibly false premise that these loops are a significant source of runtime.

    6. Re:Autovectorization by QuantumG · · Score: 1

      loops tend to be. Especially those nested ones.

      --
      How we know is more important than what we know.
    7. Re:Autovectorization by atomic-penguin · · Score: 1, Informative

      Correct me if I'm wrong here, but most Linux distributions are still i386 right?

      You are. Most packagers have assumed for at least a couple of years that everybody has a 486 or better. Some are so bold to assume you have a 586 or better. If you don't meet those requirements, you can compile it yourself (it's open-source).

      --
      /^([Ss]ame [Bb]at (time, |channel.)){2}$/
    8. Re:Autovectorization by Anonymous Coward · · Score: 0

      and like they said, the only loop openoffice seems to do a lot of times is the idle loop....

    9. Re:Autovectorization by SuperQ · · Score: 1

      actualy, I saw some comments about optimization by the Fedora guys, they compile Fedora to be OPTIMIZED for i686, but still instruction compatable with i386.

      specialized applications have code to auto-use different instructions if support is detected.

      I think things will continue to be i686 optimized, but still i386 compatable until amd64 arch is more prevelent.

      I don't know if this is changing for GCC 4.0/Fedora Core 4.. but I'm going to guess it is not.

    10. Re:Autovectorization by Anonymous Coward · · Score: 0

      Many of those distribution compiled for i386 contain additional flags that optimize for the i686 architechture as well. Slackware does this, for example.

    11. Re:Autovectorization by Anonymous Coward · · Score: 4, Informative

      Most linux distributions being built for i386 is mostly incorrect and when not, a half-truth.

      Fedora Core, for example, relies on the improved instructions for atomic operations found in 486 and newer processors, necessary for certain threading libraries. The rpm program itself requires a 586, if I don't remember wrong.

      Fedora Core also compiles all binaries optimized for P4. It was decided to use P4 optimizations, since these generally work just as well on Athlon processors, while Ahtlon optimizations is rather slow on a P4.

      Furthermore, for CPU intensive applications such as many audio and video applications, CPU optimizations such as MMX and SSE are automatically activated at runtime if the CPU supports it.

      The 'i386' in the name should really be called 'x86'. Of course, then there's also 'i686' packages, which basically mean 'x86 processors that support the CMOV instruction'. That is also wrong, as there are i686 processors which do not support CMOV, such as certain VIA and Cyrix variants.

      CMOV is basically the only useful addition to the x86 instruction set since the i486 for general purpose programs. And programs not fitting into that category, already have hand written asm for time critical sections, which can take advantage of MMX, SSE, 3DNow, Altivec or VIS.

    12. Re:Autovectorization by Anonymous Coward · · Score: 1, Funny


      What OO.org really needs is a parallelized vectorized optimized supersized linker.

    13. Re:Autovectorization by Kupek · · Score: 1

      Vectorized instructions really only make a difference when you're doing floating point operations on very large arrays. I don't think an Office productivity application does much of that.

    14. Re:Autovectorization by Anonymous Coward · · Score: 0

      Yes you are right about how optimization is done.
      No, It wont be changing. Fedora Core 4 test 2 is compiled with GCC 4 and is due out in a monthish.

    15. Re:Autovectorization by guacamole · · Score: 1

      Not entirely true. Some distributions use better optimizations than i386. For example, according to release notes RedHat and Fedora are optimized for Pentium 4 (but still run fine on older machines).

    16. Re:Autovectorization by mattdm · · Score: 3, Interesting

      Correct me if I'm wrong here, but most Linux distributions are still i386 right?

      Right in some ways, but importantly wrong in others. Red Hat and the Fedora Project, for example, are compiled using the i386 instruction set but optimized for i686. This means that the cmov instruction isn't available -- but apparently, it's not much of a win (and even a loss in some cases) on modern processors. And code which uses SSE or 3DNow or whathaveyou is usually carefully hand-coded and checked for at runtime.

      There's not really much advantage of switching away from this scheme, so I don't see it as worth the bother. Instead, x86_64 will eventually kill it all off and we'll move on to that.

    17. Re:Autovectorization by Anonymous Coward · · Score: 0

      maybe not the word processor, but the spreadsheet component sure as hell does...

    18. Re:Autovectorization by Kupek · · Score: 1

      Not really. By "very large" I mean the arrays are at least several MB. Most spreadsheets don't have that much data.

    19. Re:Autovectorization by Marcus+Meissner · · Score: 1

      SUSE is i586 optimized for 2 years now...

      Ciao, Marcus (SUSE developer)

    20. Re:Autovectorization by blastwave · · Score: 1

      Well, GCC 4.0.0 can be had for both Sparc and Intel x86 from Blastwave.org at :

      http://www.blastwave.org/testing/index.html

      I can't comment on Linux but I can say that Solaris ( and OpenSolaris SVR4 UNIX ) on Sparc and x86 and AMD64 ( and PowerPC soon ) is alive and well.

      Dennis at Blastwave.org
      http://www.blastwave.org/
      An OpenSolaris Community Site

    21. Re:Autovectorization by QuantumG · · Score: 2, Interesting

      You're like the 4th person to say that. The point of autovectorization is that all programs can benefit from SIMD instructions, not just the ones where programmers thought it might be a good idea.

      --
      How we know is more important than what we know.
    22. Re:Autovectorization by thalakan · · Score: 4, Informative

      Wrong. The SSE instruction set includes several instructions for doing vector integer ops, such as average and multiplication. These things are a huge speed win even in "average" applications, as the game compiler developer noted above. If you don't believe me, fire up a profiler and look at how much time an office app or web browser spends doing rectangle intersection calculations and TrueType font math.

      Also, there aren't nearly enough people using MOVNTDQ to avoid polluting the instruction pipeline and dumping useless garbage into the system cache. If you're copying stuff into main memory and you aren't going to use it for a while, use MOVNTDQ to get a big speed win. If you do need it cached, use MOVDQA to get both caching and 128 bit transfers in one instruction! We all paid for these fancy schmancy new instructions in our processors, and it's extremely annoying to see programmers not use them.

      --
      -- thalakan
    23. Re:Autovectorization by JohnsonWax · · Score: 1

      I strongly suspect autovectorization is one of those few things in GCC that will work substantially better on PPC than x86. Apple is investing HUGELY in autovectorization in GCC, and PPC is far and away their primary goal.

    24. Re:Autovectorization by stor · · Score: 1

      What OO.org really needs is a parallelized vectorized optimized supersized linker.

      With a twist of lemon.

      Cheers
      Stor

      --
      "Yeah well there's a lot of stuff that should be, but isn't"
    25. Re:Autovectorization by Anonymous Coward · · Score: 0

      I can't comment on Linux but I can say that Solaris ( and OpenSolaris SVR4 UNIX ) on Sparc

      Sparc-linux doesn't get a lot of test coverage - but it did get some last-minute fixes into 4.0.0 RC2 so it should be OK.

    26. Re:Autovectorization by joib · · Score: 1


      I strongly suspect autovectorization is one of those few things in GCC that will work substantially better on PPC than x86. Apple is investing HUGELY in autovectorization in GCC, and PPC is far and away their primary goal.


      Umm, no. The _hard_ thing about autovectorization is analyzing the source code and "seeing" which operations can be done in parallel. After you have done that choosing which asm instructions to generate (Altivec or SSE1/2/3) is a much simpler problem.

    27. Re:Autovectorization by Daniel · · Score: 1

      I'd imagine it would also speed up stuff like initializing an array to zero, although I doubt most programs spend a (relatively) large amount of time doing that.

      Daniel

      --
      Hurry up and jump on the individualist bandwagon!
    28. Re:Autovectorization by Kupek · · Score: 1

      You're right; I shouldn't have said "floating point operations". It's any operation done over a large array. As for how effective they are, I've only seen marginal gains with the SSE instructions on floating point intensive benchmarks with large data sets. That makes me rather skeptical about how effective they'd be in applications which aren't as compute bound.

    29. Re:Autovectorization by mattdm · · Score: 1

      Yeah, but I still don't see it happening with 32-bit x86 -- there's just not much point given that x86_64 is not just the way of the future, but increasingly the way of *now*. By the time gcc4 is mainstream, 32-bit x86 will be a niche -- and not the performance-critical niche.

    30. Re:Autovectorization by Anonymous Coward · · Score: 0

      Hmm, but some compiler functions used in program, which would tell compiler to safely use autovectorisation in certain segment of the code, would help much, wouldn't they? (and be in something like #ifdef GCC4 block of course).
      Is there something like that?

    31. Re:Autovectorization by Anonymous Coward · · Score: 0

      That wasn't very professional... I don't think you should have let it put your .sig on that.

    32. Re:Autovectorization by jmcneill · · Score: 1

      That is also wrong, as there are i686 processors which do not support CMOV, such as certain VIA and Cyrix variants.


      FYI, the "certain Cyrix variant" is the 6x86, which by default identifies itself as an i486 (by not supporting the CPUID instruction unless you explicitly enable it). Apart from CMOV, the 6x86 also didn't have a time-stamp counter, which prevented things like VMware from working. My first NetBSD and Linux experience was on a 6x86 PR133 -- I went through all of these pains in the past ;)

    33. Re:Autovectorization by cimetmc · · Score: 1

      I think there is always a misconception between what people think that i586 and i686 should mean and what GCC actually interprets it as being.
      For GCC, i586 is just an alias for Pentium, e.g. Intel's original Pentium processor, and i686 is an alias for Pentiumpro, eg. Intel's original Pentium pro processors. For these options, GCC tries to create optimal code for the corresponding Intel processors, but nor necessarily for any more or less compatible processors from other manufacturers.
      Maybe a lot of people don't know it, but GCC has actually a very rich set of processor selections and instead of just choosing between the old i386, i486, i586 and i686 settings, you can much more precisely specify what exact chaip you are using. For details see http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/i386-a nd-x86_002d64-Options.html#i386-and-x86_002d64-Opt ions

      As for CMOV being the only useful addition since the i486, I have to disagree. For integer code this may be true, but for floating point code there is a very important addition with the FCOMI, FCOMIP, FUCOMI and FUCOMIP instructions. This instructions allows floating point comparisions which directly set the main processor flags and therefore can directly be fllowed by conditional branch instructions. The old FCOM family of instrustions only set the coprocessor flags and you need a time consuming sequence of instructions to transfer the coprocessor flags to the processor flags in order to be able to make conditional branches based on floating point comparisions.
      Also, just like the CMOVcc instruction for interger registers, there are the equivalent FCOMVcc instructions for floating point registers.

      Marcel

    34. Re:Autovectorization by BobNET · · Score: 1

      Surprisingly, Slackware hasn't supported 386-class machines since 2003. Here's the note from the Changelog explaining why:

      This is GCC 3.3, compiled for
      a minimum CPU target of i486. Why i486 and not i386? Because the shared
      C++ libraries in gcc-3.2.x will require 486 opcodes even when a 386 target
      is used (so we already weren't compatible with the i386 for Slackware 9.0
      and nobody noticed :-). gcc-3.3 fixes this issue and allows you to build a
      386 compiler, but the fix is done in a way that produces binaries that are
      not compatible with gcc-3.2.x compiled binaries and which suffer a
      performance hit. To retain compatibility with Slackware 9.0, we'll have to
      use i486 (or better) as the compiler target for gcc-3.3. Therefore, it is
      time to say goodbye to i386 support in Slackware. I've surveyed 386 usage
      online, and the most common thing I see people say when someone asks about
      running Linux on a 386 is to "run Slackware", but then they also usually go
      on to say "be sure to get an OLD version, like 4.0, before glibc, because
      it'll be more efficient." Now, if that's the general advice, then I see no
      reason to continue 386 support in the latest Slackware (and indeed it's no
      longer easily possible). People with 386 machines aren't going to have the
      hard drive space for Slackware 9.1 in any case.
  19. Figured this had to happen by jtshaw · · Score: 4, Interesting

    When they announced the release of Apple 10.4 "Tiger" I noticed this page: At that point I kinda figured gcc 4.0.0 had to be out by April 29th since Apple claimed they were using it for OS X.

    1. Re:Figured this had to happen by jtshaw · · Score: 1

      drrr... http://www.apple.com/macosx/developertools/

      So that is what the preview button is for...

    2. Re:Figured this had to happen by k98sven · · Score: 5, Informative

      When they announced the release of Apple 10.4 "Tiger" I noticed this page: At that point I kinda figured gcc 4.0.0 had to be out by April 29th since Apple claimed they were using it for OS X.

      Well, you're wrong because GCC doesn't follow Apple's schedule, or anyone else's for that matter. Even a cursory glance at the GCC mailing list will tell you that.

      The reason Apple can promise this is that they're not actually shipping GCC 4. They're shipping their own fork of the GCC 4 code. It's probably about 99% the same code, but don't make the mistake of thinking they're shipping exactly what the FSF is distributing.

    3. Re:Figured this had to happen by As+Seen+On+TV · · Score: 3, Interesting

      If anybody was wondering, this is why we stay as far away from the Gnu people as humanly possible.

      We're not shipping "a fork" of GCC 4. We're shipping GCC 4.0.0, which we compiled from source for Darwin 8.

      In fact, when you're talking about shipping a compiler for a specific platform, the whole notion of "a fork" is basically meaningless.

      (Setting aside, of course, that the whole notion of "a fork" runs 100% counter to all that open-source stuff that you guys are supposedly so hip to anyway.)

    4. Re:Figured this had to happen by dvdeug · · Score: 5, Informative
      We're not shipping "a fork" of GCC 4. We're shipping GCC 4.0.0, which we compiled from source for Darwin 8.

      According to http://gcc.gnu.org/install/specific.html#powerpc-x -darwin,
      The version of GCC shipped by Apple typically includes a number of extensions not available in a standard GCC release. These extensions are generally for backwards compatibility and best avoided.

      i.e. you're using a forked version of GCC, and definitely not 4.0.0 out of the box.

      the whole notion of "a fork" runs 100% counter to all that open-source stuff

      No, actually, the importance of the ability to fork and wisdom to know when to fork is very important to "that open-source stuff".
    5. Re:Figured this had to happen by Anonymous Coward · · Score: 0

      The Objective-C support is certainly different between the Apple and GNU versions.

      (I have a feeling that As Seen On TV is some 14 year old pretending to be a bigshot who works at Apple.)

    6. Re:Figured this had to happen by As+Seen+On+TV · · Score: 3, Interesting

      You're defining "fork" so broadly that every build from every vendor would meet it. That's pretty silly.

    7. Re:Figured this had to happen by shaitand · · Score: 1

      Every build from every 3rd party DOES constitute a fork. A fork is a branch from the primary codebase of ANY size.

    8. Re:Figured this had to happen by Anonymous Coward · · Score: 3, Informative

      Every build from every 3rd party DOES constitute a fork.

      Wrong.

      A fork is a branch from the primary codebase of ANY size.

      No, a fork is where a second set of developers take the original codebase at one well-defined point and use it as the base for their own project.

      OpenBSD and NetBSD are forks of the original BSD because they have taken the BSD code and turned it into their own divergent systems, both based on the same base but heading in different directions. A Linux kernel with one of the various non-Linus patchsets applied is not a fork, because the "non-standard" part is utterly dependent on the main kernel sources.

      Apple's GCC builds fall into the latter category, and therefore do not constitute forks.

      I repeat: Red Hat have not forked the Linux kernel, and therefore Apple have not forked GCC.

    9. Re:Figured this had to happen by IamTheRealMike · · Score: 1

      No, Red Hat and so on may (sometimes) patch GCC but those patches are nicely available in separate files from the vendor. Apples changes are undocumented and not available in a separate form. I know because I've asked Apple for some of them and was told to scrub them out of the tree myself (pretty hard if you aren't intimitely familiar with the internals of gcc). In my mind that is the difference between merely patching and a fork.

    10. Re:Figured this had to happen by m50d · · Score: 1

      In that case, how were you able to guarantee a release date? Were you planning to ship one of the betas or release candidates if official gcc 4 wasn't out yet? Did you have advance notice of the release?

      --
      I am trolling
    11. Re:Figured this had to happen by Anonymous Coward · · Score: 0

      He certainly has the combative nature and "I'm right, you're wrong" mentality of a 14 year old. Read through his posting history, there's almost no Apple-related post where he isn't belittling just about everyone with a viewpoint that differs from his.

      I think you may have hit on something.

    12. Re:Figured this had to happen by _|()|\| · · Score: 1
      We're shipping GCC 4.0.0, which we compiled from source for Darwin 8.

      Putting aside the flippant aspersions, for the moment, it would be frightening if Apple was actually shipping GCC 4.0.0 next week, considering the lead time for testing, manufacturing, etc. Until a couple of days ago, there was no GCC 4.0.0; snapshots and CVS versions (betas, if you will), but not an actual 4.0.0. (The one Tiger box to which I have access is barfing on SSH, so I can't check the version string.)

      I would humbly suggest that, if you presume to invoke the royal "we," you refrain from deriding "the Gnu people" on whose "open-source stuff" OS X depends.

    13. Re:Figured this had to happen by Anonymous Coward · · Score: 0

      > If anybody was wondering, this is why we stay as far away from the Gnu people as humanly possible.

      How about producing your own compiler then?

    14. Re:Figured this had to happen by Azul · · Score: 1
      OpenBSD and NetBSD are forks of the original BSD because they have taken the BSD code and turned it into their own divergent systems, both based on the same base but heading in different directions.

      Correction: OpenBSD is a fork of NetBSD, not of original BSD. I suppose since NetBSD is a fork of 386BSD, you could claim that OpenBSD is a fork of 386BSD anyway, but you shouldn't claim that they have the same base. NetBSD is (was, at the time of the fork, when Theo was kicked out of NetBSD's core) OpenBSD's base.

    15. Re:Figured this had to happen by Anonymous Coward · · Score: 0
      this is why we stay as far away from the Gnu people as humanly possible.

      Except when you want to use their compiler.

    16. Re:Figured this had to happen by Per+Abrahamsen · · Score: 1

      > If anybody was wondering, this is why we stay as far away from the Gnu people as humanly possible.

      Who are "we"? Clueless Apple fanboys? The Apple developers are certainly working closely together with GNU people on GCC and other GNU projects, and are valued members of the GNU developer community.

      > We're not shipping "a fork" of GCC 4. We're shipping GCC 4.0.0,
      > which we compiled from source for Darwin 8.

      The Apple developers are not as deeply incompetent as you insinuate above. Apple is shipping a version of their own branch of GCC, which was synchronized some time ago with the FSF branch that eventually became GCC 4.0. Synchronizing with GCC 4.0 would give them a week for final testing...

      > In fact, when you're talking about shipping a compiler for a specific
      > platform, the whole notion of "a fork" is basically meaningless.

      Wrong. pgcc was clearly platform specific fork of GCC. So was DJGPP.

      In case someone with a clue reads this: Yes, most (but not all!) vendors keep their own branch of GCC with platform specific changes, allthough few have as many as Apple (which is not a critique of Apple, unlike what the fanboy I'm replying to claims, Apple have behaved excellent with regard to GCC and been a model for cooperation).

      I'll call these brances, not forks.

      > (Setting aside, of course, that the whole notion of "a fork" runs 100% counter to all that
      > open-source stuff that you guys are supposedly so hip to anyway.)

      First "we", now "you guys"? From an anonymous writer on a public forum?

      I speak for myself. Voltaire has credited for saying "I disagree with wath you say, but I will until my death fight for your right to say it".

      The right to fork is essential, if you don't want to hand over your freedom to your software supplier. But the cost of forking is high, so it is a right that should only be excercises after careful considerations of the alternatives.

    17. Re:Figured this had to happen by As+Seen+On+TV · · Score: 1

      Who are "we"? Clueless Apple fanboys?

      Actually, "we" in this context is the company I work for.

      valued members of the GNU developer community

      No. We are not members of the Gnu community. We reject the Gnu community's politics out of hand. That's why we refuse to buy into their license.

      Apple is shipping a version of their own branch of GCC

      Never said we didn't. I said we didn't fork off our own compiler from Gnu.

      The right to fork is essential

      I don't even know what the hell that's supposed to mean.

    18. Re:Figured this had to happen by cburley · · Score: 1
      The right to fork is essential

      I don't even know what the hell that's supposed to mean.

      Well, seeing as the version of GCC you're using is the result of a fork, which couldn't have happened if GCC had been a typical proprietary compiler, it's pretty clear that the right to fork is, indeed, essential to the free-software community.

      --
      Practice random senselessness and act kind of beautiful.
    19. Re:Figured this had to happen by Anonymous Coward · · Score: 0

      Yeah, cuz Apple never had a compiler before GCC came along. All hail the might GCC!!1!

      Step the first: Get RMSs cock out of your mouth.

      Step two: Mouthwash. I can't emphasize this strongly enough.

      Step three: Learn the difference between a branch and a fork.

      Step four: Get RMSs cock back out of your mouth.

  20. *chuckle* by fr2asbury · · Score: 5, Funny

    I can see my Gentoo box sweating now all nervous for the night I get a little drunk and decide to see how this gcc 4 thing works out. heh heh heh.

    1. Re:*chuckle* by Monkelectric · · Score: 1

      Any idea how long before there will be a GCC 4.0 package? Will we need a new profile? (god profile upgrades are scary)

      --

      Religion is a gateway psychosis. -- Dave Foley

    2. Re:*chuckle* by Anonymous Coward · · Score: 0

      probably just a new slot and change of a string to make it default.

  21. Re:What a coincidence by Anonymous Coward · · Score: 0

    No, for example:

    String* strMyString;

    will throw an error, requiring:

    String^ strMyStrin;

    Not entierly sure why, not sure if it's for all managed objects. I just know that MS's examples, and old CLR code that I know to work and compiles under 2003 with .NET 1.1 will error out with such errors. I'd love for someone to clear this up, google has been little help, searching the error number, or any other query I can think of.

  22. src tarball link? by codergeek42 · · Score: 2, Insightful

    Why didn't the poster just link to a list of mirrors? I don't want my favorite compiler's source to be unavailable =(

  23. Compatibility? Linux testing? by H0p313ss · · Score: 4, Interesting

    Just about every time I have to rebuild a kernel or build a kernel mod I get my butt kicked by gcc versions. So my questions are?

    • Are there compatibility issues with existing binaries?
    • What does this do to existing code?
    • How will this effect existing distros?
    • Is any distro planning on supporting 4.X soon? (And is that a good thing or a bad thing?)

    Anyone know?

    --
    XML is a known as a key material required to create SMD: Software of Mass Destruction
    1. Re:Compatibility? Linux testing? by katana · · Score: 1

      No. No one knows. Stop asking questions and upgrade. It's free, and ESR uses it for a loofah.

    2. Re:Compatibility? Linux testing? by SuperQ · · Score: 4, Informative

      Fedora Core 4 is GCC 4.0

    3. Re:Compatibility? Linux testing? by Anonymous Coward · · Score: 0

      Just about every time I have to rebuild a kernel or build a kernel mod I get my butt kicked by gcc versions.

      Umm... huh? I've been using Linux for about nine years, and can't remember a single instance of gcc versions getting in the way of compiling the kernel or kernel modules.

      Maybe you are thinking of something other than GCC?

    4. Re:Compatibility? Linux testing? by H0p313ss · · Score: 1

      Perhaps

      But IIRC, upgrading my gcc on Fedora Core 2 made it almost impossible to install the NVidia Kernel mod. But then, NVidia is ALWAYS a special case isn't it.

      sigh

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    5. Re:Compatibility? Linux testing? by H0p313ss · · Score: 1

      And is that a good thing or a bad thing?

      I guess time will tell.

      Since nobody else appears willing to speculate, I'm going to guess that they'll pay a severe price in Core 4 with incompatibility and instability, but the lessons they learn will pay off in Core 5... if they survive that long.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    6. Re:Compatibility? Linux testing? by bark · · Score: 1

      Hmm, even linus himself have identified certain gcc versions as "good" for the kernel, and several gcc revisions to be really bad for kernel compiles. I wonder how you've made it through 9 years without running into gcc incompatabilities with the linux kernel.

    7. Re:Compatibility? Linux testing? by Guppie · · Score: 1

      Red Hat Enterprise Linux 4 contains a "technology preview" of gcc 4.0 (beta), which will probably be patched with the release version ASAP.

      Not that the kernel in that distro is compiled with gcc 4, that probably won't happen before next year's distro. (http://www.redhat.com/software/rhel/features/)

    8. Re:Compatibility? Linux testing? by Slashcrap · · Score: 1

      But IIRC, upgrading my gcc on Fedora Core 2 made it almost impossible to install the NVidia Kernel mod. But then, NVidia is ALWAYS a special case isn't it.

      I'm almost certain that the reason for that is that your kernel was built with a different version of GCC from the one you were building the Nvidia module with.

      You probably missed the subtle clue provided by the Nvidia build scripts - "You're using a different version of GCC from the one used to build your kernel. This won't work - Aborting!!!!"

      It is easy to miss.

    9. Re:Compatibility? Linux testing? by thaig · · Score: 1

      I think that it will be ok. The 4.0.0 release looks quite good and the changes that have been made from 3.4, although radical, don't affect the ABI (what makes libraries of C++ classes compatible with each other). The "pain" of this release might well be less than the "pain" from 3.3-3.4 which *did* have small ABI changes.

      The problems are more on the side of maintaining packages where some incorrect C++ now causes errors. In my limited experience these packages didn't compile with 3.4 either and the changes required were simple enough.

      --
      This is all just my personal opinion.
    10. Re:Compatibility? Linux testing? by IamTheRealMike · · Score: 1
      Newer versions of GCC have refused to compile more and more code. This is annoying but not the end of the world, you can always just install an older version and use that.

      GCC changes do not really break existing binaries. You are thinking of glibc.

      Most distros will migrate to GCC4 very soon now. In fact many are already doing so. It's tricky because of the aforementioned refusal to compile particular code so the smaller distros that can't patch every package have to wait for upstream developers to migrate and update their code.

    11. Re:Compatibility? Linux testing? by H0p313ss · · Score: 1

      Thanks for the info, I'd mod you up if I could.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
  24. Re:What a coincidence by Anonymous Coward · · Score: 0

    VS.NET was a fancy name to get the .NET name out there. Everything .NET about VS.NET 2003 is the same for VS 2005.

  25. Misplaced blame by tepples · · Score: 4, Insightful

    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.

    1. Re:Misplaced blame by Screaming+Lunatic · · Score: 4, Funny
      Blame the standards committee, not the GCC maintainers.

      Insightful? Jesus eff-ing Christ. Now the slashbots don't like standards. I bet you wouldn't be presenting the same argument if this discussion was about the transition from MSVC 6.0 to 7.0/7.1.

    2. Re:Misplaced blame by Mancat · · Score: 5, Funny

      Mechanic: Sir, your car is ready.

      Customer: Thanks for fixing it so quickly!

      Mechanic: We didn't fix it. We just brought it up to standards. Oh, by the way, your air conditioning no longer works, and your rear brakes are now disabled.

      Customer: Uhh.. What?

      Mechanic: That's right. The standard refrigerant is now R-134A, so we removed your old R-14 air conditioning system. Also, disc brakes are now standard in the autmotive world, so we removed your drum brakes. Don't drive too fast.

      Customer: What the fuck?

      Mechanic: Oh, I almost forgot. Your car doesn't have airbags. We're going to have to remove your car's body and replace it with a giant tube frame lined with air mattresses.

      --
      hello dear sirs my name is jamesh i are india (bihar) can u guide me install red had linux 9?
    3. Re:Misplaced blame by IntergalacticWalrus · · Score: 4, Insightful

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

    4. Re:Misplaced blame by Mancat · · Score: 1

      Well, it is a joke afterall. :)

      --
      hello dear sirs my name is jamesh i are india (bihar) can u guide me install red had linux 9?
    5. Re:Misplaced blame by Alioth · · Score: 3, Insightful

      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.

    6. Re:Misplaced blame by Screaming+Lunatic · · Score: 3, Funny
      Blame the standards committee, not the GCC maintainers.
      Insightful? Jesus eff-ing Christ. Now the slashbots don't like standards. I bet you wouldn't be presenting the same argument if this discussion was about the transition from MSVC 6.0 to 7.0/7.1.

      Funny? Jesus eff-ing Christ. When did pointing out the hypocricy of slashdot group think become funny? I don't get which part of my original statement is funny.

    7. Re:Misplaced blame by Anonymous Coward · · Score: 0

      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!

      The happy medium is an extra "compatibility" mode, but it's obviously easier to maintain without one.

    8. Re:Misplaced blame by conteXXt · · Score: 1

      Flawed? I'll say.

      R134 replaces R12 or ever r22 in fridges.

      R14?

      (just horsing around. I liked the analogy although flawed.

      --
      The truth about Led Zep should never be told on /. (Karma suicide ensues)
    9. Re:Misplaced blame by KutuluWare · · Score: 1

      Right. Because cars are *so* standardized that this is a brilliant comparison.

      I mean, if my Ford Escape breaks down I can just go digging into the guts of my wife's Honda Civic she never drives and start swapping out engine parts -- cuz it's all standardized, right?

      It would be great if I *could* -- but instead, due to the lack of automotive standards I get to pick through the local auto parts store's 9 billion page catalog.

      (NB: I don't think car parts should be standardized, I just think it's ridiculous to compare my car's engine to a C compiler.)

    10. Re:Misplaced blame by DrLex · · Score: 1
      Personally, I prefer GCC to be standards compliant.
      Me too, but I prefer smooth transitions to sudden hard compliance. Even though I sigh every time I read the word 'deprecated', I still prefer it to code suddenly producing hundreds of hard errors while in the previous version it compiled without any warning even with -Wall.
    11. Re:Misplaced blame by tepples · · Score: 1

      Jesus eff-ing Christ.

      Given that Jesus is the Christ, does that mean "Jesus eff-ing himself"? Wouldn't that mean "Jesus jerking his saint peter"?

      When did pointing out the hypocricy of slashdot group think become funny?

      It's the latest fad on Slashdot, just as "All your base are belong to us" and "In Soviet Russia" were past fads.

    12. Re:Misplaced blame by Anonymous Coward · · Score: 0

      As far as I can figure out, a large proportion of all humor is based on inconsistencies in widely accepted thinking, or groupthink if you will. It should be no surprise that the same works on slashdot.

    13. Re:Misplaced blame by x_codingmonkey_x · · Score: 0

      Exactly! My question is why are people not writing standard complaint code in the first place? When something is standard complaint it's portable and can be compiled with whatever compiler you wish (Intel, Borland, etc), given that that compiler follows standards too.

    14. Re:Misplaced blame by Anonymous Coward · · Score: 0
      ungh! don't remind me.


      besides... M$ has *never* followed the [e.g. ANSI] standards for the c/c++ programming language.

    15. Re:Misplaced blame by 2short · · Score: 1

      Because there wasn't a standard when we wrote the code.

    16. Re:Misplaced blame by 2short · · Score: 1

      But they are not damned if they do AND don't. They will be whined at if they don't support the standard, naturally. Just as naturally, they will be whined at if their new version refuses to compile code their previous version compiled warning free. They should have provided the ability to select standards-compliant behavior or previous-version-compliant behavior. This should be obvious, and apparently was to both the commercial compilers I have knowledge of.
      Personally, I prefer my compiler, and my code, to be standards compliant. But since the latter might take quite a lot of work on my part, I'd like to be able to choose when I want to deal with it.

    17. Re:Misplaced blame by Thing+1 · · Score: 1
      OT re: your sig.

      Information wants to stay out late, just this once... Pleeaase?

      Thanks for that! I'm now going to name my first child "Information". ;-)

      --
      I feel fantastic, and I'm still alive.
    18. Re:Misplaced blame by Hard_Code · · Score: 1

      Amen. I for one WANT THE WARNINGS. I turn warnings and pedanticism on. I don't WANT the compiler to accept any slop I barf up and just assume an arbitrary interpretation. "OH NOE MY CODES WILL BRAKE!" So use an older compiler. Sheesh.

      --

      It's 10 PM. Do you know if you're un-American?
    19. Re:Misplaced blame by stonecypher · · Score: 1

      I don't get which part of my original statement is funny.

      That's because we're laughing at you, not with you.

      --
      StoneCypher is Full of BS
  26. Re:What a coincidence by ergo98 · · Score: 0, Redundant

    Right...and it still isn't Visual Studio.NET 2005 - It's Visual Studio 2005. Microsoft dumped .NET from their naming system.

  27. Re:I am so happy!!! by hdparm · · Score: 0, Redundant

    What exactly happened in your childhood?

  28. Re:What a coincidence by Surye · · Score: 1

    So your argument has no substance or actual effect on the conversation? Cool.

  29. Gentooooooooo! by Anonymous Coward · · Score: 0

    Lets get compiling!

  30. Re:What a coincidence by ergo98 · · Score: 1

    Click the post anonymously next time.

    However, if you're trying to cover ignorance by pretending that it's inconsequential, that's a pretty weak technique. Gee, I hope Linoose releases a new version of Winux soon, so I can run it on my AMB x62.

  31. Re:What a coincidence by Surye · · Score: 1

    Why would I post anonymously? I just didn't bother logging in before, but I wanted to get notifications on replies. I'm actually interesting in what changed by removing .NET from the name? You say it's not inconsequential? Anf that last sentence made no sense to me. For fogive my ignorance.

  32. Re:What a coincidence by ergo98 · · Score: 1

    As an aside, I ignored the original post because it was factless - the same limits applied then as apply now.

  33. Re:What a coincidence by Surye · · Score: 1

    Haha, and "for forgive" my inability to type.

  34. get it while it's hot by cstacy · · Score: 2, Funny

    Hurry up and download your copy now, before the price goes up!

  35. Re:What a coincidence by Surye · · Score: 1

    I was simply posting my experience with it. I couldn't even compile one of Microsoft's examples from MSDN that worked fine in 2003. If you get a chance, try to compile the Socket class example. It's the one that choked and died on me. Don't take my word for it.

  36. Readme.SCO by karvind · · Score: 5, Interesting
    The gcc tar ball has a README.SCO file (reproduced below)

    The GCC team has been urged to drop support for SCO Unix from GCC, as a protest against SCO's irresponsible aggression against free software and GNU/Linux. We have decided to take no action at this time, as we no longer believe that SCO is a serious threat.

    For more on the FSF's position regarding SCO's attacks on free software, please read:

    http://www.gnu.org/philosophy/sco/sco.html

    1. Re:Readme.SCO by Anonymous Coward · · Score: 1, Informative

      Oh wow, you noticed that now? They've had that file since GCC 3.3.0, and with that wording for half a year.

    2. Re:Readme.SCO by kernel_dan · · Score: 2, Informative

      http://www.gnu.org/philosophy/sco/sco.html

      SCO is so not a threat they decided to delete the page. (404 Not Found)

      oh, wait. here it is

      --

      Illegal? Samir, This is America.
    3. Re:Readme.SCO by Anonymous Coward · · Score: 0

      ...and, suddenly, www.fsf.org is giving "Connection Refused".

      Excuse me while I go put on my tinfoil hat...

    4. Re:Readme.SCO by NutscrapeSucks · · Score: 3, Interesting

      Maybe someone can find it, but the SCO GCC guy posted on Slashdot once. He indicated that he was pretty much single-handedly responsible for the SCO UNIX port, so GCC pulling their endorcement wouldn't make much if any difference to SCO customers. I belive his attitude towards his employer was "I don't like it but who else will pay me to hack on GCC?"

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:Readme.SCO by Anonymous Coward · · Score: 0

      I belive his attitude towards his employer was "I don't like it but who else will pay me to hack on GCC?"

      Red Hat seems to be paying quite a few people to hack on GCC, as does Apple, and probably many others.

  37. gcc -v on Fedora 4 test 2 by hey · · Score: 3, Informative

    % gcc -v

    Using built-in specs.
    Target: i386-redhat-linux
    Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,java,f95,ada --enable-java-awt=gtk --host=i386-redhat-linux
    Thread model: posix
    gcc version 4.0.0 20050405 (Red Hat 4.0.0-0.40)

    1. Re:gcc -v on Fedora 4 test 2 by k98sven · · Score: 1

      So? It's a prerelease version. Not the same as the final release. My snapshot from a few days ago tells me:
      gcc version 4.1.0 20050417 (experimental)

      Doesn't mean it's the final 4.1 release, does it?

    2. Re:gcc -v on Fedora 4 test 2 by no-karma-no-worries · · Score: 5, Funny


      > gcc version 4.0.0 20050405 (Red Hat 4.0.0-0.40)

      aren't they supposed to release a broken 3.96 first???

    3. Re:gcc -v on Fedora 4 test 2 by EnronHaliburton2004 · · Score: 1

      Oh what fun.

      So when installing Oracle 9 on RedHat Enterprise, guess which compiler you need?

      2.96 , and the installer still uses the Java 1.1 GUI...

    4. Re:gcc -v on Fedora 4 test 2 by Anonymous Coward · · Score: 0

      So when installing Oracle 9 on RedHat Enterprise, guess which compiler you need?
      2.96


      GRR. 2.96 is *not* broken. Everyone said it was because it broke their code. It had a few kinks in the first few releases but then it became a very stable compiler. Red Hat supported it well. What are you whinging about?

  38. One day he was playing baseball by Anonymous Coward · · Score: 0

    and his dick fell off.

    The end.

  39. Re:I am so happy!!! by sabat · · Score: 1

    He was raised by a troll who lives under a bridge.

    --
    I, for one, welcome our new Antichrist overlord.
  40. how much java comaptibility by b17bmbr · · Score: 3, Interesting

    i am interested in the java compatibility. i figure it probably won't do swing, but will it support, or is will it do say gtk/java native. that'd be sweet. i know Qt/kde has had a java bridge for a while, but i really haven't played to much with it. flame java all you want, it's not a geek language. no obfuscated java, no java monks. BFD. sure that'd nix the whole write-once run anywhdere thing. but hell, what a great opportunity to build and test apps under a jre then compile them, to native.

    --
    My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    1. Re:how much java comaptibility by MassacrE · · Score: 1

      It does swing.

    2. Re:how much java comaptibility by Anonymous Coward · · Score: 1, Informative

      Of course, if you had RTFM, you'd have an answer. Look:

      #
      # There have been many improvements to the class library. Here are some highlights:

      * Much more of AWT and Swing exist.
      * Many new packages and classes were added, including java.util.regex, java.net.URI, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net, javax.net.ssl, javax.security.auth, javax.security.auth.callback, javax.security.auth.login, javax.security.auth.x500, javax.security.sasl, org.ietf.jgss, javax.imageio, javax.imageio.event, javax.imageio.spi, javax.print, javax.print.attribute, javax.print.attribute.standard, javax.print.event, and javax.xml
      * Updated SAX and DOM, and imported GNU JAXP

      Now, go and test it. Report your results

    3. Re:how much java comaptibility by 0x000000 · · Score: 2, Informative

      RTFM. It says right in the changelog that more swing has been added.

      "There have been many improvements to the class library. Here are some highlights:
      Much more of AWT and Swing exist.
      Many new packages and classes were added, including java.util.regex, java.net.URI, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net, javax.net.ssl, javax.security.auth, javax.security.auth.callback, javax.security.auth.login, javax.security.auth.x500, javax.security.sasl, org.ietf.jgss, javax.imageio, javax.imageio.event, javax.imageio.spi, javax.print, javax.print.attribute, javax.print.attribute.standard, javax.print.event, and javax.xml
      Updated SAX and DOM, and imported GNU JAXP"

      http://gcc.gnu.org/gcc-4.0/changes.html

      --
      cat /dev/null > .signature
    4. Re:how much java comaptibility by Screaming+Lunatic · · Score: 1
      i am interested in the java compatibility.

      Compatibility with what? No standard exists. You need to pick a specific dialect implemented by a specific runtime.

    5. Re:how much java comaptibility by m50d · · Score: 1

      Try the kde java bindings. They're alright, really.

      --
      I am trolling
    6. Re:how much java comaptibility by Anonymous Coward · · Score: 0

      There is Gnome Java bindings too (beside Qt):
      http://java-gnome.sourceforge.net/cgi-bin/bin/view

    7. Re:how much java comaptibility by mrtom852 · · Score: 1

      If you haven't seen the following they are pretty interesting...

      ClasspathShowcase

      GTK development in native eclipse

  41. i686 optimised by matts-reign · · Score: 1

    I use archlinux, which is i686 optimised.

    Why i like it? It gives me a nice optimised core, an installer that doesn't baby me, and something i can build a system off of. I'm running on an old pentium2, so i try as absolutely hard as i can to keep the system lean, and avoid compiling wherever possible. Plus there is a good pile of distro-specific documentation, and great support. I'm all over it as my distro of choice.

    --
    Waffles rock.
  42. Something fun with compiling... by phoenix.bam! · · Score: 5, Funny

    and no gentoo users commenting on how they've already recompiled their entire system with the new optimizations. Or maybe they're just waiting for some free resources to open a browser.

    1. Re:Something fun with compiling... by Anonymous Coward · · Score: 2, Informative

      Nice troll. Good thing you know nothing of what your talking about. Any knowledgeable Gentoo user who uses Gentoo for optimizations alone will set it to recompile overnight, so when they wake up (provided the system isn't a P-II and they aren't running KDE), it should be done. It usually is for me on new installs. For everyone else who uses Gentoo, GCC 4.0 is just another compiler. I use Gentoo because of the minimalism it provides. I also use it because I can strip it down to the bare minimum much easier than most other RPM or DEB based distributions. I used to use Gentoo for the 'Rice' effect. Now I use it because the package management system, and the fact I can make a lean system which runs on 25MB of RAM, especially for those old NEC laptops I've been given by my school. And as for resources? Portage is automatically set at a high Nice, meaning that every other application, such as Firefox, has priority over it. If you're going to troll, at the very least know what your talking about.

    2. Re:Something fun with compiling... by Anonymous Coward · · Score: 0

      yep compiling a system on a 25 meg laptop sounds fun ;-P

    3. Re:Something fun with compiling... by porp · · Score: 1

      Do you also login to Gentoo anoymously just to prove a point?

      porp

    4. Re:Something fun with compiling... by Monkelectric · · Score: 1

      Dude, I am very defensive about gentoo, but he was joking :)

      --

      Religion is a gateway psychosis. -- Dave Foley

    5. Re:Something fun with compiling... by Trejkaz · · Score: 1

      I use it for the awesome /etc/init.d layout, and the way it doesn't make you remember shitty, arbitrary numbers for your runlevels. And also for the way that installing from the CD is exactly the same as installing by bootstrapping a hard drive into another machine.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    6. Re:Something fun with compiling... by enthused+i+swear · · Score: 1

      There has actually been an effort to get GCC4 working on gentoo since before it was GCC4 (ie GCC 3.5). More details can be found here.

      The work started a little less than a year ago, and it seems like there has been a fair amount of progress. Not enough for me to give it a shot instead of 3.4.3, which is still considered testing (the default compiler is 3.3.5) on an x86 machine.

    7. Re:Something fun with compiling... by Anonymous Coward · · Score: 0

      rc-update is something that every distribution should be using, IMO. Init scripts any other way just suck balls.

    8. Re:Something fun with compiling... by Anonymous Coward · · Score: 0

      Wait a minute - Gentoo isn't slow because you can compile everything overnight on a fast PC with lots of RAM, and you use Gentoo because you can use it on an ancient PC with minuscule amounts of RAM?

      I was going to say it didn't add up, but then I wondered if you might be using distcc or something to farm out the compilation from your ancient NEC laptops to a fast PC? That would actually be kind of cool... hmm, I wonder if I've got a network card I could put in that old 386... ;)

    9. Re:Something fun with compiling... by m50d · · Score: 1

      I'm not the OP, but just make binary packages on your main system and pass them over to the 386 however. Set -march=i386 -mcpu=i386 -mno-mmx -mno-sse -mno-3dnow in cflags and assuming you're on an x86 for your main system it should work fine. Distcc will also work though.

      --
      I am trolling
    10. Re:Something fun with compiling... by Anonymous Coward · · Score: 0

      But won't those Debian users get jealous ;-)'s

    11. Re:Something fun with compiling... by entrigant · · Score: 1

      There's a fine line between trolling and joking. I believe the parent post was the later. As a fellow gentoo user who uses gentoo for the same reasons, I implore you not to fall into the debian trap, and learn to take a joke like that in jest. I found it funny at least :)

    12. Re:Something fun with compiling... by DrCode · · Score: 1

      Q: How many Gentoo users does it take to screw in a lightbulb?
      A: That's not funny!!

      (Yes, I know it's not original either.)

  43. Objective-C++...? by Dimwit · · Score: 3, Interesting

    They've been talking about having Objective-C++ in the GCC main branch for years now. There was even talk that 4.0 wouldn't ship without it. Now it's shipped without it and it's still "coming Real Soon Now". Any word on if it's coming any time soon (really)?

    --
    ...but it's being eaten...by some...Linux or something...
    1. Re:Objective-C++...? by Anonymous Coward · · Score: 0

      They've been talking about having Objective-C++ in the GCC main branch for years now.

      Yes.

      There was even talk that 4.0 wouldn't ship without it.

      I don't know where you got that from. It's not true.

      Now it's shipped without it and it's still "coming Real Soon Now". Any word on if it's coming any time soon (really)?

      No, it's not coming any time soon, because nobody's currently working on it. If you want to work on it, mail them. But don't expect things to happen by themselves. Nothing does.

    2. Re:Objective-C++...? by LnxAddct · · Score: 1

      I believe the fault lies with Apple. They had devs working on GCC but for some reason gave up on Objective-C++ support.
      Regards,
      Steve

    3. Re:Objective-C++...? by norwoodites · · Score: 1, Redundant

      Actually someone is working on merging it. So you data is not update. See here.

    4. Re:Objective-C++...? by dvdeug · · Score: 1

      Any word on if it's coming any time soon (really)?

      Provided that no one volunteers to work on it, it's Apple's ball game. Apple, recently, hasn't seemed to have time to spend on getting Objective C++ merged into the main GCC tree. It's all up to when Apple programmers feel they have time to spare from other GCC work to finish Objective C++.

    5. Re:Objective-C++...? by As+Seen+On+TV · · Score: 3, Informative

      Hmm. That's a pretty sound misrepresentation. You make it sound like our guys are spread too thin to work on Objective-C++. Not so.

      Fact is, demand for Objective-C++ from our developers is so close to zero as to be completely insigificant. Seriously, there's more demand for Python than Objective-C++. Honest to God, Python!

      All the ISVs who are still using C++ are building their apps with Core Foundation, not with Cocoa. That's fine. Core Foundation is a first-class application platform in Mac OS X. It's just so much more of a pain in the ass to use, developers are flocking away from C and C++ to reimplement in Objective-C, not even bothering with Objective-C++ along the way.

      So it's not that we don't have the time. It's that we don't see the point.

    6. Re:Objective-C++...? by dvdeug · · Score: 1

      You make it sound like our guys are spread too thin to work on Objective-C++. Not so.

      It's all matter of priorities. You don't have enough people to work on it with the priorities that you're putting on it.

      And it seems pretty unfair that Apple has led all the people who want a Objective-C++ on; there was a big fuss on the GCC list about how Apple wanted Objective-C++ in GCC 4.0, but there never was a message that no, Apple has now decided that it's not important.

    7. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      You don't have enough people to work on it with the priorities that you're putting on it.

      You realize that you got that exactly backwards, right?

      And it seems pretty unfair that Apple has led all the people who want a Objective-C++ on

      What people? That's the point. There's no demand for it.

    8. Re:Objective-C++...? by Brad+Oliver · · Score: 1
      Fact is, demand for Objective-C++ from our developers is so close to zero as to be completely insigificant.

      Really? That sucks, because Obj-C++ is something I've come to rely on when porting code over to OSX. I know of a number of other developers who use it as well. Are you listening to "your" developers?

    9. Re:Objective-C++...? by erikdalen · · Score: 1
      >>There was even talk that 4.0 wouldn't ship without it.

      >I don't know where you got that from. It's not true.

      From: http://gcc.gnu.org/wiki/What%20will%20be%20in%204. 0

      In addition, the GCC Steering Committee has promised Apple (Zem Laski) that we will get Objective-C++ into GCC 4.0. Therefore, GCC 4.0 will not be released without Objective-C++, unless something seems to have gone horribly awry. (Update) Things went horribly awry, so Objective-C++ has not made it into GCC 4.0.

      --
      Erik Dalén
    10. Re:Objective-C++...? by Alioth · · Score: 1

      I can see why.

      I started to learn Objective-C, Cocoa (and indeed GNUstep) about 2 weeks ago to help port a Mac OSX project to Linux, and I'm getting to quite like Objective-C. The language has quite a few features that I'd have killed for when I was writing C++ full time.

    11. Re:Objective-C++...? by m50d · · Score: 1

      I want python. It's a very good language, easy to program in, but can be a bit slow, and even when it isn't it's assumed to be because it's interpreted. Please add python support to gcc if you can.

      --
      I am trolling
    12. Re:Objective-C++...? by LizardKing · · Score: 1

      *Choke*. Objective-C++ was an absolutely atrocious idea. Objective-C is a simple extension to C that adds support for Object Oriented Programming without the syntactical abortions found in C++. Objective-C++ was just an attempt to appeal to C++ programmers who didn't want to learn a language that did OOP far more elegantly than the langague they already knew.

    13. Re:Objective-C++...? by framerate · · Score: 4, Interesting

      "All the ISVs who are still using C++ are building their apps with Core Foundation."

      No they're not! And I myself am not about to port hundreds of thousands of lines of C++ code to Objective-C since that'd eliminate the Windows version, which I can't do!

      In the code base I'm currently porting to Cocoa, all of the application's core logic and data structures are written in C++, and the user-interface layer is written natively for each platform. So the Mac version gets a high-quality Cocoa front-end and Windows/Linux/BSD gets a wxWidgets front-end (since wxWidgets does a good job on those platforms).

      Take away Objective-C++ (and therefore Cocoa C++) support and I'll just compile the wxWidgets version for the Mac since CoreFoundation is, as you say, a pain in the ass to use. The result: another low-quality "Windows-app-in-Aqua-clothing" Mac app.

      Cross-platform toolkits, such as wxWidgets, SWT and Swing produce usable but low-quality Mac applications (missing sheets, drawers, collapsable toolbars, AppleScript support, and so on and so forth). Objective-C++ allows me to easily write high quality Aqua-compliant applications easily. So if Apple values Mac users it will keep supporting Objective-C++!

      Not to mention that, for me at least, Cocoa/C++ is one of the reasons I use a Mac in the first place. I can produce professional user interfaces in no time and still know that I can port the core logic to Windows/Linux/BSD.

      Oh, and I'm working in the games industry, where the majority of code is C++. I know for a fact that Apple wants more games code ported to OS X.

    14. Re:Objective-C++...? by framerate · · Score: 1

      Actually, it's a great idea. It allows developers with an investment in C++ to write Cocoa applications. Most people I know who are using Objective-C++ are using it to access C++ libraries from within otherwise Objective-C apps. It's about getting real applications written when you have existing C++ code, it's not about language preference. For what it's worth, I'd rather use Objective-C.

    15. Re:Objective-C++...? by Dolda2000 · · Score: 1
      Objective-C++? Well, I think they promised to fix that after they merged the Pascal-Basic langauge.

      </sarcasm>

    16. Re:Objective-C++...? by CRCulver · · Score: 1

      Objective-C++ was just an attempt to appeal to C++ programmers who didn't want to learn a language that did OOP far more elegantly than the langague they already knew.

      It's not that simple. Support for Objective-C++ is necessary for aficionados of Obj-C to easily use their beloved Cocoa and GNUstep with existing C++ libraries. How can there be a GNUstep browser, for instance, when KHTML and Gecko are written in C++?

    17. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      If you're talking about porting a game ... why would you need Cocoa?

      No offense, but I smell a rat.

    18. Re:Objective-C++...? by framerate · · Score: 1

      Tools. Primarily, the level editor.

      This link has two 18 month old game shots and an even older shot of the Windows version of the editor:

      http://www.ikkiv.com/fz/

    19. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      I don't think so, no. If all you wanted to build was an editor, you wouldn't need C++ bindings for Cocoa. You could just bang the whole thing out in Objective-C using Cocoa bindings. Probaby have it done in an afternoon.

      Again: I smell a rat.

    20. Re:Objective-C++...? by dvdeug · · Score: 1

      You realize that you got that exactly backwards, right?

      I got it exactly the way I wanted it. At its current priority, there aren't enough people to satisfy the demands of higher priority items and it.

      What people? That's the point. There's no demand for it.

      I guess all the people responding to this thread saying they want it are lying. I guess all the people who emailed the GCC list wanting it were lying too. There may not be enough demand for you to do it, but that doesn't mean there's no people who want it.

      That's like saying someone saying they're going to create a Macintosh version of a program, and then stopping silently because there's no Macintosh users. There may not be enough Mac users to support the port, but there are Mac users out there.

    21. Re:Objective-C++...? by framerate · · Score: 1

      Granted, if it was a Mac only editor then using Cocoa exclusively would be a nice option. But it's not - a Windows version of the editor is vital (we're talking about an editor that is released to the general public for game modding), so we don't even have Objective-C let alone Cocoa. Not to mention that the Windows editor already existed 3 years prior to starting the Cocoa version, so we're not starting from scratch!

      Whether you choose to believe me or not, my point still stands - there are developers with existing C++ code bases but no investment on the Mac platform who want to write their UI in Cocoa.

      And, as mentioned elsewhere, WebKit is a great example of Objective-C++ being used to provide access to an existing C++ codebase (KHTML) from Objective-C.

    22. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      At its current priority, there aren't enough people to satisfy the demands of higher priority items and it.

      That sentence doesn't even make sense. Let's cut through the bullshit, okay? Insignificant customer demand led us to pull people off of Objective-C++ and put them on projects that would actually benefit people.

      You make it sound like we de-prioritized Objective-C++. That's misleading and wrong. Fact is, our developers de-prioritized it for us. We're just responding to that.

      I guess all the people responding to this thread saying they want it are lying

      There was one guy. He claimed to want Objective-C++ to write a video game editor. I do, in fact, suspect that he's lying, because that job can be done in Cocoa so much more easily anyway. Lying? Eh. Maybe that's too strong a word. Let's go with confused.

      There may not be enough demand for you to do it, but that doesn't mean there's no people who want it.

      The level of demand is so low that it rounds off to zero.

      That's like saying someone saying they're going to create a Macintosh version of a program, and then stopping silently because there's no Macintosh users.

      An installed base of 40 million users growing at the (as of this moment) rate of ten million new users a year does not round down to zero.

    23. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      But I'm telling you that you can have an entirely native Mac version in a matter of hours. Just create the interface with IB, then write your model to handle file I/O. Use bindings to link them together. Piece of cake. Better solution than trying to port Windows code.

      See, this is why our ISVs all stopped asking for Objective-C++. They realized, after just minutes of looking into it, that they could produce better applications faster by using Cocoa than by trying to port code that might be fine on Windows but that just isn't right for the Mac.

      Just think of it as a radical refactoring, and quit stressing about it.

      (Besides, in the final analysis, we have a vested interest in actively preventing ISVs from shipping bad ports of Windows programs. Every bad Mac application leaves a customer with a bad impression of Apple, and we don't want that. There needs to be some gatekeeping to make sure we maintain a sort of minimum level of quality.)

    24. Re:Objective-C++...? by dvdeug · · Score: 1

      An installed base of 40 million users growing at the (as of this moment) rate of ten million new users a year does not round down to zero.

      So now you define rounding, huh? If we're defining rounds down to zero as there's so few of them as to be insignificant, then 40 million may very well round down to zero for certain people. Wal-Mart certainly rounds it down, as they don't stock Mac products.

      You can't have your cake and eat it too. Either your minority sometimes rounds to zero, or you stop rounding people off to zero. Out there, somewhere, is someone who considers your group insignificant; either he should round them down to zero, or you should accept that you should stop rounding other people down to zero, and accept that they exist, no matter how few of them there are.

    25. Re:Objective-C++...? by framerate · · Score: 1

      OK, this has got to be a troll. Hundreds of thousands of lines of code for manipulating polygon models, brushes, curved surfaces and terrains, all rendered through an OpenGL graphics engine, cannot be rewritten in Cocoa in "a matter of hours," even if we were willing to drop cross platform support (and thus drop support for games consoles!)

    26. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      The term you're groping for here is "figure of speech." Might want to familiarize yourself with it. Did you think when I said that it rounds down to zero that I was speaking in terms of mathematics? Did you think I was being literal? Or did you realize that I was employing a metaphor?

      When I say that demand for Objective-C++ is insignificant, I mean it. The total number of feature requests we received related to Objective-C++ between the time when we first opened up requests for Tiger to the present is 94. Ninety-four over eighteen months.

      To put it in perspective, we got 97 requests to change the names of products during the same period. Seriously. One guy asked us, in writing, to change the name of Final Cut Pro because he thought it sounded to violent. His suggestion? Edit Pro. We all had a good laugh over that one.

      We don't just make this stuff up, you know. We have an actual database of feature requests, a part of Radar, that tells us who wants what. We know that nobody wants Objective-C++. We're not just guessing. Okay?

    27. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      Hundreds of thousands of lines of code for manipulating polygon models, brushes, curved surfaces and terrains, all rendered through an OpenGL graphics engine, cannot be rewritten in Cocoa in "a matter of hours,"

      None of those lines of code would need to be rewritten. They're all in either standard C (probably) or C++ (if you're unlucky), and all will compile cleanly on the Mac. You're just manipulating data structures and drawing to an Open GL context. No platform-specific code is involved. (Well, maybe for device input, if you're doing something squirrely, but that's not what we're talking about here. We're talking about your editor tool.)

      All that needs to be implemented is the user interface layer, and from the supplied screen shot, we can all see that that would be trivial.

    28. Re:Objective-C++...? by framerate · · Score: 1

      And that's exactly what I want to do, as stated in my original post, to quote myself:

      "In the code base I'm currently porting to Cocoa, all of the application's core logic and data structures are written in C++, and the user-interface layer is written natively for each platform"

      So I need Objective C++ to take advantage of Cocoa. All I've been trying to say all along is that you shouldn't assume there's no demand for Objective C++. I for one was never asked about Objective C++, and I consider it vital to continuing support for OS X. If people aren't communicating with Apple about Objective C++ then it's probably because it's just working in Xcode already, not because no one is using it.

    29. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      All I've been trying to say all along is that you shouldn't assume there's no demand for Objective C++.

      We don't. We measure demand by looking at the number of feature requests we get.

      I for one was never asked about Objective C++

      Wait. Just stop right there. Are you suggesting that you expected somebody from Apple to come knocking on your door and ask you what where we should go from here? Seriously?

      I consider it vital to continuing support for OS X

      Okay, well, obviously it's not vital, because nobody's asking for it. So, you know. There it is.

    30. Re:Objective-C++...? by framerate · · Score: 1

      Wait, wait, wait...

      "We measure demand by looking at the number of feature requests we get."

      and

      "Okay, well, obviously it's not vital, because nobody's asking for it. So, you know. There it is."

      Objective C++ has been a part of Apple's developer tools since Puma. See here:

      http://developer.apple.com/releasenotes/Cocoa/Ob je ctive-C++.html

      (remove the Slashdot provided space)

      That's why you're not receiving features requests for it - it's an existing feature that works.

      But surely you should have known that.

      As for your other point:

      "Are you suggesting that you expected somebody from Apple to come knocking on your door and ask you what where we should go from here?"

      Once you realise that Objective C++ is an existing feature then what I said makes sense - if Apple needed to gauge interest for it then it would publish a developer survey.

    31. Re:Objective-C++...? by AkaXakA · · Score: 1

      Oh come on!

      You're not even trying to understand the argument here.

      Remember: Just because you want something and are a gcc user, doesn't mean that _any other person_ would want it too.

      What is wrong with you that makes you berate a company for listening to it's clients?

    32. Re:Objective-C++...? by As+Seen+On+TV · · Score: 1

      My head's all a-spinning. First you bitched about how we don't have sufficient Objective-C++ support for you to port your game thing, now you're telling me that it's been in there for years. One of us is confused. I'm fairly certain it's not me.

      And no, we don't do developer surveys. Never have.

    33. Re:Objective-C++...? by dvdeug · · Score: 1

      What is wrong with you that makes you berate a company for listening to it's clients?

      I'm not. I'm upset that I still get email via the GCC list of people begging for Objective C++ every so often, and Apple can't even say "No, we're not working on this anymore." Despite having promised that it would be in GCC 4.0. And I'm berating him for not recognizing the difference between nobody wants this and very few people want this, and attacking anyone who says they want it.

    34. Re:Objective-C++...? by dvdeug · · Score: 1

      We know that nobody wants Objective-C++.

      You jump to argue that with nobody uses a Macintosh, but you can't understand why Objective-C++ users might not want to be dismissed as nobody. I'm not arguing that it's worth doing, just that all the people that were waiting on Objective C++ (all hundred or whatever), and were told that it would be in GCC 4.0 (http://gcc.gnu.org/wiki/What%20will%20be%20in%204 .0) at least deserve a statement that it won't be done.

    35. Re:Objective-C++...? by framerate · · Score: 1

      I never bitched about there not being sufficient Objective-C++ support to make my "game thing", I disagreed with the point you made in your original post that "All the ISVs who are still using C++ are building their apps with Core Foundation", and with your assertion that there was no demand for Objective-C++.

      "One of us is confused. I'm fairly certain it's not me."

      Anyone genuinely in a position to discuss Apple's Objective-C++ support would have known that it already existed. As it stands, you clearly don't know what you're talking about and I've wasted enough time with this conversation.

    36. Re:Objective-C++...? by AkaXakA · · Score: 1

      Well, just have them put in a proper request to apple instead/as well as the mailing list. Apple can't read minds! You have to communicate to be heard..really. Sheesh.

    37. Re:Objective-C++...? by Anonymous Coward · · Score: 0

      From the very link you cited:

      Things went horribly awry, so Objective-C++ has not made it into GCC 4.0.

      You're a fucking idiot.

    38. Re:Objective-C++...? by Brad+Oliver · · Score: 1
      But I'm telling you that you can have an entirely native Mac version in a matter of hours. Just create the interface with IB, then write your model to handle file I/O. Use bindings to link them together. Piece of cake. Better solution than trying to port Windows code.

      I'm certain you've never tried this with an app of any appreciable complexity. ;-)

      I ported over an MFC app (the Civ3 Editor) using Objective-C++. Strapping the bindings onto the existing MFC code required some pretty involved use of Objective-C++. Rewriting the app from scratch was never an option. There's no way I could have done what you suggest in a matter of hours - there were over 900 interface elements to connect, for starters.

      If you have some experience porting MFC apps to Cocoa, I'd certainly be interested in seeing some of your handiwork. Otherwise, instead of arguing with the developers who actually have experience with these matters, you should listen to them.

    39. Re:Objective-C++...? by m50d · · Score: 1

      What I want is gui and stuff as fast as C, because I want to be able to write my performance-critical stuff in python, because I prefer writing python. I know I can load hand-optimized assembly or C modules from python and use them, but I'd prefer to be able to just use python code and have it run the same speed.

      --
      I am trolling
    40. Re:Objective-C++...? by Per+Abrahamsen · · Score: 1

      One Apple employee refused to accept a patch to the common C-family code made by another Apple employee that was part of the Objective C++ support, and the two of them never seemed to resolve the conflict

      The Objective C++ user community blamed Red Hat.

    41. Re:Objective-C++...? by Per+Abrahamsen · · Score: 1

      It is important to know that even though "As Seen On TV" *talk* like he is an Apple insider, he *really* doesn't have a clue about what is going on. He is making stuff up as he go.

      Objective C++ was an Apple internal thing all the way, one Apple employee implemented it, another Apple employee rejected it, and they never resolved their technical differences.

      The rest of the GCC developers didn't care one way or another, but had promissed Apple that Objective-C++ would be included. However, given the situation with Apple blocking Apple, that promise was void.

      It can all be found on the public GCC developer lists.

  44. Re:What a coincidence by Anonymous Coward · · Score: 5, Informative

    The parent poster is refering to the deprecation of Managed Extensions for C++ syntax in favor of C++/CLI (which is undergoing ISO standardization).

    While it is true the syntax has changed (much for the better: templates are now supported in managed C++ code and so are generics, keywords replace ugly __gc, and more), support for the old syntax is still in the compiler (/clr:oldSyntax), and IntelliSense.

    However, you will be unable to mix new syntax and old syntax code in the same project without taking some penalties (IntelliSense will break, at the least). The designer will even spit out old syntax code when designing an old form or control.

    While the old syntax is definitely on its last legs, the VC++ team was very concerned about not screwing over those (early) adopters of C++ code for the CLR thus far.

    A good resource to read up more on the subject would be Herb Sutter's Blog, Stan Lippman's Blog, or any of the other VC++ team member's blogs.

    Take this from a former VC++ teammate who left during the Whidbey product cycle (posting AC since I've never bothered to get a slashdot account).

  45. Wishing you could shoot the dog by tepples · · Score: 1

    Ducks are not arboreal.

    But they do like to hide behind the tree in Duck Hunt.

    1. Re:Wishing you could shoot the dog by BurnFEST · · Score: 2, Funny

      That game was gold. And I too wish you could shoot the dog.

    2. Re:Wishing you could shoot the dog by tepples · · Score: 1

      And I too wish you could shoot the dog.

      Then go shoot all the dogs you can.

      ObTopic: Most NES emulators are compiled with GCC.

  46. true by bersl2 · · Score: 1

    That's definitely not new.

  47. distcc gentoo by admorgan · · Score: 1

    I am glad that my network is running distcc. Now after I compile the tool chain I can see how many problems I can identify in a weekend. Life is good!

  48. Screenshots? by mrcrowbar · · Score: 5, Funny

    Screenshots anyone? ;)

    1. Re:Screenshots? by Herr_Nightingale · · Score: 4, Funny

      check OSnews.com for the screens. apparently it's not user-friendly enough yet, and the fonts aren't spaced correctly. Expect eugenia's appraisal and some "how it should be done" mockups shortly.

    2. Re:Screenshots? by Brandybuck · · Score: 1

      I take it you're a regular OSnews reader...

      --
      Don't blame me, I didn't vote for either of them!
    3. Re:Screenshots? by peterpi · · Score: 2, Funny
      gcc: no input files
    4. Re:Screenshots? by Donald+Ferrone · · Score: 0

      Hopefully that pseudo-intellectual whale of a "woman" will one day soon shut her mouth with respect to EVERYTHING UNDER THE GODDAMNED SUN.

      --
      Donald Ferrone, Ph.D
      Professor of computer science
      http://www.geocities.com/donald_ferrone/
    5. Re:Screenshots? by Anonymous Coward · · Score: 0

      What happened? She said "No" when you asked her out on a date?

    6. Re:Screenshots? by Donald+Ferrone · · Score: 0

      You binged it right on, brother. :(

      --
      Donald Ferrone, Ph.D
      Professor of computer science
      http://www.geocities.com/donald_ferrone/
  49. just when OpenBSD i386 started to move to 3.x by ArbitraryConstant · · Score: 2, Interesting

    The OpenBSD crowd had a lot of concerns about bugs in 3.x and performance regressions (in compiling, not in the resulting binaries). I believe Linus shared some of these concerns (don't have a link handy).

    OpenBSD i386 is finally moving towards gcc 3.x, as the bugs have been cleared up even if the performance regressions haven't. I'm wondering if 4.x will be even worse, and if it will be justified by producing better binaries. From TFA, it looks like they've added a few features that may improve optimizations. If it's noticeably better they may move to the new version faster.

    I will have to play with it to see what it can do.

    --
    I rarely criticize things I don't care about.
    1. Re:just when OpenBSD i386 started to move to 3.x by Mancat · · Score: 1

      I'm surprised that the OpenBSD core, being as standards-anal as they are, hadn't moved to gcc 3.x much sooner. I'm sure they like having their compiler back them up when they call someone else's code disgusting.

      --
      hello dear sirs my name is jamesh i are india (bihar) can u guide me install red had linux 9?
    2. Re:just when OpenBSD i386 started to move to 3.x by Anonymous Coward · · Score: 0

      Actually until recently 3.x had worse support for C (as opposed to C++) than 2.9, and the OpenBSD people are in good company when they think that (eg. Linus).

    3. Re:just when OpenBSD i386 started to move to 3.x by Anonymous Coward · · Score: 0

      The OpenBSD crowd had a lot of concerns...

      The OpenBSD crowd ?? All 6 of them???

    4. Re:just when OpenBSD i386 started to move to 3.x by lintux · · Score: 2, Interesting

      The story about bad performance of GCC 3.x is completely true. I myself wondered some time ago why my dual P3-550 was hardly faster at compiling kernels, compared to my old single P2-350. Actually, if there was only one P3 in it it would've been slower! (And yes, the machine had more RAM...)

      After a while I found out that the P2 ran Debian Woody with gcc 2.95 used by default and the P3 ran testing with gcc 3.3 (?) used by default. Another compile with the same gcc versions gave better results.

    5. Re:just when OpenBSD i386 started to move to 3.x by Slashcrap · · Score: 0, Flamebait

      The OpenBSD crowd had a lot of concerns about bugs in 3.x and performance regressions (in compiling, not in the resulting binaries).

      The OpenBSD team want to build their own "free" C compiler because they don't like the GPL.

      I really hope they try. It will be quite entertaining and should knock them down a peg or two.

      They might be able to produce an over simplified version of NTP with ease, but I think producing a full compiler suite with about one and a half developers is going to be a bit more than they can handle. Should be fun to watch though.

      And just for the record, I do use OpenBSD. It's just unfortunate that it's mostly produced by assholes.

    6. Re:just when OpenBSD i386 started to move to 3.x by jsonn · · Score: 1
      They might be able to produce an over simplified version of NTP with ease, but I think producing a full compiler suite with about one and a half developers is going to be a bit more than they can handle. Should be fun to watch though.
      If any of the many persons complaining about OpenNTPD would have actually tried to improve it, it would already be much better. Actually, improving OpenNTPD to a level where the sync rate is smaller than the standard deviation of the NTP servers was not that much work.
    7. Re:just when OpenBSD i386 started to move to 3.x by m50d · · Score: 1

      I think it could work. Especially if they don't worry about optimizing. And I think it's good that there's an alternative, competition is usually good and choice is always good. Same reason I support abiword.

      --
      I am trolling
    8. Re:just when OpenBSD i386 started to move to 3.x by SpinJaunt · · Score: 1

      The *BSD's do have there own compiler (at least, in license form) called none other than TenDRA. Just a shame the *BSD's don't all collaborate and get TenDRA in to a useable alterantive to GCC -- I've seen how much work it takes for the *BSD's to get GCC into a useable toolchain. hmmm.

      --
      /. is good for you.
  50. stupid dumb moronic question by Anonymous Coward · · Score: 0

    Does all this extraneous language support make gcc bloated for single-language compilation? Like, could it conceivably work faster and use up less in the way of resources if the different languages were separated into different compilers? I'm only wondering for the case of huge projects with 100+ make operations...

    1. Re:stupid dumb moronic question by Analog+Squirrel · · Score: 2, Insightful

      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.

      --
      I'd rather be flying
    2. Re:stupid dumb moronic question by Anonymous Coward · · Score: 0

      If there is any impact from that, I doubt it's significant. The way modern compilers work, IIRC, is that there are two mostly distinct parts, the front end and the back end. The front end parses a source file and generates an intermediate representation of the program, known as an abstract syntax tree (AST), which is language-independent. This is then passed to the backend, which translates the AST into bytecode for whichever architecture you're compiling for. Most optimizations occur in the backend, so on a compiler that is doing a lot of optimization, most of the compile time is spent there. So supporting different languages shouldn't do much to the compilation speed or resource usage.

    3. Re:stupid dumb moronic question by noda132 · · Score: 3, Informative

      Does all this extraneous language support make gcc bloated for single-language compilation?

      Short answer: No.

      Long answer: pretty much every compiler around goes through the following steps: (a) make an abstract syntax tree from the source code, (b) optimize it, and (c) output machine code. No matter what language you're using, these steps must be performed; a multi-language compiler simply provides many ways of doing (a). But since optimization happens after (a) anyway, it doesn't matter.

      That's oversimplifying, since if a compiler were tuned to a single language it could probably use a slightly simpler abstract syntax tree format. But the benefits would be slight; it's far more useful to support tons of languages at little extra effort than to drop all alternate languages for a minor performance gain.

    4. Re:stupid dumb moronic question by vranash · · Score: 1

      It basically already is, all extra languages are usually just front-ends to the gcc intermediate language which then compiles to machine code (I believe java and possible a few other languages have their own backends for generating bytecode, but I could be wrong).

      Anyhow to sum it up, it doesn't make the compiler slower, it just makes COMPILING the compiler slower.. and takes up oodles of disk space as well (personally unless you need it, don't compile gcj/gnu classpath... it takes FOREVER to compile).

    5. Re:stupid dumb moronic question by xenocide2 · · Score: 1

      Actually, looking at the site on SSA for Trees, it would appear that even java gets translated into that intermediate language. My guess is that the compiler simply targets a jvm for output rather than a specific and tangible computer. Theoretically, there isn't much that prevents one from building a computer that natively runs as a JVM.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    6. Re:stupid dumb moronic question by Anonymous Coward · · Score: 0

      wow, nothing stoping a machine being made that is a hardware implementation of a software implementation of the same machine? you'd better patent that idea before someone calls you an idiot for even having to say it.

    7. Re:stupid dumb moronic question by Anonymous Coward · · Score: 1, Informative

      You're leaving out a very important step - intermediate representation, which goes between your (a) and (b). Every compiler makes an AST out of a language, and then transforms that language-specific AST into a common IR. A lot of optimizations (dead code elimination, constant propagation, LICM) are performed on that IR before transforming it into architecture-specific code. (more optimizations such as instruction scheduling are performed at the arch-specific level).

    8. Re:stupid dumb moronic question by m50d · · Score: 1

      Yep. In fact that's what the last c stands for - it isn't GNU C Compiler, it's GNU Compiler Collection

      --
      I am trolling
  51. vectorization very rarely works by vlad_petric · · Score: 4, Insightful
    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)

    --

    The Raven

    1. Re:vectorization very rarely works by drmerope · · Score: 2, Informative

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

      Uh what? It is true that i386 code runs in the ballpark on a Pentium IV, but this most definitely was not true for the Pentium III and is not true for the Pentium M. Those processors have the 4-1-1 rule, which is to say that you'll stall concurrent execution of instructions unless you arrange a complex instructions (4) with two simple ones (1). This is because there aren't enough execution units to handle any kind of instruction.

    2. Re:vectorization very rarely works by Anonymous Coward · · Score: 2, Informative

      What is it that possesses people to post authoritative comments on Slashdot, about subjects which they know little to nothing about?

      The changes between 386 and 686 in instruction sets alone make optimizing for specific platforms more than worth it. In fact, at the performance lab at [big chip manufacturer where I work as an electrical engineer], we have observed as much as a 43% speed gain in compiled applications using a platform-optimized compiler!

      Granted these optimizations would be compiler-specific, and were obviously not made using GCC. However, your assertion that "tuning for 686 with gcc only provides 1-2% improvements in the best case" is simply absurd. Please get a clue before you post nonsense.

    3. Re:vectorization very rarely works by Anonymous Coward · · Score: 0

      Isn't that a decoder limitation? As far as I know, Pentium III and Pentium M do full out-of-order execution, so they can't be stalled by lack of execution units per se. Or can they?

    4. Re:vectorization very rarely works by vlad_petric · · Score: 2
      Dear AC afraid of an NDA,

      I was talking about gcc, and gcc alone. After all, this is a story about gcc 4.0. I'm very well aware that compilers like icc are more capable of exploiting differences between old processors and newer ones. It's just that gcc is not. Please show me one single benchmark -- from a respectable suite, not something concocted to prove a point, and not something that has inlined assembly -- where tuning for 686 in gcc gives more than 5% performance improvement! My very strong belief is that the whole Gentoo "ultra-optimization" is simply a myth, because gcc is incapable of exploiting the differences.

      And if you bothered to do a little bit of googling, you'd have figured out that I'm not exactly foreign to computer architecture.

      --

      The Raven

    5. Re:vectorization very rarely works by vlad_petric · · Score: 1

      Yeap, you're right. The main difference though is that P4 has a trace-cache, so decoding happens only on a miss (for most codes, that's very rarely).

      --

      The Raven

    6. Re:vectorization very rarely works by Anonymous Coward · · Score: 0

      And if you bothered to do a little bit of googling, you'd have figured out that I'm not exactly foreign to computer architecture.And if you bothered to do a little bit of googling, you'd have figured out that I'm not exactly foreign to computer architecture.

      You're absolutely right, I clearly should have, since it is common practice to investigate everyone on Slashdot to whom you reply... /sarcasm

      I was talking about gcc, and gcc alone.

      Fair enough, my bad for misunderstanding you. And by the way, you're damned right I'm afraid of that NDA! It's rather hard to find work in chip design in the western U.S. these days. I'd rather keep my job, thank you.

    7. Re:vectorization very rarely works by Anonymous Coward · · Score: 0

      And if you bothered to do a little bit of googling, you'd have figured out that I'm not exactly foreign to computer architecture.

      Everyone step back and give this man recognition, without it he'll wither and die apparently.

      But seriously, make your point with wise use of language not pretentious "look at my credientials" crap. Such egotism is a major drawback of academia.

    8. Re:vectorization very rarely works by cow-orker · · Score: 1

      Actually Fortran does have pointers. (Or something close to pointers, I don't know Fortran intimately enough.) Fortran has the same aliasing problems that C has. The difference is, if aliasing breaks an optimization in C or C++, the compiler is at fault. If the same happens in Fortran, the programmer is at fault, simply by definition. Amazing, but this small difference makes Fortran faster...

    9. Re:vectorization very rarely works by gowen · · Score: 2, Informative
      BTW ... a language like Fortran, that doesn't have pointers at all
      Fortran 90/95 has pointers, just not in the C-like "It's an address of a chunk of memory" kinda way. Basically, they're pointers done properly, specifically designed to be limited in scope (they can only point at something declared to be a TARGET, for example) and they contain enough extra information to faciliate exactly the sort of opimisation you're talking about.
      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    10. Re:vectorization very rarely works by Anonymous Coward · · Score: 0

      To be fair, the post he was responding to justified itself by the poster working for a chip manufacturer, and hence knowing what he was talking about. By saying "look at my credentials" he was only doing the same.

    11. Re:vectorization very rarely works by Anonymous Coward · · Score: 0

      that's one of the reasons a lot of scientific codes are still in Fortran.

      No, its not. It's because of the quantity of legacy code. There's so much code written in Fortran, that nobody even dares to suggest to have it wrapped in C or, god forbid, re-written properly. Those who use Fortran code are pretty much engineers and physicists, and they generally care to get their job done, not to follow the latest language spec.

    12. Re:vectorization very rarely works by Anonymous Coward · · Score: 0

      Please get a clue yourself.

      These are empirical benchmarks. Where is your benchmarks on gcc, gcc is what we discuss here.

      As a side note, I've had -march=i686 run /slower/ than -march=i386 on my Athlon XP(2500).
      Not much, 1.23% for one application 1.56% slower for another. Others were faster about 1%, and a special one (A mersenne twister prng implementation) were 11% faster.
      Most were not measurable faster or slower though.

      In short - IT DEPENDS.
      Please don't spread FUD. Do valid benchmarks, not generalize special cases, or present one-time tests as generalizations.

      Thanks.

    13. Re:vectorization very rarely works by forkazoo · · Score: 1

      The effect of optimisations depends on the. I agree that many codes will see no, or negligible speed increases, but I have also seen a 3X speed increase. (Suprised the hell out of me.) For some reason, the programmer managed to find a way to do things that the optimiser absolutely had a field day with. Completely by accident. None of us had any particular idea why there was so much of a speedup. Probably some obscure case where the i386 code outputter got horribly confused about something.

    14. Re:vectorization very rarely works by cimetmc · · Score: 1

      If you want to achive optimal results, use the correct compiler options. There is not really an i686 processor, but as the expression i686 is so commonly used, GCC has it as an alias for Pentiumpro. Now the problem is that the Intel processors based on the Pentiumpro core (this includes the Pentium2 and Pentium3 processors) need a rather strict scheduling for optimal performance whereas the Athlon processors are more relaxed in their scheduling requirements. This means that the i386 option may produce tighter code that while slower on a Pentium Pro/2/3 may actually be faster on an Athlon.

      If you really want to see how much the compiler can make of your processor, tell it what processor you are using and don't lie to the compiler. For instance if you take a look at the compiler options for the x86 target http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/i386-a nd-x86_002d64-Options.html#i386-and-x86_002d64-Opt ions you will see that GCC actually knows about the different type of AMD processors. So if you for instance have an AthlonXP and you want to try what the best code is that GCC can produce for your processor, try the option -march=athlon-xp

      This is of course no guarantee that your program will run faster. I agree with your overall answer "it depends". Also, I must admit that the Athlon options for 32 bit code may not be so well tuned as the Intel options. This may partly be due to the fact that the Athlon processor is more "flexible" in their code execution and there are less occasions to improve performance by better scheduling.

      In conclusion, I think people are too much fixed on the "mythical" i686 option whereas very few people still use processors for which the i686 is the best one. GCC knows a lot of processors and if you want to compile code just for your own machine, tell GCC what processor you *really* have. Also remember that there are 2 options to select the processor: the -mtune and the -march option. -march gives the minimum processor on which the code is to run and influences what kind of instructions can be used at all. -mtune specifies on which processor the code is to be run fastest and incluences instruction scheduling as well as selecting the best instruction in case there would be multiple prossibilities.

      Marcel

    15. Re:vectorization very rarely works by Omnifarious · · Score: 1

      It seems to me that your major chip manufacturer employer would stand to gain a great deal by getting these things into gcc instead of having it be in their proprietary compiler. Because then people would have even more incentive to start using your employers products.

  52. OOo Calc by tepples · · Score: 2, Interesting

    Sure, OpenOffice.org spends a lot of time at the idle loop compared to say Half-Life, but there are some cases when even a word processor can lag. Faster loops make repeated operations on the most complex documents, such as Writer reflow, Calc recalculation, and Draw repainting, faster. Faster operations make OOo more responsive in general. More responsive OOo makes users happy.

    1. Re:OOo Calc by Anonymous Coward · · Score: 0

      Two words for why lots of apps are slow (esp on startup):

      Disk Seeking

      Not something a game programmer will be all that familiar with.

      Whether it's doing unnecessary jumping around while reading disparate libraries, or data files (lots of icons etc)... or just because it's really bloated and sucks up memory forcing swapping. Disc seeking is *very* expensive operation. It's a computer killer, and it is by far the biggest unrecognised pain-in-the-arse of software. There are other reasons of course... but lots of programmers focus on algorithms and optimisation levels and registers and never even bloody consider the disk.

  53. GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 5, Informative

    due to the fact that all its c++ shared libraries will now be 40% smaller due to the symbol visibility improvements (i.e., no runtime adjustment needed by the linker for internal-only functions). This translates into a significant speed improvement for all KDE code.

    1. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 2, Interesting

      speed improvement for kde code? less symbols means dynamic linking is quicker, this is done at app startup, and does not effect running speed of the code at all.

    2. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 5, Informative

      In case you hadn't noticed, the "slow" part of running KDE are the start up times. Once you actually get KDE loaded, the runtime speed is fine.

      -a GNOME/KDE agnostic fluxbox user

    3. Re:GCC 4.0's biggest winner is probably KDE by Taladar · · Score: 2, Funny

      The slow part of KDE is the compile time...

    4. Re:GCC 4.0's biggest winner is probably KDE by tacocat · · Score: 1

      This is assuming you have 512MB of RAM available for the desktop. Not all notebooks come with that luxury you know...

    5. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      The slow part of KDE is the compile time...

      You must be a Gentoo user. Nobody else cares about compile time, because they have cool people called "packagers" or "maintainers" to compile it for them.

    6. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      When mozilla got symbol visibility support it also got 4-5% faster in loading pages.

      https://bugzilla.mozilla.org/show_bug.cgi?id=273 33 6

    7. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      I find these types of comments most amusing. Every new GCC release brings a blizzard of comments that "it will really benefit KDE"... I remember the time when KDE picked C++ and deflected criticism by claiming that there was no problem.

      You know, if you'd made better choices 6+ years ago, you wouldn't be sitting around for over half a decade waiting for the GCC team to save your ass from your own crappy design and code.

    8. Re:GCC 4.0's biggest winner is probably KDE by alonso · · Score: 1

      If I remember well the slow startup depend on the lookup in the table of simbolsof the shared libraries because all the function are visible. Now the lookup of te linker will be faster.

    9. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      Yeah, and I guess they'll compile this for you as well:
      All software with all combinations of configure options, for example mc with X support, gpm support,
      ftp, ssh, smb...
      Current KDE / E17 / whatever from CVS every week
      Unknown junk of software you happen need.

      IMO it's better to have system suitable for compiling stuff when you happen to need it

      ah, and since package = about 5 - 20 lines of text, package database (portage) is large and current compared to other distros

    10. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      Well then KDE will win twice over then, because TFA states that C++ compilation is 25% faster.

    11. Re:GCC 4.0's biggest winner is probably KDE by m50d · · Score: 1

      True, but why the are there not mirrors of all the different versions? Debian has something like 300 different mirrors, and you wouldn't be increasing the overall bandwidth any - just have different mirrors have binary packages done with different options, and the package install tool uses the one you need? (I'm a gentoo user who would like to have both USE and binary packages)

      --
      I am trolling
    12. Re:GCC 4.0's biggest winner is probably KDE by multipart · · Score: 2, Insightful

      Well, it's a shame then, that GCC 4.0 cannot even compile KDE. It miscompiles it.

    13. Re:GCC 4.0's biggest winner is probably KDE by Anonymous+Brave+Guy · · Score: 2, Funny
      The slow part of KDE is the compile time...

      Damn. You have to compile it? No wonder mine hasn't loaded yet...

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    14. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 1, Insightful

      Yeah, it's really too bad that you can't compile stuff on other distros. How do people survive?

    15. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      Crappy design compared to what? The stupid gtk pseudo-OO-in-C design? Gnome is a pile of crap.

    16. Re:GCC 4.0's biggest winner is probably KDE by msh104 · · Score: 1

      not many people use laptops for compiling linux packages either...

    17. Re:GCC 4.0's biggest winner is probably KDE by jusdisgi · · Score: 1

      Yes, I've always found that to be the case also. But if so, then the GP's point is right on target; the shrinking and optimization of all those libs should dramatically improve the load times.

      It will also make prelinking more attractive, as it should decrease the extra diskspace used. And that should *seriously* cut the loads.

      --
      Given a choice between free speech and free beer, most people will take the beer.
    18. Re:GCC 4.0's biggest winner is probably KDE by Anonymous Coward · · Score: 0

      What does pseudo-OO-in-C mean? Oh yeah, I forgot... KDE is written in a super-special object oriented way and runs object oriented code directly on the microprocessor.

      What a fuckwit.

    19. Re:GCC 4.0's biggest winner is probably KDE by jusdisgi · · Score: 1

      I'm a gentoo user who would like to have both USE and binary packages

      Don't forget, you can make binary packages any time you want, either when you're building from source (with emerge --buildpkg), alone for a non-installed package (with emerge --buildpkgonly), or from a previously-installed package (with quickpkg). Obviously, somebody's still got to compile it once, and it freezes the USE flags in place, but if you've got a bunch of machines, or if a bunch of people want to get together and agree on their USE flags, you can save a lot of time.

      As for the "why not have builds of all the options on the mirrors" question, do an 'emerge -pv php' some time and look at that list of USE flags. I'm showing 43 different options that can each be on or off. That's 2^43, or 8796093020000 different binary packages to store. Good enough reason?

      --
      Given a choice between free speech and free beer, most people will take the beer.
  54. Re:I am so happy!!! by Anonymous Coward · · Score: 0

    He spent to much time debugging Windows 9x registeries. He became the registery.

    That's what happens when you brain blue-screens.

  55. Any bechmarks by DesiVideoGamer · · Score: 2, Insightful

    Does anybody have some informal performance benchmarks between 4.0.0 and the last version? (particularly the runtime of the application)

    1. Re:Any bechmarks by devnullify · · Score: 2, Informative

      The OpenSSL speed suite is about 2.87% (averaged over all of the throughput tests) faster with gcc 4 (Debian prerelease) than gcc 3.3.5 on my Duron machine. There were no cases where gcc 4 was more than 0.5% slower than 3.3.5.

  56. Don't use -fweb with 4.0 by Stonent1 · · Score: 1

    -fweb came with 3.4 and supposedly helped optimize code in general but in 4.0 some things changed and now -fweb is making code slower according some GCC developers, so you don't want to be using it as a CFLAG any more.

    1. Re:Don't use -fweb with 4.0 by Just+Some+Guy · · Score: 1
      From the GCC info page:
      `-O3'

      Optimize yet more. `-O3' turns on all optimizations specified by `-O2' and also turns on the `-finline-functions', `-fweb' and `-frename-registers' options.

      Is anyone using "-O2 -fweb"? It seems like the sort of 1337 thing that someone would redundantly toss in with -O99 or the like.
      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re:Don't use -fweb with 4.0 by Quattro+Vezina · · Score: 1

      -O3 is a bad, bad idea regardless of what -fweb does.

      It's actually a counter-optimisation, in that it results in slower loading times, as it bloats the hell out of your binaries, meaning you need to load more data into RAM. Naturally, it also results in your RAM being used up far faster than normal. On top of all that, -O3 compiles take much more time than non--O3 compiles. That last part isn't terribly bad tho--it would be worth it, if not for the fact that -O3 has no real benefits, yet it has a whole host of negative side-effects.

      I know this from experience--I used to use -O3 all the time, until I found this out. Now, I use -Os instead, which is like -O2 except it doesn't add certain binary-bloating flags that are present in -O2.

      --
      I support the Center for Consumer Freedom
    3. Re:Don't use -fweb with 4.0 by norwoodites · · Score: 0, Flamebait

      Why we you using it in the first place?
      Seems like your mistake really. Anyways the reason why it is slower is because well there is no use for it any more. It use was mainly to get around some deficiencies in the optimizers.

    4. Re:Don't use -fweb with 4.0 by Just+Some+Guy · · Score: 1
      Now, I use -Os instead, which is like -O2 except it doesn't add certain binary-bloating flags that are present in -O2.

      From the same info page:

      `-Os' disables the following optimization flags: -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -fprefetch-loop-arrays

      IANA compiler expert, but it looks like those would be pretty good optimizations to leave enabled, even if the increase the object size somewhat - as long as you're not complete starved for cache. What CPU do you use -Os on? Have you benchmarked the differences?

      I have an older Alpha that I might give -Os a test on whenever I can afford to let it grind away at a compile for a few hours.

      --
      Dewey, what part of this looks like authorities should be involved?
  57. Interesting by mcc · · Score: 1

    Is the autovectorization (for altivec) also present in Apple's version of GCC4? How does the autovectorization interact with code which already contains veclib calls, if at all?

  58. Re:I am so happy!!! by lachlan76 · · Score: 1

    Appears to have had rusty-nail abortion.

  59. Patent issues by plgs · · Score: 5, Informative
    "Unfortunately we cannot implement Steensgaard [pointer] analysis due to patent issues."

    They mean this patent owned by this company. What a surprise.

    1. Re:Patent issues by m50d · · Score: 1

      Surely that's not a valid patent everywhere. Could there be a nonus fork with improved pointer analysis?

      --
      I am trolling
    2. Re:Patent issues by polyp2000 · · Score: 1

      india ?

      --
      Electronic Music Made Using Linux http://soundcloud.com/polyp
    3. Re:Patent issues by hey! · · Score: 1

      Hmmmm. Still would be illegal to use. A patent holder "owns" the invention in question.

      Now -- here's the kicker. Can you use the output of the super-duper optimization method? Probably.

      So, I am envisioning compile farms located in a country where the patent holders don't "own" the invention.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    4. Re:Patent issues by Anonymous Coward · · Score: 0

      Anywhere in Europe. Untill now, software patents aren't legal (but this may change, as it's heavily discussed in EU parliament ...).

    5. Re:Patent issues by m50d · · Score: 1

      The patent holder only owns it in countries where the patent is valid. In the EU I'm pretty sure there's no software or algorithm patents, so EU people can use this super-optimization method whether or not there's a patent on it.

      --
      I am trolling
    6. Re:Patent issues by cpghost · · Score: 1

      Just wait 20 years until the patent expires...

      ... or lobby your congressperson to push for a patent reform, that would either abolish software patents completely, or at least lower the protection time to something more realistic and decent, like, say, 5 years.

      --
      cpghost at Cordula's Web.
  60. Getoo forum thread on gcc 4 by vandan · · Score: 3, Informative

    For those who want to know what works and what doesn't: http://forums.gentoo.org/viewtopic-t-176085.html

  61. Benchmarks comparing 3 to 4 available? by ivaldes3 · · Score: 2, Insightful

    Are there benchmarks comparing 3 to 4 available? What benefitw would the average user eventually expect from this release? Thanks!

    -- IV

    --
    http://www.LinuxMedNews.com Revolutionizing Medical Education and Practice.
    1. Re:Benchmarks comparing 3 to 4 available? by Anonymous Coward · · Score: 0

      My benchmark indicates than 4 is 1 more than 3:

      4 - 3 = 1 !

  62. You're right. by MrDomino · · Score: 2, Informative
    Like, could it conceivably work faster and use up less in the way of resources if the different languages were separated into different compilers?

    The different languages ARE separated into different compilers.

  63. MMX and 3DNow! vectorization? by Anonymous Coward · · Score: 0

    Unfortunatly, it seems you have to have SSE or SSE2 to take advantage of the auto-vectorization

  64. Oops by vandan · · Score: 1

    Make that "Gentoo". Damned 'n' key...

  65. Re:What a coincidence by MassacrE · · Score: 1

    Are you talking about the new C++-derivative language support? You want std::string, not System::String. Without a qualifier, it will probably want to use the second form.

    And yes, you have to use references ( "^" ) for managed types, not pointers. References move by the whims of the garbage collector.

    Better get used to it - it is a proposed for ECMA (and later ISO) standardization. The version in the VS.Net 2003 release is basically gone now, swapped out for the iso-proposed version in VS 2005. Benefits include full managed STL support, but unfortunately existing C++ examples will probably require editing before compilation will work.

  66. Hehe, on dial-up? by antdude · · Score: 0, Offtopic

    k4_pacific must be on dial-up. :)

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  67. people use -fweb by r00t · · Score: 2, Informative
    Having -finline-functions in -O3 is yucky. It tends to make code fall out of the cache, slowing things down. You get more cache misses.

    So the choice has been:

    • -O2 -fweb
    • -O3 -fno-inline-functions
    (adding -frename-registers or -fno-rename-registers too, as desired)
    1. Re:people use -fweb by mrchaotica · · Score: 1

      Wouldn't the cache misses be a bigger deal on some processors than on others? For those of us without P4s might -finline-functions be a net benefit?

      (I'm not asserting that to be the case; I'm just asking)

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    2. Re:people use -fweb by Just+Some+Guy · · Score: 1

      That makes a little more sense. Thanks for the info.

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:people use -fweb by r00t · · Score: 1
      The ideal would be to put a few performance-critical functions in *.c files compiled with -finline-functions, and using -fno-inline-functions or even -Os for everything else.

      Often enough, using -Os (small code) for a whole project will make the code run faster. This is of course just wrong, but that's how it is. Any slightly modern processor (roughly, Pentium Pro or later) is likely to behave this way.

      Top programmers like Linus put a good deal of thought into this sort of thing, using all sorts of tricks to reduce instruction cache misses.

  68. Shouldn't they have done this 10 years ago? by Old+Wolf · · Score: 4, Interesting

    One of the changes in 4.0.0 is autovectorization optimizing.
    One _ancient_ compiler (10+ years) I have to use, already has this feature -- and on a large scale: it'll do it over several screensful of code. What took GCC so long?

    Unfortunately, this compiler I mention also has a bug: once it's factored out 'i' in a piece of code like that below, it then complains that 'i' is an unused variable. So you have to do something with 'i' to suppress that warning, which kinda defeats the purpose of the autovectorization.

    Sample code:

    int a[256], b[256], c[256];
    foo () {
    int i;

    for (i=0; i256; i++){
    a[i] = b[i] + c[i];
    }
    }

    1. Re:Shouldn't they have done this 10 years ago? by TeknoHog · · Score: 1
      I think the main reason it hasn't been done is the following..

      If you know your code is parallelizable, you should not have to serialize it by yourself, only to be parallelized back again. It would be a waste of effort for you and the compiler. You should be using a library to handle the parallelity, or use a sensible language instead of C. This is a case where a higher-level language can actually be more efficient than C, because C is too low-level and assumes too much about the hardware.

      --
      Escher was the first MC and Giger invented the HR department.
    2. Re:Shouldn't they have done this 10 years ago? by Hast · · Score: 2, Interesting
      One _ancient_ compiler (10+ years) I have to use, already has this feature -- and on a large scale: it'll do it over several screensful of code. What took GCC so long?

      Because vectorisation and parallelisation are two very hard problems. Normal compiler optimisations pale in comparison for the most part.

      Even the best currently available vectorising compilers will do a pretty poor job compared to human optimisations (in cases where it's possible to do by hand). I have seen examples were a simple c-loop could be hand optimised into half a page of asm where a vectorising compiler produced 4 pages.

      It is a REALLY hard problem.

      Unfortunately, this compiler I mention also has a bug: once it's factored out 'i' in a piece of code like that below, it then complains that 'i' is an unused variable. So you have to do something with 'i' to suppress that warning, which kinda defeats the purpose of the autovectorization.

      Which leads me to believe that it wasn't doing a very good job at all. Just because it claims to do vectorisation and adds a few asm instructions doesn't mean it's doing a poor job. That they couldn't even detect the iterator variable may even hint that it could produce broken code.
    3. Re:Shouldn't they have done this 10 years ago? by Lars+T. · · Score: 1

      Ahh, but you forgett SPEC. You can't change a single byte of the sources, so how can you use parallelized code without auto-vectorization?

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    4. Re:Shouldn't they have done this 10 years ago? by Per+Abrahamsen · · Score: 1

      > What took GCC so long?

      GCC didn't have the proper middle-end for this kind of optimizations. The big thing in 4.0 is that it now has a middle-end not 20 years out of date.

      What took it so long? How wasy do you believe it is to change middle end for an old compiler that support as many front-ends and back-ends as GCC?

      Getting the funding is also hard, the task is too large for a volunteer, and too generic for a traditional sponsor.

  69. No.. by Goonie · · Score: 1

    This is all done in the intermediate representation within the compiler. It's not programmer-visible. Most developers won't know or care. They'll only care about the fact that programs compiled with GCC 4.0 are faster than ones compiled with earlier versions of GCC.

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
  70. Use the Brer Rabbit technique?... by NotQuiteReal · · Score: 1
    1) Just post the offending code in some god-forsaken non-patent protecting locale.

    2) Put an empty spot in the approprate place(s), with #ifdefs - saying "whatever you do, don't goto www.godforsaken.code.xx and get steensgaard.c"... etc.

    Of course resultant binaries might only be legal for personal use.

    IANAL, but I'd play one one TV, if you paid me!

    --
    This issue is a bit more complicated than you think.
    1. Re:Use the Brer Rabbit technique?... by Anonymous Coward · · Score: 0

      I think the Roger Rabbit technique might also work...

    2. Re:Use the Brer Rabbit technique?... by Ziviyr · · Score: 1

      Given how many people illegally watch their legally owned DVDs, I doubt there'll be much care about that.

      --

      Someone set us up the bomb, so shine we are!
  71. "Paltry" is probably a poor choice of words by AHumbleOpinion · · Score: 1

    There are a hell of a lot more users that depend on GCC then the paltry Apple userbase.

    I don't wish to start a flamewar, zealots of both sides please go play elsewhere, but Apple probably has more users than Linux, and every other Unix box combined is probably dwarfed by Linux. If "paltry" applies to Apple then it probably applies to Linux and Unix in general.

    You are right about embedded devices though.

    1. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 4, Insightful

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

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    2. Re:"Paltry" is probably a poor choice of words by AHumbleOpinion · · Score: 2, Insightful

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

    3. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      Your joking right?
      The NSA probably has more *nix servers than you can shake a stick at in their basement.
      Get a grip on your desktop centric viewpoint..

    4. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      Let's say that Apple has 99.9999999% of all desktop installs. Even then, almost none of them actually use GCC.

      Point? This entire thread is stupid and presupposes a lot of things erroneously.

      It ignores that not all Mac users even use OS X.
      It ignores that not all Mac users that use OS X install developer tools.
      It ignores that not all Mac users that use OS X and install developer tools upgrade them.
      It ignores that not all Mac users that use OS X, install developer tools, and upgrade said tools make any use of them.

      And really we can go on forever.

    5. Re:"Paltry" is probably a poor choice of words by As+Seen+On+TV · · Score: 4, Informative

      Let's say that Apple has 99.9999999% of all desktop installs. Even then, almost none of them actually use GCC.

      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.

    6. Re:"Paltry" is probably a poor choice of words by AHumbleOpinion · · Score: 1

      Aside from the fact that you are missing the point that gcc builds Mac OS X so the customers are users, your tangent applies equally well to all those Unix servers. Binaries tend to get built elsewhere and then deployed. The servers generally aren't running gcc either, and if properly secured probably don't even have it installed.

    7. Re:"Paltry" is probably a poor choice of words by InvalidError · · Score: 1

      Computers are not the only things that use compiled C/C++/Java/etc. code... many of the most basic modern microcontrollers can also be programmed using GCC or some of its variants.

      Since microcontrollers are everywhere (the average household probably has well over 100), the number of GCC-targettable microcontrollers currently deployed very likely exceeds the number of desktop/server/etc. currently in use by an order of magnitude or two.

    8. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      Steve Jobs figures that is. He probably didn't take into account that turd who ordered 24 mac mini just to "raise the apple stock". Yeah, I know that was ipod shuffles, the arguments still holds.

    9. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      what happened to the comment about hand-helds tho? the majority of those use some for or another of GCC as their compiler/linker toolchain. GCC + ARM CPU is a great combination for a powerhouse portable system.

    10. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      you are missing the point that gcc builds Mac OS X so the customers are users

      Wow, you mean I'm an MSVC user just because I once used a Windows box? And I guess that makes me a heroin user because I once shook hands with a junkie, right?

    11. Re:"Paltry" is probably a poor choice of words by Swedentom · · Score: 1

      Hell some numbers suggest that there actually are more linux desktops than mac desktops.

      I have heard this too, but I think it's a bit strange. Steve Jobs said in 2002 (IIRC) that Apple was the largest "Unix" vendor in the world. This would suggest that there are more Mac OS X boxes than Linux boxes. And... only about 60% of all Macs run Mac OS X. So how can there be more linux desktops than Macs? :-)

      --
      Sig Nature
    12. Re:"Paltry" is probably a poor choice of words by cahiha · · Score: 1

      I don't wish to start a flamewar, zealots of both sides please go play elsewhere, but Apple probably has more users than Linux, and every other Unix box combined is probably dwarfed by Linux.

      I don't believe that's true. Even looking at just desktops (but including business and academic desktops), Linux seems to be doing better than OS X. The only areas where OS X does better than Linux seems to be home computers and laptops (with some desktop Linux users using Macintosh laptops).

      Around here, Macintosh has essentially disappeared completely with not even any stores with 60 miles carrying Apple or Macintosh software anymore, but Linux is growing strongly.

      But if you have numbers that say otherwise, maybe you can share them?

    13. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      Then Steve Jobs is full of shit. easy as that. IBM and SUN are many, many, many times larger and selling unix. Hell, what apple sells cant even be officially called unix, only unix-like.

    14. Re:"Paltry" is probably a poor choice of words by multipart · · Score: 1

      My understanding is that Apple uses a GCC 3.3 based compiler to build their distro, and GCC 4.0 is their "performance compiler", ie. something to pump out high SPEC scores with.

    15. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      Mac OS X 10.3 "panther" is built with gcc 3.3. Mac OS X 10.4 "Tiger", which is going to be released in in the end of april, will be built with 4.0.

    16. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0
      Try this, desktops dwarf servers and such. So your 50% of a small number is not all that meaningful. ;-)


      How many Apple desktops do you have? I have 3 whitebox x86 machines sat in a row at home, all running linux. My AMD64 laptop runs linux, my 3 colocated X86 servers run linux... We use it at work as well but I don't have the figures there.

      How many Apple desktops did you say you had again?
    17. Re:"Paltry" is probably a poor choice of words by sumdumass · · Score: 1

      If you look at it from the perspective that apple provides a complete solution he is corect. but the conclusion that apple dwarfs linux is still wrong.

      The different distro branches as well as IBM other distros would be competing for the same title of linux vendor. What we are failing to acknowledge would be that while apple is the largest, there are many more companies providing linux solutions then there are companies providing Apple/mac solutions. If we were to combine all ditrobutions of linux as well as group all versions of unix and BSD into thier repective groups, the numbers would be different. After all, OS X is basicaly a BSD port changed enough to be sold as a different product.

      I think the terms here "unix" and "linux" wich is confusing. "Linux" and "unix" have become one of those words with dual meanings. First they mean thier respective operating systems cores but more ot the point it has become a standard meaning for the type of tecknoligy represented by the software that make the core a complete OS. To ilistrate, linux is the kernel base of most common distros like redhat, mandrake, and such. Redhat is not linux in itself but redhat is linux. linux isn't Unix but it is unix comapible and is often interchangable.

      Apple verry well could be the largest "single" distibutor of unix but that shouldn't discount the different distibutors availible.

    18. Re:"Paltry" is probably a poor choice of words by halivar · · Score: 2, Funny

      Mac OS X itself is compiled with GCC 4.

      Amazing, considering it was just released. Maye Jobs has missed his true calling as a purveryor of time machines?

    19. Re:"Paltry" is probably a poor choice of words by fimbulvetr · · Score: 1

      Oh, shit, Steve said it. It _MUST_ be true then.
      I'dda though Sun woulda put a good fight.

    20. Re:"Paltry" is probably a poor choice of words by A+nonymous+Coward · · Score: 2, Insightful

      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.

    21. Re:"Paltry" is probably a poor choice of words by bluGill · · Score: 1

      For starters there is only one Mac vendor in the world: Apple. (IIRC there might be a clone left out there, but if Apple limits them to such a small market we can ignore them) There are hundreds of linux vendors. RedHat, Slackware, Mandrake, and Suse come to mind instantly. The latter two are making money selling desktop systems. Then there are the non-vendors: Debian, and Gentoo really aren't companies but many people use their product on their desktop.

      Add it all up and linux could have double the number of desktops while still allowing Apple to be the largest vendor.

      Don't forget that linux is Free - it is hard to count Linux installations because there is no legal requirement to do something trackable. Some people buy/download a distribution once, and install it on 100+ machines legally. The free ones often come from ftp servers or bit torrents that do not give individual file download information out (it might be logged, but the logs are private).

    22. Re:"Paltry" is probably a poor choice of words by As+Seen+On+TV · · Score: 1

      We've been using GCC 4 internally since the winter of 2003.

    23. Re:"Paltry" is probably a poor choice of words by jusdisgi · · Score: 1

      Steve Jobs said in 2002 (IIRC) that Apple was the largest "Unix" vendor in the world. This would suggest that there are more Mac OS X boxes than Linux boxes. And... only about 60% of all Macs run Mac OS X. So how can there be more linux desktops than Macs? :-)

      No, sorry, that does not follow. Apple can easily be the largest single Unix vendor in the world and still have a tiny slice of the Unix market share; not all markets are dominated by the largest player. If Apple sells 10% of the Unix machines, and 30 other vendors each sell 3%, OSX would have 10% of the Unix market while Apple would be the largest Unix vendor.

      Also consider that quite a large chunk of Linux machines aren't sold as such. They may come with Windows (further screwing up reporting) or simply as whiteboxes. This is probably more pronounced in the desktop space than in servers. The Linux desktop market has a few extremely small vendors, but market share that outshines those vendors dramatically.

      The desktop numbers I've seen from several sources are inconclusive. Some have Macs ahead, some Linux. But at this point I would say it's a real close. I tend to think Linux is ahead simply because I doubt most of the studies are adequately accounting for the points I mention above, but I don't really know that.

      That said, I'll be dollars to donuts that there are vastly more Linux computers total (desktop + server) than Macs. And I'll bet the percentage of Macs that at some point in their lives run gcc is not even comparable to that of Linux, BSD, or any of the commercial Unixes. So, at least in the context of this discussion, the Mac community is indeed "paltry."

      --
      Given a choice between free speech and free beer, most people will take the beer.
    24. Re:"Paltry" is probably a poor choice of words by Lars+T. · · Score: 2, Insightful
      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.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    25. Re:"Paltry" is probably a poor choice of words by jusdisgi · · Score: 2, Insightful

      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!

      --
      Given a choice between free speech and free beer, most people will take the beer.
    26. Re:"Paltry" is probably a poor choice of words by AHumbleOpinion · · Score: 1

      Your sample size is insignificant

    27. Re:"Paltry" is probably a poor choice of words by AHumbleOpinion · · Score: 1

      My earlier post said the gp was right about embedded devices but wrong about desktop/servers. No one is arguing embedded devices.

    28. Re:"Paltry" is probably a poor choice of words by AHumbleOpinion · · Score: 1

      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!

      So all the production Linux server and embedded devices do not count either since they are not currently running gcc 4.0.0 code. Using your logic all that counts are the few hobbyists who have recompiled their boxes.

    29. Re:"Paltry" is probably a poor choice of words by jusdisgi · · Score: 1

      I can say with reasonable certainty that at this moment, the majority of people running gcc 4.0.0 are not concurrently running an operating system produced by Apple. I also do not expect that fact to change on or near April 29.

      I also believe that the majority of people running software compiled with gcc 4.0.0 are currently not Apple users. This may change, temporarily, shortly after the 29th. But in the long run it will not.

      Specious arguments centered on what Steve Jobs said at some Mac conference, and what fallacious conclusions about Apple's market share we can draw from it, don't change the facts; Apple represents a small part of the *nix world. We're all happy to have them on board, but this dominant, overbearing attitude has got to go.

      --
      Given a choice between free speech and free beer, most people will take the beer.
    30. Re:"Paltry" is probably a poor choice of words by As+Seen+On+TV · · Score: 1

      We've already shipped seven million copies of Tiger. That's not retail shipments. That's actual orders to actual humans. That's seven million people who are already running software compiled with GCC 4, or who will be once their UPS guy arrives sometime between now and a week from today.

      (The customers who go to the trouble of ordering early are always overjoyed when they get their shipment a full week ahead of schedule. Did you order pre-order Tiger from the Apple Store on our Web site? Check your mail. Odds are fair that your box is already waiting for you.)

      Apple represents a small part of the *nix world.

      According to Gartner, we shipped more copies of our operating system in 2004 than all other vendors of Unix-based operating systems worldwide, combined. In point of fact, Apple represents the majority of the Unix world.

    31. Re:"Paltry" is probably a poor choice of words by jusdisgi · · Score: 1

      According to Gartner, we shipped more copies of our operating system in 2004 than all other vendors of Unix-based operating systems worldwide, combined. In point of fact, Apple represents the majority of the Unix world.

      Sorry, man, but that's just absolute bullshit. The vast majority of Linux machines have no vendor at all, and Apple never has been and never will represent the majority of Unix machines. Get the fuck over yourselves.

      --
      Given a choice between free speech and free beer, most people will take the beer.
    32. Re:"Paltry" is probably a poor choice of words by the_2nd_coming · · Score: 1

      the vast number of Linux machines are not linux machines for long.

      --



      I am the Alpha and the Omega-3
    33. Re:"Paltry" is probably a poor choice of words by ultranova · · Score: 1

      Your sample size is insignificant

      ...when compared to the power of the GPL. But beware of the Dark Side, beware of the BSD, or you will suffer your father's fate and die for decades.

      Besides, you can't know that his sample size is insignificant, since he didn't state its size; for all you know, his workplace could be The Shadowy Corporation Conspiracy That Runs The World. That would make it kinda big, wouldn't it ?-)

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    34. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 1

      Did I miss something ?? When the fuck did I make the blanket comparison of "all desktops vs all backend".

      I did no such thing. Perhaps you and whoever the dimwit was who modded you up should go back to junior high and read about english comprehension. You are apparently lacking that skill.

      I would like your estimates of the combined total for apple and unix desktops (say about 6% of the total market) compared to the amount of unix systems on the backend of the internet (which would be somewhere in the area of 50-60% of that total market.). My guess would be that the numbers are fairly similar, which I pointed out in my original post. If you take half (or slightly less than) of the assumed 6% of desktops and attribute it to unix/linux and the other half and attribute it to mac, then add all of the back end unix systems to the unix/linux side of the count you probably end up at double what the apple crew accounts for.

      6% of the total desktops = the combined market share of unix/apple.

      ~50% of the backend = non-apple unix market share.

      Assuming the 50% of the backend is roughly equal to the total (6%) of the desktops, and assuming half the desktops are apple you will end up with roughly a 2:1 ratio of non-apple unix machines to apple machines.

      I can pipe this all through bablefish for you since you apparently cant read or understand english.

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    35. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 1

      Steve jobs is full of malarky. They are not bigger than IBM. Probably about the same in size as Sun. Not to mention that there really is no way to measure the number of linux desktop installs. Dual boots etc etc etc.

      I was just throwing it out there to negate any "way more apple" crap, which is equally loony since there is no real way to measure that either. I would generally guess that combined the nix's and apple make up about 6-7% of the desktop market. Another 1% (if that) going to random non unix non apple non windows desktops and the rest (~92%) going to windows.

      The logical reasoning behind the "more linux" argument is based on certain guesses. Namely the cheaply and readily available hardware. Apple has gotten loads better lately in that department, but they still have a ways to go to match x86 hardware availability. Hell I have 2 name brand store bought machines here that came with windows, counted as a sale to them ... yet dont have windows on them any longer (and have not for years).

      The most important part of this equation is simple: the average person already owns something capable of running linux. In order to run OSX one must make a *new* purchase the vast majority of the time. OSX might be easier to learn and you can piss up a rope with the "time is money" arguement since the majority of people dont think like that, and its not logically true for most people either.

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    36. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 1

      and how the hell do you figure that ? The crap sold at wal-mart and the like might or might not be getting wiped (hell I dont even know anyone who has bought one yet) but the majority (by leaps and bounds) of systems running linux were never "sold" by a vendor the way windows is. I have bought two copies of linux in the past ~6 years since I have started using it. Yet I have at this moment 9 machines in this room (at my home) running linux of many flavors. The majority of which were downloaded for free.

      So tell me, if I download something from a random FTP mirror and install it on either a machine I built myself or bought from somebody used (ebay for instance) how the hell does gartner count that ?

      Hell how do you come up with the theory that "the vast number of Linux machines are not linux machines for long." ???

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    37. Re:"Paltry" is probably a poor choice of words by Slynkie · · Score: 1

      Not to invalidate your point, but I'm pretty sure 100% of the 40 million aren't on OS X. Just sayin'.

    38. Re:"Paltry" is probably a poor choice of words by ValiantSoul · · Score: 1

      "We've been using GCC 4 internally since the winter of 2003."

      GCC 4 was just finished you jackass. Apple (not you, its very easy to tell you are just some idiot wanting karma) therefore could not have been using it internally since 2003.
      Grow up, get a job, then die a <dare I say> peaceful </dare>death.

    39. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      GCC was just released. The poster, who has established his creds as an Apple insider, has no reason to lie about this. After all, Apple was using GCC 3 to compile Panther for a full year before that compiler was publicly available.

      As I understand it, Apple wrote most of the new stuff in GCC 4 anyway.

    40. Re:"Paltry" is probably a poor choice of words by Lars+T. · · Score: 1
      I would like your estimates of the combined total for apple and unix desktops (say about 6% of the total market) compared to the amount of unix systems on the backend of the internet (which would be somewhere in the area of 50-60% of that total market.). My guess would be that the numbers are fairly similar, which I pointed out in my original post.

      Worldwide server unit shipments 6.3 mln units in 2004 vs. (749 + 876 + 836 + 1046)k = 3.507 mln Macs in 2004

      Minus number of servers only used internaly = U R wR0ng.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    41. Re:"Paltry" is probably a poor choice of words by Omnifarious · · Score: 1

      Wow! Where do you live?!

    42. Re:"Paltry" is probably a poor choice of words by petermgreen · · Score: 1

      sure the thing is you can't measure "shipments" of free software since by definition its freely redistributable so there is no small handfull of vendors shipping it.

      its really not feasible to measure how widely free software is used using traditional metrics like marketshare if you try you will end up with a huge underestimate.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    43. Re:"Paltry" is probably a poor choice of words by Anonymous Coward · · Score: 0

      Same way you come up with "There are lots and lots of Linux machines out there, I promise, despite the fact that there's no way of measuring it. Why, I have two Linux machines in my mom's basement right now, isn't that a lot?"

      Out-of-the-ass is out-of-the-ass, no matter what the numbers say.

    44. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 1

      Again your pulling shit out of your ass. Exactly when did I say the total sales for the year of 2004 ? I didnt.

      Why dont you try digging up some statistics on the life expectancy of servers vs workstations. I know at every employer I have worked for workstations get upgraded on a 2 or 3 year cycle whereas servers are usually on a 5 year (or longer) schedule. I would also point out that servers used internally still use gcc and hence should be counted just like any macs sold to a private company for internal use should be (and are) counted.

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    45. Re:"Paltry" is probably a poor choice of words by anothy · · Score: 0, Troll
      You have no concept of numbers.
      funny, i was thinking the same thing about your post. either that or you have no concept of Unix. let's examine this statement:
      Unix and its children and cousins on the back and front end probably double the total number of apple boxes out there.
      well that's fascinating. really. OS X, of course, is a unix system, so your statement essentially boils down to (A + B + n) >= 2A. that's certainly not hard to believe, but it's also not particularly interesting or informative. and none of these numbers say anything about GCC use - of any version.

      of course, my more general question is where any of your numbers come from. Unix handles "close to 50% of the backend of the internet"? at least among things which run any sort of "real" OS (that is, not Cisco's IOS, for example), i'm pretty sure the numbers are much higher than that. but what does "the backend of the internet" mean, anyway? database servers? DNS server? surely you're not talking about the real infrastructure components, or Unix drops probably by an order of magnitude.
      --

      i speak for myself and those who like what i say.
    46. Re:"Paltry" is probably a poor choice of words by Lars+T. · · Score: 1

      Well, I don't know where you pull things out off.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    47. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 1

      Without going to far into it or getting overly granual I just meant anything not a desktop or network component (switch, router etc). For instance file servers and DNS servers. Generally servers is what I was thinking about.

      I tried pointing out that apple is unix and that I was refering to the other unices, but yes I slipped up a bit.

      What is interesting and informative is a matter of opinion. To some people "oh look a fungus" is interesting, to others "oh look an exhaust manifold" is interesting.

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    48. Re:"Paltry" is probably a poor choice of words by 1lus10n · · Score: 1

      The internet. Its about as big as the unoccupied space between your ears.

      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
    49. Re:"Paltry" is probably a poor choice of words by Knuckles · · Score: 1

      Probably in Europe were Apple has botched it totally. Apples are to be seen again recently, but the prices are still outrageous compared to USD.
      I mean, EUR prices on apple.de are approx. the same as USD prices on apple com, when they should be much lower. And prices are even good now compared to how Apple has priced itself out of the German market in the 90ies (and that's already after taking into account the quality of the machines)

      --
      "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
    50. Re:"Paltry" is probably a poor choice of words by Lars+T. · · Score: 1

      Not half as big as your lower orifice you pulled your numbers from, Mr. Goatse.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    51. Re:"Paltry" is probably a poor choice of words by stonecypher · · Score: 1

      Try this, desktops dwarf servers and such.

      And are in turn dwarfed by embedded. Your antilock brakes were almost certainly coded in GCC, if you've got an American car, for example.

      Besides, GCC is used for a significant chunk of desktop development, too; thanks to proper support for the flat memory model in DOS way back when, it got a very strong user following as DJGPP, and has ever since carried its momentum on virtue of price. Moreover, GCC is used heavily in corporate development, which accounts for a disproportionately large slice of compiler use.

      Your sense of numbers may be fine, but GCC is tricky, and lives everywhere.

      --
      StoneCypher is Full of BS
    52. Re:"Paltry" is probably a poor choice of words by stonecypher · · Score: 1

      Given that GCC 4 is less than two weeks old, it seems likely that OSX was actually compiled with a GCC 3 branch compiler.

      --
      StoneCypher is Full of BS
    53. Re:"Paltry" is probably a poor choice of words by As+Seen+On+TV · · Score: 1

      We've been using GCC 4 internally since the winter of 2003. It was only released by the Gnu guys recently.

  72. what's the point? by Anonymous Coward · · Score: 0

    ... of including a link to the tarball of the source code of a compiler? I wouldn't think anyone who could actually appreciate the differences of a new version would need slashdot to prompt them to try it out...

  73. Example by TeknoHog · · Score: 3, Interesting
    For an example of a sensible (slightly higher-level) language, consider the Fortran example from the autovectorization page:

    DIMENSION A(1000000), B(1000000), C(1000000)
    READ*, X, Y
    A = LOG(X); B = LOG(Y); C = A + B
    PRINT*, C(500000)
    END

    Notice the lack of an array index. These are true vector operations to begin with, so it is already assumed that the array elements are independent, therefore the log and addition can be parallelized safely.

    --
    Escher was the first MC and Giger invented the HR department.
  74. No hope for named warnings by 19thNervousBreakdown · · Score: 2, Interesting

    Will named warnings never be impemented? Or numbered? Something that lets me turn off a warning for a particular line of code?

    Have you ever tried writing an overflow safe integer class? I have, and I did, but I have to compile everything with -w because otherwise I get 40 pages of "condition will always be false due to limited range of data type". Bleh! If it will always be false, throw it away! I need the check in there for when the type will be a signed int.

    Does anyone have a ray of hope? I love most of GCC's warnings, and have always been able to work around them, but in this case there's just no way to get rid of them.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    1. Re:No hope for named warnings by MarcQuadra · · Score: 1

      grep?

      I'm no expert, but if you want to filter output of an app, the tools are already there to do it.

      I don't even want to see anything from my compiles except lines from ebuild or that start with "[make", so I slap a filter on there. If I have a problem, tee sends the unfiltered output to a log file I can inspect.

      gcc | tee |-stdout-| grep |
      L

      --
      "Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
    2. Re:No hope for named warnings by lastninja · · Score: 1

      I think you can use grep to only display the lines you want. GCC outputs warnings in a pretty standard way, it should be easy to write a regexp to filter it.

      --
      John Carmack fan, browsing at +5 since 1999.
    3. Re:No hope for named warnings by prockcore · · Score: 3, Informative

      I get 40 pages of "condition will always be false due to limited range of data type". Bleh! If it will always be false, throw it away! I need the check in there for when the type will be a signed int.

      Maybe I'm missing something, but this warning is GCC telling you that it's not going to compile that code.. so you can't possibly "need" it because GCC doesn't even compile it.

      uint8_t i=0;
      if (i>300)
      {
      printf("hello");
      }

      Compile that, and then see for yourself.. strings a.out | grep hello will return nothing. gcc optimizes your useless check right out.

    4. Re:No hope for named warnings by m50d · · Score: 1

      RTFpost. He's doing something like "uint count, then later if (count0){(overflow handling)}". Which won't be compiled but needs to be there because sometimes he'll need the same code with count being an int(perhaps it's a separate file that includes a header so count will be a uint on some platforms and int on others). So the code needs to be there, and he doesn't want gcc warning about it

      --
      I am trolling
    5. Re:No hope for named warnings by 19thNervousBreakdown · · Score: 2, Informative

      Exactly, and that's what I want it to do, but it gets tricky when you're using templates...

      template <class T> class safeint {
      template <class FromT> safeint (FromT const number) {
      // I know this test will fail sometimes, it's just an example.
      if (number < numeric_limits<T>::min()) {
      throw "You stink!";
      }
      };
      };

      If FromT is an unsigned int, and T is an int, the check will never be true and should be optimized away. However, if it's the other way around, we need that check, or there can be overflow.

      Also, I'd like to have the warning only disabled for that one line of code, so that if I make a mistake elsewhere the compiler will help me find it.

      Visual C++ can do it, come on GNU!

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  75. Gentoo with GCC 4 by Zan+Lynx · · Score: 2, Informative

    Gentoo has had a GCC 4 ebuild for months now. I've been using it to build my system. If you really really want it, you need to set your package.keywords to -* and also unmask it in package.unmask.

    Then be prepared to switch between gcc 3.4 and 3 a lot because many packages, especially multimedia packages, fail to build.

    1. Re:Gentoo with GCC 4 by Monkelectric · · Score: 1
      Eh, I think perhaps I'll wait till the kinks are out then .... but you know how the urge to recompile is :)

      Whats your impression of GCC4?.

      --

      Religion is a gateway psychosis. -- Dave Foley

    2. Re:Gentoo with GCC 4 by Zan+Lynx · · Score: 1

      My impression is that it is extra picky about standards compliance. The bits that will bite everyone the most is not allowing casts on the left side of an assignment, and not allowing array declarations without an array type definition.

      *((int*)pChar) = 32
      and
      extern struct sometype_t somearray[];
      (without defining struct sometype_t)

      are not allowed anymore.

      Other than that, I suppose that it builds faster code, as other people's benchmarks will show, but rebuilding your Gentoo with it is not going to blow you away with super speed.

    3. Re:Gentoo with GCC 4 by Monkelectric · · Score: 1

      dang.... I was hoping for another improvement like the 2.95 release. I was in charge of optimizing stuff for gentoo about 6 months before 2.95 was on anyones radar (we had a *stable* pre-release someone had given us -- it wasn't in CVS even). At that time 2.95 just blew us away. Programs like bzip were 100% faster :)

      --

      Religion is a gateway psychosis. -- Dave Foley

  76. Pascal by AmicoToni · · Score: 2, Interesting

    Something that I would really like to see integrated into GCC, sooner or later, is GNU Pascal.
    They always seem to be close, yet it never happens.

    1. Re:Pascal by dvdeug · · Score: 2, Informative

      Something that I would really like to see integrated into GCC, sooner or later, is GNU Pascal.

      GNU Pascal supports building with a number of versions of GCC, and work on GNU Pascal is with a released version of GCC. The GCC developers want GNU Pascal as just another frontend; changes should go to GCC head, and there shouldn't be #ifdefs to get it to compile with different versions of the compiler backend. That's a large problem that has stopped GPC from being merged.

  77. What did they compile it with? by Anonymous Coward · · Score: 0

    What did they compile it with?

    1. Re:What did they compile it with? by planetoid · · Score: 0

      C:\QUAKE\ID1\QUAKEC.EXE

      --
      Slashdot requires you to wait longer between hitting 'reply' and submitting a comment.
  78. TR1 included! by Anthony+Liguori · · Score: 5, Informative
    I'm surprised noone's mention the inclusion of the C++ TR1. There's a ton of very cool new library features. Here are my two favorite:
    #include <tr1/functional>

    int foo(int x, int y) { return x * y; }

    using namespace std::tr1::placeholders;

    int main() {
    std::tr1::function<int (int, int)> f;
    std::tr1::function<int (int)> g;

    // f can be stored in a container
    f = foo;

    f(2, 3);

    g = std::tr1::bind(f, _1, 3);

    // this is equivalent to f(2, 3)
    f(2)
    }
    Not to mention the inclusion of shared_ptr which provides a reference counted pointer wrapper. This will eliminate 99% of the need to do manual memory management in C++. It's all very exciting, kudus to the G++ team on this!
    1. Re:TR1 included! by Blaskowicz · · Score: 1

      That syntax seems strange to me :D, but if I read it correctly, all of that should look like this in caml :

      let foo x y = x*y;;
      let f=foo;;
      f 2 3;;
      let g a = f a 3;;
      g(2);;

    2. Re:TR1 included! by Anonymous Coward · · Score: 0

      I have to admit that I suck at C++, but still I'm a bit curious because I don't fully understand this code... Is there a typo?

      The last part says:
      ... // this is equivalent to f(2, 3)
      f(2)


      Shouldn't this be g(2); ? //fatal

    3. Re:TR1 included! by Anonymous Coward · · Score: 0
      (This is kind of a reply to both the previous replies as well as the original post...)

      I don't deny that OCaml is more pleasant to work with but some people have to use C++ for all kinds of various reasons and these new things are very good (of course, I've already been using shared_ptr and bind from Boost).

      Yes, it should be g(2).

      Also, it's a little weird and non-idiomatic for C++ that the OP chose to declare variables well before their first use. This is shorter and for me (and probably most C++ coders) a little clearer.
      std::tr1::function<int (int, int)> f = foo;
      f(2, 3);
      std::tr1::function<int (int)> g = std::tr1::bind(f, _1, 3);
      g(2);
    4. Re:TR1 included! by Anthony+Liguori · · Score: 1
      Also, it's a little weird and non-idiomatic for C++ that the OP chose to declare variables well before their first use. This is shorter and for me (and probably most C++ coders) a little clearer.
      std::tr1::function<int (int, int)> f = foo;
      f(2, 3);
      std::tr1::function<int (int)> g = std::tr1::bind(f, _1, 3);
      g(2);
      I guess I was a little too excited wrt the f(2) instead of g(2). And yes, delaying variable declaration is more natural. I didn't copy and paste actual code for fear of slashdot's lameness filter.
    5. Re:TR1 included! by StressedEd · · Score: 1

      Would you mind explaining exactly what std::tr1 is? I don't find it obvious from your code example.

      Thanks

      --
      Be nice to people on the way up. You will meet them again on your way down!
    6. Re:TR1 included! by Chris_Jefferson · · Score: 1

      While it is indeed cool, just a little warning. This isn't 100% finalised yet (although to be honest it is 99% finalised), so expect so minor changes to occur in the next version. I wouldn't expect it to be anything very serious however, particularily if you don't go insane trying to find bizarre corner cases :)

      tuple is also a nice simple class that should really have been around ages ago (it's like pair, but supports up to 10 parameters)

      --
      Combination - fun iPhone puzzling
    7. Re:TR1 included! by drac667 · · Score: 3, Informative
      TR1 means Library Technical Report 1, it contains:
      • std::tr1
      • Utilities
        • shared_ptr
        • regular expressions
        • random numbers
      • Meta-Template-Programming
        • reference_wrapper
        • lambda binders and adaptors
        • type_traits
        • tuples
      • Containers
        • arrays
        • hash containers
      For more information see this: http://www.open-std.org/jtc1/sc22/wg21/docs/papers /2004/n1647.pdf
    8. Re:TR1 included! by Anonymous Coward · · Score: 0

      Or in Mathematica...


      foo[x_,y_] := x y;
      f = foo;
      f[2,3];
      g[a_] := f[a,3]; (or g = f[#, 3] &; works too)
      g[2];

    9. Re:TR1 included! by Anthony+Liguori · · Score: 1

      While it is indeed cool, just a little warning. This isn't 100% finalised yet (although to be honest it is 99% finalised)

      Indeed. These libraries though are, at least, partially derived from the boost libraries and the boost libraries have had these features for quite some time.

  79. MINGW? by Spy+der+Mann · · Score: 2, Insightful

    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?

    1. Re:MINGW? by cimetmc · · Score: 2, Informative

      According to the following link http://www.mingw.org/MinGWiki/index.php/TheNextRel ease it might still take some time before there will be an official new MinGW version. However unofficial versions tend to popup quite quickly. For instance the following web page http://www.thisiscool.com/gcc_mingw.htm regularly provides MinGW binaries for GCC snapshots.

      As for the speed of GCC, the compilation speed is often a bit disappointing compared to commertial compilers. Dead code elimination is an optimization which GCC already does for a very long time.

      Marcel

  80. In LISP, good coding is already SSA trees by MonkeyBoyo · · Score: 0, Redundant

    In LISP code, whenever you see a SETQ (assignment) it cries out that the programmer may be lazy or not very good. Good coders know to bind values (LET) rather than change them (SETQ) and treat iteration as recursion.

    Of course functional languages have to bite the bullet when munging data structures (SET!). I have no idea how SSA representation handles such cases.

    In the pure functional sphere (e.g. Prolog) you have to treat changing an element in a data structure as making an altered clone of that data structure (though there good structural hacks so that altering 1 element in a 100000 element array does not cause the whole array to be cloned).

    Worse than functional languages are the linear logics. I'm sure they make a lot of "deep" sense, but there not only can each variable be only assigned once, but also it can only be read once.

  81. mudflap by sirvulcan · · Score: 1

    is mudflap included in the 4.0 release? I remember an article before 4.0 was release saying mudflap was going to be new in 4.0. Changelog doesnt mention it

    1. Re:mudflap by pharm · · Score: 1

      is mudflap included in the 4.0 release?

      Yup. It's certainly in the Debian GCC 4.0 packages in experimental.

  82. Probably been said before, but ... by Anonymous Coward · · Score: 0

    I've always thought that "Duck Hunt" was a pretty obscene-sounding name for a game.

  83. obligatory meme from OpenBSD mailing list: by jurv!s · · Score: 1

    if you want something done, do it yourself or keep it to yourself.

    --
    sigs are for fools and trolls. no signature is *always* appropriate. you should turn them off in your preferences.
    1. Re:obligatory meme from OpenBSD mailing list: by Anonymous Coward · · Score: 0

      Yeah, I suppose you could volunteer to work many hours on this, only to find that Apple's code dropped in for 4.1 without advanced notice.

  84. Pedant by buserror · · Score: 1

    4.0 is even more pedantic than 3.4, or 3.3. Tons of code that has been working for *years* just don't conpile anymore.
    And who came up with that idea that files not terminated with a newline should have a warning about it ? Where the hell is that rule in the C/C++ grammar anyway ?

    1. Re:Pedant by mccalli · · Score: 1
      And who came up with that idea that files not terminated with a newline should have a warning about it ? Where the hell is that rule in the C/C++ grammar anyway ?

      That's been true for years. MS C 6 (ie. pre Visual C++, in the DOS days) complained about that more than a decade ago. To be honest, I don't know if it's part of the formal spec but I've always assumed it to be the case.

      Cheers,
      Ian

    2. Re:Pedant by Make · · Score: 1

      C sources are text files. Text files consist of text lines, terminated with a newline character. The last line is also a line, which should be terminated with a newline character (see above).

      How can you say "it just doesn't compile anymore" when you're talking about a *warning* message, not an *error* message?

    3. Re:Pedant by buserror · · Score: 1

      Text files are files composed of ascii characters. The notion of "line" is totaly arbitrary. I can have a text file full of "a" and nothing else, and it'd still be a text file.
      And the pedantic issue is different from the end of line/file. Note the end of paragraph ?

  85. YOU ARE CLUELESS! by Anonymous Coward · · Score: 0

    The JDK (for Linux) is and always was built with GCC.
    AMD64 Solaris 10 is also built using GCC.

  86. what about stability? by Karaman · · Score: 1


    what about stability? Anyone?
    and x86_64 compatibility?

    3.x versions were very clumsy

    --
    sex is better than war!
    1. Re:what about stability? by planetoid · · Score: 0

      I've compiled gcc 4.0 all night and this morning I'm sort of inching carefully towards installing it in the default paths, making sure it compiles everything I've been toiling over.

      I still can't run the C++ programs I made, as libstdc++.so.6 wasn't installed in a globally-searched path (they presumably will run when I install GCC 4.0 and all its shared runtime libraries in the default paths instead of a "safe" area), but so far everything is compiling just fine. I have had to add new #include lines to a couple of sources as g++ is a little stricter about scope of global variables (ie, I was able to use errno without #include before, but g++ 4.0 complained. No biggy.

      All that's left is to determine whether or not its "safe" to blindly install gcc 4.0 right now or if I should pkgtool uninstall my old gcc. That isn't a problem as much as what to do if gcc 4.0 ends up disappointing and I want to reinstall the original version of gcc I had before, as gcc 4.0's Makefile doesn't really have an "uninstall" target to cleanly remove it. Perhaps I could turn it into a custom package first so pkgtool can do all that dirty work?

      --
      Slashdot requires you to wait longer between hitting 'reply' and submitting a comment.
    2. Re:what about stability? by planetoid · · Score: 0

      And it turns out, installing gcc 4.0 into its default desinations with make install... my C++ programs still complain about shared library libstdc++.so.6 not being found. Stupid fucking thing installed the libraries in /usr/local/lib instead of /usr/lib without asking.

      --
      Slashdot requires you to wait longer between hitting 'reply' and submitting a comment.
  87. Still no C99? by m50d · · Score: 1

    I really want to use it, it's 6 years old, please somebody implement it! (I'll try after my current project if you like, but you probably don't want my kind of coding going into gcc. Really. I hate OOP and use goto where I feel like it)

    --
    I am trolling
    1. Re:Still no C99? by Ed+Avis · · Score: 1

      Er... gcc -std=c99?

      --
      -- Ed Avis ed@membled.com
    2. Re:Still no C99? by m50d · · Score: 2, Interesting

      Is broken in some important ways, for example you can't pass complex numbers to functions, which is why it isn't the default

      --
      I am trolling
    3. Re:Still no C99? by LizardKing · · Score: 1

      You can get C99 support by specifying -std=c99 in your CFLAGS. I recently did this to get inline functions, but the code looked horrible (external definitions in header files), so I switched back to C89.

    4. Re:Still no C99? by m50d · · Score: 1

      As I said above, there's still important bits missing, if there werent c99 (or rather g99) would be the default std.

      --
      I am trolling
  88. Re:NO ONE USES GCC YOU TURDS by Karaman · · Score: 1

    you could say: Jerk off! Most of us are males with no time for women, because of heavy gcc-ing :)

    --
    sex is better than war!
  89. Found it: ISO C standard, sections 5.2.1 and 7.9.2 by mccalli · · Score: 2, Informative
    Useful usenet posting about this here. Notice the date of the post: 1993.

    Cheers,
    Ian

  90. perl fork bug by tacocat · · Score: 1

    I found an odd bug that was posted under pre-5.005 version of perl running on solaris. When you fork, filehandles and locations get carried into the child process when they aren't supposed to. I spent two weeks on this.

    Turns out that the problem is with the gcc compiler. Works great if you have the solaris compiler.

    I'll be curious to see if gcc4 has managed to fix this bug, it's many years old by now.

    1. Re:perl fork bug by hyc · · Score: 2, Informative

      ??? When an application calls fork() everything that happens next is up to the kernel. The definition of fork() is that the child gets an identical copy of everything. What does the compiler have to do with this?

      --
      -- *My* journal is more interesting than *yours*...
    2. Re:perl fork bug by Anonymous Coward · · Score: 0

      Read up on fork. That's the expected behavior unless you explicitly tell it not to copy file handles. It has nothing to do with the compiler.

    3. Re:perl fork bug by tacocat · · Score: 2, Informative

      It's not supposed to fork the file pointer.

      Read data in from a 'while()' statement and store it into an array. When it reaches a certain size, fork the process, kill the array and start filling it up from STDIN. Next time you fork your data is partially duplicated in Solaris and not at all duplicated under Linux.

    4. Re:perl fork bug by hyc · · Score: 1

      Your explanation makes no sense, you seem to have no idea what you're talking about. Sounds like what you're seeing is the difference between Solaris and Linux libc, particularly their stdio implementations. Again, that has nothing to do with the compiler. No compiler bug could cause this difference.

      --
      -- *My* journal is more interesting than *yours*...
    5. Re:perl fork bug by tacocat · · Score: 1

      Look bonehead. I can post the fucking code for you if you want but I know the following to be facts.

      Write code to run a fork program in perl on a linux box. It works great. 100%.

      Copy said code to a Solaris box that has perl compiled using gcc on it. It sucks donkey balls. it's losing data and copying data all over the fucking place and sucks worse than Windows.

      Recompile perl on Solaris using the Solaric compiler (NOT GCC!!!) and it works fucking great. 100%. No fucking problems here.

      Now, how could you possibly state that this isn't a problem with the GCC when clearly it is. I believe the code went something like this:

      while () { push @data, $_; if ($#data > 1000) { $pid = fork } next if $pid } # do the child process stuff down here

      And the children all have screwed up @data Some are duplicated, others are missing data.

  91. Re:Found it: ISO C standard, sections 5.2.1 and 7. by cuerty · · Score: 2, Informative

    I think that stuff like this made the GCC developers to add de -pedantic flag, from de man file:

    -pedantic
    Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++.For ISO C, follows the version of the ISO C standard specified by any -std option used.

    Valid ISO C and ISO C++ programs should compile properly with or without this option (though a rare few will require -ansi or a -std option specifying the required version of ISO C).However, without this option, certain GNU extensions and traditional C and C++ features are supported as well.With this option, they are rejected.

    -pedantic does not cause warning messages for use of the alternate keywords whose names begin and end with __.Pedantic warnings are also disabled in the expression that follows "__extension__".However, only system header files should use these escape routes; application programs should avoid them.

    Some users try to use -pedantic to check programs for strict ISO C conformance.They soon find that it does not do quite what they want: it finds some non-ISO practices, but not all---only those for which ISO C requires a diagnostic, and some others for which diagnostics have been added.

    A feature to report any failure to conform to ISO C might be useful in some instances, but would require considerable additional work and would be quite different from -pedantic.We don't have plans to support such a feature in the near future.

    Where the standard specified with -std represents a GNU extended dialect of C, such as gnu89 or gnu99, there is a corresponding base standard, the version of ISO C on which the GNU extended dialect is based.Warnings from -pedantic are given where they are required by the base standard.(It would not make sense for such warnings to be given only for features not in the specified GNU C dialect, since by definition the GNU dialects of C include all features the compiler supports with the given option, and there would be nothing to warn about.)


    "pendantic" is a ironic way of call it.

    --
    >Linux is not user-friendly.
    It _is_ user-friendly. It is not ignorant-friendly and idiot-friendly.
  92. Stupid lazy/stupid-person question by planetoid · · Score: 0

    As someone who upgrades major packages even more rarely than once in a blue moon, should I pkgtool uninstall my current gcc installation before unpackaging and installing gcc 4? Or will gcc 4 gracefully install over existing files without problem?

    --
    Slashdot requires you to wait longer between hitting 'reply' and submitting a comment.
    1. Re:Stupid lazy/stupid-person question by Anonymous Coward · · Score: 0

      just install FreeBSD and use portupgrade.

  93. Re:I am so happy!!! by X0563511 · · Score: 1

    Well, he's still here, so make that a failed rusty-nail abortion.

    --
    For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  94. Re:What a coincidence by ergo98 · · Score: 1

    Sorry it appears that you were actually correct. You must be one of, well one, people that actually used managed-C++ outside of Microsoft. I was just automatically presuming that you would be talking about C#.

  95. I keep on meaning to ask this.... by smcdow · · Score: 1

    Does anyone know if there is work under way to provide GCC support for Parrot?

    I'd love to see gcj compile down to parrot bytecode.

    --
    In the course of every project, it will become necessary to shoot the scientists and begin production.
    1. Re:I keep on meaning to ask this.... by Anonymous Coward · · Score: 0

      There is no such work under way.

      There has been some talk of maybe supporting C#, but then as bytecode-to-native only. It doesn't seem anyone's interested in adding more bytecode compilers.

  96. There is also a blurb on SSA for trees by benhocking · · Score: 1

    (here) which is probably quite useful if you already know what SSA is and how it applies to trees.

    --
    Ben Hocking
    Need a professional organizer?
  97. oh no! New and better optimization! by gnarlin · · Score: 1

    I guess us gentoo users will just have to recompile our systems yet again. Oh well.
    Does anyone have a loaded gun handy?

    --
    A bad analogy is like a leaky screwdriver.
    1. Re:oh no! New and better optimization! by wizkid · · Score: 1

      Go ahead, use 4.0 to compile your gentoo system! In about 3-4 Months, when you've reloaded a couple of times, and worked the bugs out, I'll upgrade my gentoo system with 4.0.x, the stabilized version :)

      Load Gun, Aim, Execute (emerge --emptytree world)

      --
      I take no responsibility for what I say. Even though I'm never wrong :)
    2. Re:oh no! New and better optimization! by ultrabot · · Score: 1

      I guess us gentoo users will just have to recompile our systems yet again. Oh well.
      Does anyone have a loaded gun handy?


      Don't you think this is going to be the situation when a source based distro has an *actual* edge over other distros? Typically the performance optimizations are a myth, but this baby might really make the distro fly...

      --
      Save your wrists today - switch to Dvorak
  98. the most important question by SQLz · · Score: 2, Funny

    Does this new GCC have a transparent background?

  99. For the Gentoo and Linux from Scratch users by KhanReaper · · Score: 1

    Outside of any conventional wisdom about using such a new compiler, I would refrain from trying to compile glibc with this newer version of gcc, for glibc will not compile properly.

    The issues associated with compiling glibc should be fixed with the version 2.3.6 release, whenever that may be.

    I started a brief web site that documents some of the issues of using the new compiler, so check it out here.

    --
    Even the Politburo concurs with Process of Elimination http://process-of-elimination.net
  100. Slow code? by darkat · · Score: 1

    I build and tested 4.0.0 against 3.4.3. I'm not a benchmarch expert but nbench byte (a pretty old version) shows that 4.0.0 outputs very binaries compared to 3.4.3. Has someonebody else noticed this?

    1. Re:Slow code? by Anonymous Coward · · Score: 2, Funny

      That someonebody is me. Yes, the binaries from 4.0.0 compared to 3.4.3 are very very.

    2. Re:Slow code? by darkat · · Score: 1

      :-) ... You're right. I need some rest.. (a lot of). However I am really interested in knowing if somebody else has found the executables for x86_64 much slower than the ones from gcc 3.4.3

    3. Re:Slow code? by Anonymous Coward · · Score: 0

      I also did nbench tests on gentoo linux amd64 and the results weren't favorables to gcc 4.0, but that was an alpha version--

    4. Re:Slow code? by Taladar · · Score: 1

      What are "very binaries"?

  101. the may be a dumber question/comment, by circusboy · · Score: 1

    but if this is the case, and all languages that gcc deals with are parsed into a single "meta" language, then there might be a possibility of working out a more comprehensive way of enabling language interoperability? or at least translation?

    Am I the only one who thinks it might be a good idea? I for one would love to see the ability to write bits of a program in a language suited to the task, and then have it translated to the language of the platform I'm working on. I like the idea of using python for mac programs using pyObjC, but every once in a while it would be great to write a utility function in perl, and be able to compile/translate it to C/objectiveC which could then be accessed directly from the cocoa GUI or re-edited in the native syntax. personally I would like to spend more time working in lisp, and if that could be dealt with in this sort of way, it would be bliss.

    How many people here have never said, "Damn, this bit would be so easy if I could write it in _______!" (or words to that effect.)

    --
    -- it's ridiculous how many people misspell ridiculous... (damn, damn, damn...)
  102. Mod parent up by Anonymous Coward · · Score: 0

    I *just* ran out of mod points. I'd like to see that kick ass UI written using Core Foundation (you can't use CF alone for app development). You definitely will need Obj-C++ for any sort of serious development (say, if you want to use Boost). Grandparent is either very clueless or a very good troll.

  103. Hey, good for ffdshow. by Grendel+Drago · · Score: 1

    I'm sure this is the last thing on anyone's mind, but for those of us who use ffdshow, this is nice news.

    --grendel drago

    --
    Laws do not persuade just because they threaten. --Seneca
  104. Re:What a coincidence by Surye · · Score: 1

    Thanks for the information, I know I was off topic, and damn near trollish(and I was AC because I didn't bother logging in, wasn't at home), but it's good to figure out what was going on. I'm admittedly very new to CLR, and aspects of managed C++, especially this emerging stuff.

  105. Just use niceness. by Danuvius · · Score: 1
    and no gentoo users commenting on how they've already recompiled their entire system with the new optimizations. Or maybe they're just waiting for some free resources to open a browser.


    No need to wait for system resources. Just do anything cpu intensive like compiling or video encoding with the assistance of your friendly neighborhood "nice" command.

    Setting the niceness high means the program in question will allow other programs (like the web browser) to "cut in line" in cpu usage.

    Set the niceness high enough, and your program will chug along slowly and use resources as available (very little if you have lot of stuff going; pretty much full if you close stuff down) thereby not bringing your system to a crawl...

    It should however be noted that programs used this way will finish last with girls.
    --
    Akarsz Magyar Gentoo fórumot? Akkor
    1. Re:Just use niceness. by diggitzz · · Score: 1

      ...programs used this way will finish last with girls.

      Actually, since girls aren't generally all that nice, they'll finish well before the program in question.

      --
      -=[You cannot consistently judge this statement to be true.]=-
  106. What are you trying to say? by Danuvius · · Score: 1
    Seriously, there's more demand for Python than Objective-C++. Honest to God, Python!
    Python's not cool? ;-(
    --
    Akarsz Magyar Gentoo fórumot? Akkor
    1. Re:What are you trying to say? by hey! · · Score: 1

      Python's not cool?

      Nope. It's ruby this week. Or maybe last week (I've had to actually get some work done this week).

      I'm hoping it will be Groovy next week.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  107. Does this work?? by pato101 · · Score: 1
    I'm in the 100th input right now, I will report success when I finish input of all that 1e6th data...

    oops, need to start again...:
    [...]
    12.23 321.321
    321.23 121.12
    321.23 32.123
    .1321 12.231
    12.321 ..123
    invalid number: incomprehensible list input
    last format: list io
    lately reading direct formatted external IO
    Aborted

  108. Re:Example-gcc4 vs intel fortran 8? by drmutant · · Score: 1

    We have been using the intel fortran compiler in our lab for several years because g77 lacked autovectorization. Has anyone compared the performance of code vectorized with gcc 4 to the same code compiled with ifort? As noted previously the speedup from vectorization can be quite large (with ifort at least).

  109. Those were work arounds for 2.95 bugs by bluGill · · Score: 1

    My code doesn't compile on 3.0 because it contains 2.95 specific work code, because 2.95 didn't support the C++ as I wanted to use it. So I was forced to use the 2.95 bugs to work around the lack of support for the language.

    Seriously, 2.95 really sucked for C++. You could make it work, but don't try to do anything tricky. (Though when 2.x was released nothing was very good at C++, 2.x just hung on a lot longer than the competition) Gcc 3.x isn't perfect and I suspect 4.0 will not be perfect either. Gcc 3.0 is a lot better for C++ than 2.95.

  110. Correctly placed blame. by Mr.+Underbridge · · Score: 1
    Blame the standards committee, not the GCC maintainers.

    They could have delayed implementation of parts of the standard, the standards committee doesn't have any power. There should be a period of years where anything that wasn't flagged is at least flagged as a warning before being flagged as an error.

    A programmer should be able to *know* his code is going to break within a certain time, and if he still does it, his fault.

    So yeah, I blame GCC. I wrote code that generated no errors. Ported it over to a system whose compiler was 1 year newer, and it wouldn't compile. That's bad. That's dumb.

    1. Re:Correctly placed blame. by dvdeug · · Score: 1

      There should be a period of years where anything that wasn't flagged is at least flagged as a warning before being flagged as an error.

      Blame the standards committee. If the language wasn't damn near unparsable, it would be easy to support various things as warnings. But C++ is so hard to parse that many things that weren't flagged were parser errors, and were almost impossible to support in a new fixed parser.

    2. Re:Correctly placed blame. by Mr.+Underbridge · · Score: 1
      Blame the standards committee. If the language wasn't damn near unparsable, it would be easy to support various things as warnings. But C++ is so hard to parse that many things that weren't flagged were parser errors, and were almost impossible to support in a new fixed parser.

      Oh, I do blame them. But I still don't see why warnings are absolutely impossible for a lot of behavior - and I'm mostly talking about the stylistic "errors" that 3.0+ had. Seems if it parsed and compiled before...

  111. Target processors for distros by dsplat · · Score: 1
    Correct me if I'm wrong here, but most Linux distributions are still i386 right? It's only the people who use Gentoo who actually compile everything with i686 options right?


    One of the original differences between Mandrake and Redhat was that Mandrake compiled everything for Pentium while Redhat was still compiling for 386 or 486.
    --
    The net will not be what we demand, but what we make it. Build it well.
  112. Re:Example-gcc4 vs intel fortran 8? by cimetmc · · Score: 1

    I have not done any tests myself nor do I have any numbers to compare. However my guess is that for GCC 4.0, vectorization will still be quite behind the Intel compiler. You should see vectorization support in GCC 4.0 as the first skelleton, but a lot of the vectorization stuff didn't make it for GCC 4.0 and is now scheduled for GCC 4.1. For more details see the following web page: http://gcc.gnu.org/wiki/GCC%204.1%20Projects

    Marcel

  113. Here's why. by Mr.+Underbridge · · Score: 1
    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.

    1. The standard isn't static. 2. That's the point of warnings. If it will be an error within the next few years, it should be a warning now.

    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.

    Yes we can. It should be supported without flagging errors but with warnings for quite a while before previously unwarned code is broken.

    The ability to compile code written for GCC in another compiler is a *good* thing.

    Yes, it is. Conversely, the inability to compile code written in GCC using GCC is a bad thing.

    If it requires informing the programmer that their code has always been broken

    It wasn't broken. It worked quite well. It compiled. It didn't even get flagged as a warning. If the behavior was so bad (and it wasn't!) then it should have been flagged as a warning at least in the last version.

    A little inconvenience is a small price to pay for standards compliance

    Not when 1) it isn't a little, 2) it's unnecessary, and 3) it was avoidable. Blind and immediate implementation of standards isn't a virtue when it breaks backward compatibility. If you're a programmer, ask your boss if it's OK that you change a function upon which every program depends in a way that will break compatibility. See how far that gets you. There's a reason.

    or should we expect that the GCC authors "embrace and extend" C and other languages

    Actually, that's what they're basically doing. They're embracing NEW standards too quickly and breaking good code. I'm not suggesting they do anything that wasn't ever part of a standard - I'm suggesting they delay standard implementation, basing errors off the old standard and warnings off the new. Best of both worlds.

    until so much code relies on weird GCC nuggets that programmers (and users) are "locked in" to using just that compiler?

    It's better now when not only are you locked in to a compiler, you're locked in to a specific *version* of a compiler?

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

    Not taken as such - what you're missing is that when you're maintaining a large project, that sort of behavior on behalf of your compiler is NOT acceptable, particularly in a corporate environment. No company will trust GCC if absolutely no backward compatibility is guaranteed, as managing legacy code is a reality, and rewriting it all isn't an option. Anything that will be flagged as a warning in the future should be flagged as a warning for quite some time. Particularly when the new "errors" are in large part stylistic.

    Anyone who doesn't contribute code themselves should be greatful (or at least appreciative) of their efforts, even when they do make mistakes.

    1. They do good work. 2. Appreciation doesn't mean silence, and it doesn't mean no suggestions. 3. These "mistakes" are intentional design decisions. Note I'm not jumping them for any bugs (if there are any). I'm suggesting that they need a new direction if they would like any sort of adoption of GCC for more mature applications involving codebases that will be in active use for more than a year.

    1. Re:Here's why. by cimetmc · · Score: 1

      The only way to guarantee compatibility with existing code is to never change the compiler and simply stop compiler development. That way, you are sure that things won't change and that programs never change.
      However whenever you change something to the compiler, there is always the potential for programs to break.
      Of course, you can limit the breakage by keeping around some non standard features or by keeping a certain level of bug compatibility. However this is not always easy, and it also requires more development resources that especially in the case of GCC might not always be available.

      While sometimes decisions to drop some non standard features may be debatable, a lot of changes that caused some upset of the users where nevertheless difficult to avoid. Let's just take a few examples:

      1) strict aliasing.
      Strict aliasing is quite an essential feature when it comes to be able to implement a number of optimizations where you need to know whether a certain variable may or may not change in some piece of code. The instroduction of strict aliases caused a lot of upset when it was first enabled by default in GCC 2.95. Therefore, it was temporarily disabled by default in later revisions of GCC 2.95 and was only made default again in GCC 3.0. With options like this, you have to enable them some day or people will keep writing erronous code and certain optimizations will never be able to be done.

      2) C++ changes in GCC 3.0. With GCC 3.x, there was a clear desire from the GCC developers to move towards C++ standard compliance. Unfortunately, prior GCC versions were rather far away from the C++ standard and thus breakage of existing programs relying on older non standard behaviour was unavoidable

      3) The move towards more C++ standard compliance went on with further versions in the GCC 3.x family. The probably most important step was GCC 3.4 where the old Bison based inadequate C++ parser was replaced by a completely new handwritten parser which was written based on the C++ standard and not based on the limitations that the old parser might have had. Given that a number of C++ programs still relied on the old parser accepting non standard code, the new parser rejected this code.

      Marcel

  114. Fortran has pointers by hawk · · Score: 1

    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.

    Fortran has had pointers for fifteen years now (Fortran 90).

    However, they're much more limited than C pointers--by design, not by defect. And you've hit the reason, too: it allows stronger assumptions to be made when optimizaing that can be made with C.

    hawk

  115. Thanks for the update by Anonymous Coward · · Score: 0

    Well, it's a shame then, that GCC 4.0 cannot even compile KDE. It miscompiles it.

    Yes, GCC obviously will never fix that bug. Oh whoa is KDE! Those GCC meanies make KDE go breaky-breaky!

    1. Re:Thanks for the update by Anonymous Coward · · Score: 0

      Oh whoa is KDE!

      The word you're looking for is woe.

  116. Did Apple have this early? by DaCool42 · · Score: 1

    Apple's site says this is packaged with Tiger. Did they get an early release of it?

    --

    ----
    All of whose base are belong to the what-now?
    1. Re:Did Apple have this early? by cimetmc · · Score: 1

      Apple keeps their own development branch of GCC. They have patches and functionality in their version that do not exist in the official GCC. So Apple's GCC 4.0 is slightly different from the official GCC 4.0.

      Marcel

  117. GCC 4.0 C++ code is faster after load as well by Anonymous Coward · · Score: 0

    because it does not generate relative addressing via the Procedure Linkage Table (PLT) for internal (non-exported) functions. But you probably know that already, being an apparent GCC expert.

  118. too late! by hawk · · Score: 1

    This h0t plck has already doubled, and may do so again by tomorrow! Call our co-conspirators, err, representatives to buy now!

    hawk

  119. Well boo hoo. by Anonymous Coward · · Score: 0

    If MS hadn't have invented it then you wouldn't have known about it and it wouldn't have been in GCC anyway!

  120. Ding ding ding ding! by devphil · · Score: 1


    Welcome to our world of pain.

    If you (the general "you", not specifically Alioth) ever wonder why we occasionally seem to not care about y'all's complaints, this is largely it. We can either get bitched at by you, or we can get bitched at by that other guy, but since neither you nor he contribute to the code, to the bug testing, or even to the discussion, it's all the same to us: inevitable undifferentiated noise. It's not official GCC policy, it's just how it works out.

    Now, complaints from people who are actually making an effort to help -- those get our attention, awfully damn' fast.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  121. Not enough interest for 4.0 by Anonymous Coward · · Score: 0


    The Objective-C++ folks had to learn a couple hard lessons about contributing to open source projects, and GCC in particular. So it didn't make it into 4.0, but probably will for 4.n, where n is a very small integer.

    In that respect, ObjC++ was no different from any of the zillion other "features" that get thrown at the GCC maintainers: it committed the heinous sin of not magically implementing itself. GCC tends to get this a lot from a user community (which might be large, or might only be a handful of people), and it almost always follows this general pattern:

    User Community: Feature X would be cool, plz add it to GCC kthxbye.
    GCC: No. We're busy. You can write it yourself, though; here's how and here's why.
    UC: But it would be work!
    GCC: That's why we're busy. We're either volunteers (so you can't force us to work on what you think would be cool), or we're paid by our employers to work on specific tasks.
    [time passes]
    UC: Okay, here's a patch.
    GCC: Who are you?
    UC: We're the people who want feature X. We went off and wrote it on our own, in isolation, because you wouldn't drop your own tasks to do it for us. Now here's the patch, kthxbye.
    GCC: This patch is teh suck. People who aren't using feature X are being penalized with (slower compiler, slower generated code, false positive diagnostics, overly strict dependancies, genital warts, etc) to support your smaller user base. You need to work with the maintainers, not dump a patch in their laps out of the blue and expect to have it included.
    UC: You're a bunch of fucktards for not accepting our crappy patches!
    GCC: What, insulting us is going to make us change our minds?
    UC: Fine, we'll fix up the patch so it won't suck.
    GCC: Good. Here are some tips: [...] Now, the new version goes out next week, and after that we'll have more time to help.
    UC: But this has to go out now!
    GCC: It ain't done yet.
    UC: But a lot of people want it!
    GCC: So? It's not a popularity contest. It. Ain't. Done. Yet. If there are a lot of people who want it, as you claim, then you should have no trouble getting people to help you.
    UC: But-
    GCC: No. We're not shipping untested half-assed crap. Made that mistake before, we're not doing it again, you'll thank us later.
    [time passes]
    UC: Here's a patch.
    GCC: We'll review it as soon as we can.
    UC: Why not now?
    GCC: There aren't enough of us. Sucks, doesn't it?
    UC: Damn straight...
    [time passes]
    UC: Looked at the patch yet?
    GCC: No. *looks at patch* Good. *commits patch* UC: *faints*

    Being smart people, the Objective-C++ community didn't suffer from the immature stages featured in my one-act morality play above. But they got stuck for a while at the "we have a patch" / "that patch sucks" stage, and no progress was made for a long time. By the time the hard bits were worked out, it was too late for 4.0.

    1. Re:Not enough interest for 4.0 by Per+Abrahamsen · · Score: 1

      Well, correct, except that both the UC and GCC representives were Apple employees.

  122. Minimal requirements for GCC??? by Anonymous Coward · · Score: 0
    Common to all modern cheaper and/or expensive AthlonXP, Sempron, Pentium-M, Celeron-D, Pentium4, Athlon64, P4-EM64T, Xeon-EM64T, .. is

    i686 + SSE (+ optional SSE2 (+ optional SSE3))

    Please to kill MMX, 3DNow!, ASCII instructions, useless instructions,....

    open4free ©

  123. 30M download? Try 8.6M instead. by Anonymous Coward · · Score: 0

    Just downloaded an upgrade patch from 3.4.3 to 4.0.0 from the PPR at http://ibiblio.org/sdelta
    Must contain much good new code in 4.0.0 since the patch only saved 71.7% over downloading a full bzip2 tarball of gcc 4.0.0

    The PPR's patch is 12.5M smaller than the the 21M bzip2 diff patch avaialble from ftp://ftp.gnu.org, creates the gcc-4.0.0.tar with the same md5sum and sha1sum as the official tarball, and the PPR can make on the fly upgrade patches from even older gcc versions like 3.4.2 and 3.4.1 to 4.0.0. Now that is easy upgrading, not to mention fast downloading.

  124. GCC4 + Qt4 + KDE libs4 + KDE4 + Linux 2.4 +... by fprog · · Score: 0

    For sometime I was wondering what all this fuss was all for...

    On the 4th week of April, which is the 4th month after 2004, Qt4, KDE4, GCC4 were announced
    one after the other.

    Soon, after I was able to download GCC4, in less than 4 hours at a nice speed of 4 KB/s connected at 44.4 kbps!

    Which only took another 4 hours to compile it using my Pentium 4 running at 2.4 GHz, using only 44.4% of my CPU.

    That's really nice, since in 4 months I will be able to get the final version of Qt 4.
    Unfortunately, like the beta2 of Qt 4, that will also take another 4 hours to compile using my Pentium 4.

    Nevertheless, 4 months after the release of Qt 4, we should see the beginning beta of KDE libs 4,
    which will essentially lead 4 months after that to a shinny new KDE 4,
    around April 4th that will be able to run on the new stable Linux 2.4.34,
    which will replace my current Linux 2.4.24 that has an uptime of nearly 4 months.

    Isn't that great ?

    Now, can someone tell me what this comment was all for ?

    The only clue, I can give is all those 'not in the club' buddy,
    which are using Gnome 2.6 on Linux 2.6.6 using gcc 2.96 right here in 2006,
    waiting for the next beta release of Perl 6.
    Thinking that there all cool and sexy!

  125. Re:I am so happy!!! by lachlan76 · · Score: 1

    Or he was the mother.

  126. Fotran pointers (was: vectorization) by Random+Hacker · · Score: 1

    One thing that amazed me about Fortran 95 pointers is how big they are. On a 32 bit x86 machine, a pointer to an array in HP/Compaq/DEC's Fortran compiler is 32 bytes long (that's bytes, not bits). With all that extra sludge in there, the compiler damn well better be able to optimize things.

  127. Everybody has. by krischik · · Score: 1

    Everbody can download an early release from the cvs archive whenever he or she wants. As soon as 4.0.0 is released you can start downloading 4.0.1.

  128. It is intentional by Per+Abrahamsen · · Score: 1

    A big part of the reason for going to 4.0 instead 3.5 is that the ".0" hopefully will be a big clue that this version had an entirely new middle end, and thus the potential for tons of breakage.

  129. counterpoint: tcc by dododge · · Score: 1

    pretty much every compiler around goes through the following steps: (a) make an abstract syntax tree from the source code, (b) optimize it, and (c) output machine code.

    I'm not 100% sure about its internal processing, but I believe tcc either skips some of that or has it all so blended together that the steps aren't very distinct.

    it's far more useful to support tons of languages at little extra effort than to drop all alternate languages for a minor performance gain.

    In the case of tcc, the design and lack of extra functionality (or admittedly even complete standards compliance) provides a huge speedup at compile time. It's almost shocking to see it blast through code when you're used to working with a recent gcc.

    It's so fast that for small programs it can be used as a loader to compile and run C code as if it were a scripting language, with no discernable startup time. Consider that tcc has demonstrated booting a Linux kernel from source in 15 seconds.

    1. Re:counterpoint: tcc by noda132 · · Score: 1

      pretty much every compiler around goes through the following steps: (a) make an abstract syntax tree from the source code, (b) optimize it, and (c) output machine code.

      I'm not 100% sure about its internal processing, but I believe tcc either skips some of that or has it all so blended together that the steps aren't very distinct.

      tcc does perform all those steps. It does them faster because the (a) part is far less abstract, and the (b) part does far less work (as a consequence).

      You do bring up a good point, though: a compiler tuned to a specific language can be a hell of a lot faster at compiling than a more generic one. But it can't do much more in the way of optimizing its output.