Hacker News new | past | comments | ask | show | jobs | submit login
GCC 4.6.3 Released (gcc.gnu.org)
67 points by voodoochilo on March 1, 2012 | hide | past | favorite | 27 comments



It will be interesting to see if the not-so-friendly competition between GCC and Clang (where a license schism bears a large part of the responsibility for the split) can mirror the not-so-friendly competition between GNOME and KDE (where a license schism also bore a large part of the responsibility for the split).

In the GNOME/KDE case, unpleasant as it was, the competition probably ended up helping both desktop environments mature.


I think there's room for two large open source C++ compilers (GCC and Clang), just as there's room for two large open source Web rendering engines (Gecko and WebKit), two large open source general-purpose scripting languages (Python and Ruby), two large open source statically typed VM languages (Java and Mono), three large open source desktop environments (Unity, GNOME, and KDE), etc. Why people think competition is a bad thing (e.g. "the Web should just be WebKit!") is beyond me.


Why is the competition not-so-friendly? I believe GCC has already improved due to Clang at least a lot of the error message improvements in the last releases seem to be inspired by Clang and GCC has finally added Plugin support.


I'm not really an expert, but my understanding is that the perception from the Apple side is that GCC was basically ok, and they were happy to contribute to it, until the FSF switched to GPL3, which they view as freetard nonsense and totally unacceptable to their needs.

My understanding is that the perception from the GNU side is that everything was great and productive with Red Hat, IBM, Apple, etc. all contributing together to one compiler, and then because of Apple's misguided objections to GPL3 and GNU, Apple decided to take its marbles and go home and start funding and working on a new compiler suite. Now we have some companies contributing to GCC and others to LLVM/Clang and there is a lot of over-the-top criticism of GCC. I assume the GCC people also wish they still had all the resources they used to have.

That's why I get the sense the competition is not so friendly.


Well I don't think Apple (atleast not when run by Jobs) was ever 'happy' with GPL. Back in the NeXT days Jobs actually tried to circumvent the GPL when they wanted to use GCC as a backend for their proprietary ObjC frontend by claiming that the end-user would do the linking and it wasn't until it was clear that they legally couldn't do that they submitted the ObjC frontend to GCC.

Apple wants to incorporate open source into their proprietary solutions, OSX, XCode, Instruments etc which in turn is part of their lock-in strategy so I'd expect them to remove all GPL code from their systems whenever they can.


While I don't discount that perhaps GPLv3 was in fact the reason Apple broke free; for the most part every talk I've seen an Apple engineer (or Google, since they contribute too) give hasn't mentioned the GPL issue.


Naturally, engineers talk about engineering, not about politics. What the companies think, I do not know. Has anybody ever asked the likes of Apple, Google, or Adobe whether licensing was a decisive factor in choosing to work on LLVM/Clang?

My guess would be that the choice would have gone the same way if gcc were BSD (although then, Clang might have been a gcc fork), but that it did not help that it was GPL, as their lawyers could not guarantee that incorporating GPL in their libraries would be possible without releasing them as GPL. I would not blame them, as there is little jurisprudence related to that issue, and certainly no worldwide agreement.


A lot of Apple's choices come down to preferring an ecosystem under permissive licences. They promote llvm over gcc, tmux over screen and zsh over bash, switched their server distribution from MySQL to PostgreSQL. I'd be surprised if you found examples of them going in the reverse direction.

The more blatant example is the restrictions they impose on code they don't ship: their app store policies make it impossible to distribute GPL code.


> Clang might have been a gcc fork

I feel the most fundamental motivating factor for the llvm project was Clang.

The gcc code generator could be improved, but is fundamentally usable for all things it needs to be used for. But the static analysis that Apple wants to do really is fundamentally incomparable with gcc.


>I feel the most fundamental motivating factor for the llvm project was Clang.

eeh? iirc LLVM precludes Clang by atleast 5 years and LLVM was initially created to replace GCC's backend while using it's frontend (in fact during most of it's lifetime LLVM has relied entirely on GCC as a frontend and it still uses it through the dragonegg GCC plugin).


This is true in actual functionality. But Apple's motivation for contributing to llvm has certainly been to replace the entire gcc toolchain from day one. It was just clear that having a new backend was going to be required to do that, and also a bit easier to implement in the beginning. Apple would have little to no interest in llvm if the plan wasn't to completely replace gcc from the beginning.


>Apple would have little to no interest in llvm if the plan wasn't to completely replace gcc from the beginning.

Sure, I have no doubt that Apple's sponsoring/stewardship of llvm is entirely fueled by them wanting a full toolchain which they can incorporate into their proprietary solutions and Clang is obviously a result of that (it's functionality reflects exactly what Apple want, C, C++ and ObjC support).

That said llvm was already 5 years into the making when Apple came and hired Chris Lattner (one of the original creators of llvm) so they have no say on the initial aim of the project which again was to be a backend replacement for gcc.


I thought it was generally acknowledged that Apple was committed to removing GPL software [1] and was doing everything to avoid GPLv3, even keeping outdated software to avoid it.

[1] https://news.ycombinator.com/item?id=3559990


I guess the reason for Google to start contributing to Clang and using it for their tools is the availability of the frontend. As far as I know the GCC developers made it extra hard to separate the frontend from the compiler because they feared that people would use it on proprietary backends. But this really left us in a situation were for decades people couldn't work on creating amazing static analysis, autocompletion, refactoring tools for C and C++. In the end this decision probably did more damage to the free software movement. GCC now comes with a plugin interface and with the Clang frontend available I hope that this will change quickly.


It could be embarrassing to admit that you're duplicating a huge amount of effort for essentially non-technical reasons.


Back in the day there were rumours that Intel has a gcc fork inhouse, and since it doesn't distribute it, it doesn't need to share it. Basically the same thing that is happening on GOOG apache-linux android etc, only GOOG offers services that do not involve the distribution of their custom GPL fork. AAPL is a platform company, so needs to distribute devkits for their platform, because that made MS powerful in the first place.


Dumb question, is there a way to verify if a given commit is in a GCC release? Specifically, I'm interested in r181014.


This:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50693

seems to be the specific issue, and it says it was fixed in 4.6.1.


That wasn't fixed in 4.6.1, I filed the issue against 4.6.1 :)


Ah sorry, teach me to try to be clever... :)

It appears that the Changelog was modified thusly:

https://github.com/mirrors/gcc/commit/63f5ad449bbe0a4d478ae9...

I guess you could just download the source and see if it's in there.

EDIT: It is not.


Am I imagining things or has there been an increase in the frequency of releases of gcc (I understand that this is a bugfix point release) since clang started to become popular?


You can see the release history at http://gcc.gnu.org/releases.html

Here's number of releases per year (from all branches):

  - 2011: 6
  - 2010: 7
  - 2009: 5
  - 2008: 5
  - 2007: 5
  - 2006: 4
  - 2005: 6
  - 2004: 7
  - 2003: 5
  - 2002: 5
So at a high level, it doesn't look like the GCC release frequency has changed much in the last decade.


The actual count of releases hasn't been much higher than normal. But recently a number of previously more experimental or controversial features have been released. IMO, the main one that likely wouldn't have been released without the Clang/LLVM pressure is the plugin interface that has been around in branches for many years.


I don't think it has (or will) make a huge difference - gcc has always been competing with commercial compilers (and to a lesser extent, open source compilers like pcc) so it's never really had much of a reason to stagnate.


I don't know about bug-fixes but for me 4.5.3 (probably also 4.4 but I can't say for sure) had some regressions on athlon-xp. On a machine that passes memtest over night and almost never gives me any problems with code compiled with 3.6 and 4.1 - 4.5.3 segfaults randomly when building itself on the second stage (after bootstraping).

4.3 seems to generate stable code and I'll stick to it for a while.

I started noticing problems when recent 32bit images from ubuntu and gentoo freezed the PC.


Did you report that? It seems you should rather discuss that on the gcc mailinglists with the gcc developers.


To answer your question: not yet.

I've seen similar reports as mine but not that many. Athlon-xp is not exactly new and few people use it to even care to report problems (specially when random segfaults are mostly associated with hw). On the other hand ruling out hw problems took me several weeks of rebuilds and before reporting I'd like to test also the vanilla sources (the ones from gentoo are patched)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: