6 ms·
Talk Of GCC 5.0 To Be Modular, More Like LLVM
- loeg 15y agoIf you don't want to give ad money to the disgusting pile of slop that is phoronix, here are the relevant upstream mailing list links: "GCC 5?" http://gcc.gnu.org/ml/gcc/2012-03/msg00256.html http://gcc.gnu.org/ml/gcc/2012-03/msg00256.html "GCC 5 & modularity": http://gcc.gnu.org/ml/gcc/2012-03/msg00263.html http://gcc.gnu.org/ml/gcc/2012-03/msg00263.html
- moonchrome 15y agoOT but what's your beef with phoronix ? I'm not a regular reader but it seems a nice site about opensource stuff.
- wmf 15y ago(Different poster here.) I like to call it "Moronix" because their analysis is so shallow, but OTOH they cover topics that no other site cares about, so it's probably a net win as long as you read with a critical eye.
- simcop2387 15y agoYes I mostly read it to keep up with some of the Mesa developments, I'd agree that a lot of times they jump the gun and report something as more than it is, or even don't give enough information about some reporting (mostly the benchmarking, but they have gotten a bit better about that lately).
- JDShu 15y agoI have always wondered why there has never been a competitor site to Phoronix. My guess is that very few people with the interest and ability to understand things like mesa and llvm are motivated to make a website about it.
- ruediger 15y agoWhat about lwn.net?
- loeg 15y agoThey have a tendency to make stuff up. Among other things, they publish performance data which doesn't actually measure what they claim it does.
- haberman 15y agoGCC has resisted modularity for a while because of concerns about enabling proprietary plugins; an unfortunate case of letting ideology come before technical excellence. This left a big unmet need and put LLVM in a stronger position to displace GCC purely on technical merit, by offering this capability that GCC didn't want to offer. http://lwn.net/Articles/301135/ http://lwn.net/Articles/301135/
- ChuckMcM 15y agoReading that article from lwn.net is amazing. The irony of the gcc community users screwing over their customers in order to preserve their ideology, and its parallel in the 'commercial' software business is really amazing. Seriously. "We won't make plug-ins because that would open the door to making money on GCC" vs "We require a key disk to prevent folks from copying our software and using it for free."
- ajross 15y agoThis is backwards. GCC and the GNU project as a whole exist because proprietary software was "screwing over its customers" in ways rms and the other early FSF people couldn't accept. The "ideology" of free software is (and always has been) the primary motivation, not the "customer" or "technical excellence". You can flame over that if you like (but please don't: just google the older flame wars from the 90's, this is depressingly well-travelled ground), but don't get confused over the motivations of the actors. The FSF has been nothing if not crystal clear about their priorities.
- ChuckMcM 15y agoNot backwards, I think you got it. I lived through the flame wars in the 90s and really resonate with the message "Give us the damn source so we can change it to do what we want!" The irony is that if folks are trying to check in changes into the GCC tree that allow for plug-in modules because that is what they want, and the community is denying those commits because they fear having a plug-in architecture would enable other people to do bad things. Well that is ironic that such changes would be denied based on a potential transgression for some of the users. When I read the argument it sounded like what folks had been arguing on the other side back in the 90's, hence the irony.
- mdiep 15y agoIs there a reason I should care about GCC anymore? Admittedly, I mostly code ObjC on OS X, where GCC is no longer relevant, but LLVM seems to have leapfrogged GCC so dramatically that I'm unsure why I would even care about GCC. LLVM integrates better with tools, has an amazing static analyzer, and AFAIK generates code that is on average as fast and small as GCC. (I believe who wins depends on the code.)
- ajross 15y agoIs there a reason I should care about LLVM anymore? I mean, I mostly code C and C++ on Linux, where no distros build with LLVM and it isn't yet relevant. Yawn. LLVM seems nice. When it competes on merit in the big world instead of in a sandbox people will care more I guess. Last I tried building my C++ project with it, it puked on the STL headers. Use what you like.
- w0utert 15y agoWhat makes you think GCC 5.0 tomorrow will be better supported by your current development environment, than LLVM today? I find the rest of our comment somewhat derogatory towards LLVM and the kind of things you can do with it today, it's already at a point where it provides comparable compatibility and features as the many different GCC versions you'll find on various unix systems. Somehow every time I read something about LLVM here people start to rant about some incompatibility they've seen that GCC doesn't have, as if GCC is the epitome of compilers. From experience I can tell you LLVM shows better compatibility with current GCC versions, than many older GCC versions that are still shipped with some Linux distro's. Eventually, unless GCC makes a giant leap forwards in all the ways set forth in this article, LLVM is going to replace it, sooner or later. I think that's what the guy above me was about when he asked why GCC is still relevant today.
- baq 15y ago"Eventually" and "Is there a reason I should care about GCC anymore" don't mix well for me. Time will tell; GCC is definitely not out of the game. That said, having a C++ compiler designed for humans and not robots is to be commended.
- eklitzke 15y agoI'm really happy to see this sort of discussion happening within the GCC project. While LLVM/Clang are nicer and more usable than GCC in a lot of ways, in my experience GCC is still much more mature, generates better code, and has been implementing features new features from C++11 more quickly. I also like that GCC, glibc, and the GNU libstdc++ are all developed together so that as the compiler implements new optimizations and language features, the runtime environment also takes advantages of those features. I've been impressed with the last few GCC releases (I'm already using 4.7 for my own work). Competition is good, and it's great to see that GCC development is going strong.
- wmf 15y agoOr they could rename LLVM to GCC 5.0; that strategy worked for EGCS. :-)
- kingkilr 15y agoSmall world, Dave and I just ran into issues related to this a week ago (I suppose it may have motivated his email). Namely that there was no single API to get the assembler generated for an RTL (register-transfer-language, GCC's final IR) node without going through some destructive APIs.
- forgottenpaswrd 15y agoWhy? We already have llvm as a c++ monster(hundreds or thousands of MBytes on my mac), witch is modular, and have a more permissive license. So you are going to risk the only advantages of gcc,(written in c and relatively small and stability), so you could copy the new kid on the block? If you are going to copy them, copy the more permissive license. It will give commercial companies like Apple the option to improve your software like they do with llvm(Apple hired llvm creator).
- berkut 15y agoI think you might want to check your facts: LLVM + Clang source code: 9.9MB + 6MB = C, C++ and Obj-C compiler and linker GCC source = 69MB = just C compiler and linker G++ source = 6.6MB = C++ additions to GCC So I'm curious as to where you're getting the "hundreds or thousands of MBytes on my mac" from.
- sparky 15y agoI'm guessing he's referring to either the disk space needed to complete a build (~4GB on my machine) or the size of the generated binaries and libraries (304MB on my machine). In either case, I think your point holds that LLVM isn't substantially "larger" in any major sense of the word. One confounding factor is backends. On one hand, GCC has a lot more of them, which contributes to a larger source base, but shouldn't be considered a disadvantage out of hand. On the other hand, LLVM builds all 13 of its backends into the binaries and libraries by default (compared to GCC's single-backend approach), which contributes to larger installed files but shouldn't be considered a disadvantage out of hand. As a minor point of order, neither LLVM nor GCC include a linker; they both shell out to the system linker (often GNU ld from binutils). LLVM now has the equivalent of an assembler (direct object code emission) for those backends that support it, and the nascent lld ( https://github.com/chapuni/lld https://github.com/chapuni/lld (warning: i couldn't find the webpage in www/ hosted anywhere, this is as close to something canonical as I could find) ) looks to be the beginnings of an LLVM-affiliated linker.
- m3koval 15y agoOn OS X, you get clang and llvm-gcc in XCode 4.1, which is a solid 1.4 GB download. You're absolutely right about clang being pretty lightweight, so it's getting a bad wrap by association. I'm honestly not sure why XCode is so large: perhaps the IDE and iOS simulator?
- stock_toaster 15y agoCompetition is a great thing. :)
- mmisu 15y agoI think I prefer to see a faster and complete standard implementation for C++11 and C11 than to see a modular GCC. Making the project more modular, while not a bad idea in itself, could potentially delay the implementation of the latest standards.
- sanxiyn 15y agoWhile reading this it is useful to know that David Malcolm is the author of GCC Python Plugin so he has seen the potential of modular, pluggable GCC. https://fedorahosted.org/gcc-python-plugin/ https://fedorahosted.org/gcc-python-plugin/