8 ms·
Certain "journalists" are seriously jumping the gun if they assume GCC is just going to shrivel up and die. In addition to mainline, it is used privately in a h
by hosay123 14y ago
Certain "journalists" are seriously jumping the gun if they assume GCC is just going to shrivel up and die. In addition to mainline, it is used privately in a hundred different branches, several of which are commercially supported (e.g. Codesourcery, Google Native Client) and many the public will never know about.
There is a vast body of consumers who care more about maturity and stability than a few convenient front-end tricks, which the majority of C++11 ultimately amounts to. As for whether GCC is somehow "too far gone" to catch up, well that's just nonsense, the core technology has barely changed in 10 years. Things will improve when commercial needs arise and as eager PHDs hunt for final year projects.
While ancient, there is immense diversity in GCC's configurations, and AFAIK its code generator still maintains an edge over Free alternatives. Of the purported speed improvements elsewhere, anecdotal evidence from my Macbook suggests LLVM is slower at building smaller projects (predicted long ago by smart types that knew LLVM was only fast because it lacked features).
It's worth noting that GCC already supports significantly more C++11 than either MSVC11 or ICC, although this article makes no such comparison. Like the majority of articles from Phoronix, this one is blinded by the new hotness (LLVM) and a generally superficial appreciation of the subject matter.
- deleted 14y ago[deleted]
- eksith 14y agoCan't say much about the speed except in my case LLVM was marginally faster. Of course, that could be due to the size of the project as you say. As always, this can be a case of what's best vs what's best for my case.
- LarrySDonald 14y agoIt does sound like a bit of a strange assertion. gcc is amazingly core to so much and (in this case importantly) so much commercial. Not even the linux kernel itself has this many things that need it to be continued. Could it be ousted? Sure, if a gnu (or otherwise foss) competitor steps up and does it better (good luck..) but in that case, no problem. Could it be that the gnu/linux distributions and applications running the majority of the internet will have to rely on a proprietary compiler or die? That's just wildin' - issues aside that's nothing even any of the major corporations could really suggest.
- eropple 14y agoif a gnu (or otherwise foss) competitor steps up and does it better (good luck..) There is a pretty compelling argument that LLVM and Clang are doing precisely that. And the "toolability" referred to in the article is a big part of that. Clang complete[1] is an example of using Clang to do things that the GNU toolchain thinks are perfectly doable with a box of regex. (Spoilers: they're so not.) [1] - http://www.vim.org/scripts/script.php?script_id=3302 http://www.vim.org/scripts/script.php?script_id=3302
- hosay123 14y agoIt would take an immensely ballsy release engineer to approve switching from GCC to clang even for a modestly sized, mature codebase. I can think of at least two Fortune 500s where this will almost certainly never happen: the potential cost incurred by the change would far outweigh just hiring a team to keep the old compiler alive, at least in the medium term.
- Hello71 14y agoYou mean like FreeBSD?
- deleted 14y ago[deleted]
- taligent 14y agoI'm confused but didn't Apple just do this for two operating systems. And then moved their entire OSX and iOS development community as well ?
- hosay123 14y agoApple manufacture consumer entertainment devices that are neither safety critical in nature nor difficult to field test. Think more along the lines of Boeing, Northrop Grumman or Raytheon.
- X-Istence 14y agoclang++ compiles my code base for work about 4x faster than g++ 4.7, using c++11 features. The end result may be slightly faster in certain situations with gcc, but for almost all of the code I wrote I am spending time in I/O where a little optimisation for a loop won't make a tiny bit of a difference.
- saurik 14y ago(I am pretty certain hosay123 is talking about "time to compile" not "time to run result", so whether your code is spending time in I/O or something else is unrelated; or do you mean that you expect your particular codebase to be resulting in more calls to #include and more time linking?)
- X-Istence 14y agoI covered both bases. I was suggesting that the time to compile with clang is 4x LESS than gcc 4.7 for our code base. Which IMHO is a lot more important than slight optimisations of loops that don't make a difference in the end. The end result produced by gcc in some cases is more performant (looking at profiling output), however we continue to use clang because most of our code spends a LOT more time in I/O than it does in certain tight loops that GCC would optimise, and clang produces better diagnostic output, and compiles faster thus we get feedback faster and spend less time waiting for our codebase to compile.
- iskander 14y agoBut you're almost certainly not comparing the same set of optimizations. If you bring the optimization level of gcc down to the point that it generates code as slow as clang, are the compile times comparable?
- saurik 14y agohttp://architects.dzone.com/articles/gcc-47-vs-clang-31-eddic http://architects.dzone.com/articles/gcc-47-vs-clang-31-eddi...
- bitwize 14y agoGCC already "shriveled up and died" once -- the egcs project got so far ahead of regular GCC in development that the FSF basically just said, "congratulations, you are the new maintainers and your project is now the official GCC mainline". GCC is stagnant, but the dynamic pace of development on the Clang front means that either the GCC developers will adapt, or the community will adapt GCC for them.
- Someone 14y agoOne of the concerns mentioned is "GCC needing to bring in newcomers by young students and experiments from academia, while most new developments these days are using LLVM", i.e. that there _eventually_ will not be sufficient community to make those adjustments. I think that concern is justified and may not even be limited to gcc. Any open source project without significant commercial backing will have problems staying attractive to developers for decades. Why would anybody volunteer to work on a decades old and, because of it, somewhat crusty, codebase for free? Yes, gcc has commercial backers, too, but I think at the moment most of them are more willing to pay for the support of additional architectures or architecture variants than for new language features (at the moment; that can change if C++11 gets more commonly used)
- DannyBee 14y agoThis is actually not what happened with EGCS at all. EGCS was a political fight. The FSF in fact, fought EGCS all the way until it was completely clear that GCC would die.
- chad_oliver 14y agoCould you provide a source? I'd like to learn more about this. (The politics of open-source software is interesting because the underlying motivations are probably still around and motivating other people).
- DannyBee 14y agoRead gumby's email on http://gcc.gnu.org/wiki/History http://gcc.gnu.org/wiki/History It's the "nice" version. The reunification is kind of glossed over here, but what happened was the FSF fought it all the way, realized EGCS would win, and accepted it back. GCC got concessions as part of this reunification. The concessions were that GCC would have it's own steering committee, and that we could appeal any RMS decision to the board of the FSF.
- categoryjid 14y agoPhDs don't do 'final year projects'. They don't really do 'projects' at all. They produce a thesis based on original research over a period of three or more years. If a PhD student is starting some kind of project in their final year, they're seriously fucked.
- pjmlp 14y agoReally?! Most Phds I know in CS, have done work not directly related to their main research point. Usually in the 6 months before the deadline some way was found to relate the work with the thesis and it got written in those remaining months.
- agwa 14y ago> It's worth noting that GCC already supports significantly more C++11 than either MSVC11 or ICC, although this article makes no such comparison Really great point. I don't understand why this article focused on C++11 of all things. Until recently, gcc had much more complete C++11 support than Clang. Now, it seems they're about on par (if feature tables are any guide[1]). In fact, a couple years ago I was about to switch to Clang but when I started using C++0x I had to stick with gcc because Clang's support just wasn't there yet. Also, LLVM's C++ Standard Library (libc++) is still pretty immature on Linux, so even if you use Clang for C++11 you're probably going to end up using gcc's standard C++ library anyways! So yeah, this article is pretty sensationalist. [1] http://gcc.gnu.org/projects/cxx0x.html http://gcc.gnu.org/projects/cxx0x.html and http://clang.llvm.org/cxx_status.html http://clang.llvm.org/cxx_status.html
- deleted 14y ago[deleted]
- snogglethorpe 14y agoPhoronix is almost always sensationalist, and often extremely clueless (Phoronix benchmarks, for instance, are more often than not, entirely useless because they're so badly designed). Never believe anything you read there without independent verification, and even with verification, be suspicious....
- DannyBee 14y agoYawn. Look, i'm actually a GCC maintainer. I was heavily involved in GCC development for quite a while, though I now work more on LLVM. I'm still a listed GCC maintainer. I guarantee you, without a doubt, that GCC will die out on its current path. The only thing that could stop it is if it's no longer an FSF-run project, or the steering committee actually started replacing older members with people still working on GCC, or something else drastic. This would enable folks to do things that currently take a lot of energy to fight about. It may also have to compromise some core values in order to serve the most users. Yes, LLVM currently lacks optimizations GCC has. But LLVM will do the same thing GCC did to commercial compilers when we started the tree-ssa project, and cherry pick the high end of research, and implement it (it has already started). As long as GCC stays on the path it is, it will die. It will be a long time, because it has a lot of users. LLVM is friendlier to developers, researchers, and users. GCC can't win any fight as long as that is true. FWIW: I also don't think most GCC developers harbor any illusions about the above. I think RMS may, or may not be involved enough to care, but nobody seriously involved in GCC thinks that GCC is in "a-ok great shape no problems" The other possibility, of course, is that LLVM will end up on the same path GCC does, and thus, they will be on the same terms again. I doubt this, since Chris Lattner saw what happened when he tried to merge GCC and LLVM, and despite his flaws, is much more savvy about politics and community policies than GCC is.
- random42 14y agoWas "Yawn" snark really necessary to make your point?
- vor_ 14y ago> Certain "journalists" are seriously jumping the gun if they assume GCC is just going to shrivel up and die. In addition to mainline, it is used privately in a hundred different branches, several of which are commercially supported (e.g. Codesourcery, Google Native Client) and many the public will never know about. Clang is designed to be highly compatible with GCC-dependent projects, from extensions to command-line arguments. What's to stop them from just switching to Clang if GCC's complexity and lack of documentation prevent it from remaining competitive?
- deleted 14y ago[deleted]
- astrodust 14y agoIf you're pursuing a Ph.D. project why would you commit to doing work for the creaky gcc infrastructure when it's clear that LLVM offers far more exciting opportunities? gcc is dead. It served us very well, but it is time to move on.
- cmccabe 14y agoAs I understand it, a lot of researchers work on Clang/LLVM just because it allows them to focus on the aspect of the system they're interested in. For example, if you want to make a static analysis tool, you can do that with LLVM, but not with GCC. Also, and let's not mince words here, the LLVM codebase is a lot cleaner. It seems like the open source community is working as it should here: someone designed a better mousetrap, and the world beat a path to his door. This is the way things should be, and the net result is going to be better open source software for everyone. Nobody wants to keep COBOL alive or CVS, so let's not be overly sentimental about gcc.
- derpmaster 14y agonobody will miss gcc when it dies. too bad pcc went unmaintained
- Ziomislaw 14y agoI thought that OpenBSD developers started to maintain PCC to use it as their's primary compiler. Did something change?
- derpmaster 14y agoMaintainers left and somehow the decision was to start integrating LLVM with base instead. I think openbsd devs prefer pcc but there is just too much work to do on it and no motivation right now, so LLVM it is