manu AT gcc DOT gnu DOT org
NewWconversion (old version: Wcoercion Project)
A script gccfarming for bootstrap+regression test patches to GCC used by me in the GCC Compile Farm.
5 things that GCC could do better as a community
A simple/flexible click-through web-form for copyright assignment, following Google's example.1
Attract more developers.
Problems: GCC could benefit a lot by attracting more contributors in general and specifically more part-time volunteer contributors. The lack of developers and the current review system means that patches take a long time to be reviewed or even never get reviewed and get lost in the mail archives. This is discouraging even for ''paid'' developers.
Goals: GCC should have at least 2 active maintainers per module, this is not the case right now for critical parts like the C/C++ FEs, libcpp, diagnostics, most optimization passes, graphite, etc. GCC should maintain and expand the number of paid-contributors from organizations and corporations. GCC should attract contributors from the research community.2
Upgrade all infrastructure around GCC.
Problems:
- Outdated, unmaintained, understaffed infrastructure: wiki, bugzilla, SVN repository, HTML pages (+CVS repository), mailing lists software/archives. (Actually, this has improved a lot recently, but there are still some issues).
Missing infrastructure: project-wide build-bot/regression-tester/speed-memory-tester, patch tracker, ???.
Example of successful infrastructure: CompileFarm (but needs better marketing/exposure).
Goals: At least 2 maintainers of each infrastructure component. Get rid of outdated/obsolete infrastructure (e.g., get rid of CVS). Better marketing/exposure of existing infrastructure. Share infrastructure with other GNU projects (GDB, binutils, libc).
Make GCC more useful and interesting to users
Problems:
GCC capabilities are difficult to reuse for other purposes.4
GCC existing capabilities are poorly documented and not as talked about and publicly visible as they could be if presented more appealingly (and even more), more often, and more visibly.
GCC is not as user-friendly as it could be.
However, GCC is way better than its public image. GCC has a marketing problem!.
Notes
2018-12-10
As a consequence of Mozilla's previous decision, both Fedora and Arch have also switched to build Firefox using clang.
2018-09-12
The actual reasons for Mozilla switching completely to Clang/LLVM are given here
Cross-language LTO (i.e. inlining) between Rust and C++
Mozilla engineers can fix bugs in Clang/LLVM if need be; I would also that that contributing to llvm/clang is trivial...gcc still requires a copyright assignments to the FSF [...] which can be done only by actual mail
Fixes can be more easily backported from the Clang/LLVM development tree
|
GCC |
Clang |
LLVM |
Contributors (Past 12 Months) |
167 developers |
353 developers |
488 developers |
Commits (Past 12 Months) |
7,872 commits |
6,007 commits |
16,658 commits |
2018-06-03
Chrome switches to Clang from Microsoft Visual C++. This is relevant for GCC because GCC always relegated Windows as a secondary platform, which is OK in principle but leads to massive losses in mindshare and visibility in practice.
2017-09-06
|
GCC |
Clang |
LLVM |
Contributors (Past 12 Months) |
165 developers |
325 developers |
454 developers |
Commits (Past 12 Months) |
7,633 commits |
5,676 commits |
17,678 commits |
Lines Added |
864,682 lines |
511,130 lines |
1,530,432 lines |
Lines Removed |
2,857,772 lines |
247,780 lines |
833,086 lines |
2016-05-29
|
GCC |
Clang |
LLVM |
Contributors (Past 12 Months) |
184 developers |
286 developers |
358 developers |
Commits (Past 12 Months) |
7,796 commits |
6,197 commits |
16,326 commits |
Lines Added |
973,051 lines |
586,248 lines |
786,396 lines |
Lines Removed |
422,726 lines |
255,461 lines |
441,444 lines |
2015-12-22
Android NDK: GCC is now deprecated, everyone should be switching to Clang
I'm arguing that [FSF's] handling of GCC and refusal to support it as a library directly motivated the creation of LLVM and led to a scenario that better supports the creation of proprietary software. (Josh Triplett)
2015-11-13
The U.S. Department of Energy’s National Nuclear Security Administration (NNSA) and NVIDIA will develop an LLVM Fortran compiler. "With its broad adoption and flexible licensing model, the LLVM compiler infrastructure is a powerful open-source platform for development of compiler-related technologies and tools," said Patrick McCormick from Los Alamos National Laboratory. "We have been working with the LLVM community for more than a year on the development of parallelizing C and C++ compilers for heterogeneous OpenPOWER HPC systems with closely coupled GPU accelerators," said Dave Turek, vice president of Exascale Computing at IBM.
2015-04-21
|
GCC |
Clang |
LLVM |
Contributors (Past 12 Months) |
203 developers |
219 developers |
284 developers |
Commits (Past 12 Months) |
8,188 commits |
6,260 commits |
15,186 commits |
Lines Added |
985,414 lines |
369,243 lines |
1,111,089 lines |
Lines Removed |
388,351 lines |
178,283 lines |
1,058,732 lines |
2015-04-13
Google currently has about 11 engineers working on LLDB. Imagination, Intel, and Linaro are also participating. (source)
2015-02-13
Apple has a handful of contributors working on [LLDB] (a couple used to be GDB developers [...] Google seems to have increased its investment in LLDB, from one developer to a whole team working on it full time. (source)
2015-02-11
Comments by D. Berlin on GCC past and future: The problem for GCC on this front is three fold 1. The backend, despite being pretty heroic at this point, really needs a complete rewrite, but people value portability over fast code. LLVM, having started completely from scratch, has a modern, usable backend. [...] 2. For any given thing you can implement, it's a lot easier to do it in LLVM than GCC, so, given time, LLVM will produce faster code because it takes less work to make it do so than it does to make GCC do so. 3. Because it was architected differently and more modernly, clang/LLVM are significantly faster at compiling than GCC. GCC can remove most if not all of the middle end time (and does), but it's still slow in other places, and that's really really hard to fix without fundamental changes (source)
GCC and LLVM are within the noise for most people on most code (source)
2015-02-06
Diego Novillo steps down as global maintainer. (Most GCC developers from Google have already switched to Clang/LLVM).
2014-11-13
The only thing GCC buys you right now, at all, is slightly better performance (it varies depending on your benchmark) and support for a larger variety of odd embedded systems. source
2014-09-04
Daniel Owens, product manager for software development tools at ARM: "LLVM has more features such as just in time compilation and link time optimisation so this is the basis for the next 25 years." "LLVM gives us the ability to collaborate with partners and even the academic community so it’s an easy choice to use that as the framework for our tools."
2013-04-25
Development of GCC seems to be slowing down according to ohloh. Last 12 months: 6672 Commits Down -1467 (18%) from previous 12 months.
By comparison, LLVM development is speeding up. Last 12 months: 11196 Commits Up +647 (6%). (Not including Clang or libc++).
Does this mean a transfer of resources (in the case of Apple, for sure) at Google and IBM?Some developers are already giving up on improving the FEs in the hope that something better will replace them http://gcc.gnu.org/ml/gcc-patches/2012-11/msg00316.html
Polyhedral optimizations development has already moved to LLVM http://gcc.gnu.org/ml/gcc/2012-02/msg00186.html
- The sanitizer infrastructure is being driven from LLVM, however, Google devs are contributing parts of it (only ASAN and TSAN so far) to GCC.
2013-01-27
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.. source
2013-01-23
2012-11-06
2010-05-30
Ian Lance Taylor points out some problems with the GCC project: steep learning curve for new contributors, lack of documentation, lack of leadership, lack of public relations.
2006-08-08
Footnotes
The whole thread Why not contribute? shows that this is a major problem. See also my reasons, Ian Lance Taylor agrees that the process is complex and confusing and also believes a web form would help. Linus Torvalds also thinks that the copyright assignment process is ''a big hurdle'' for contributors. (1)
In my opinion, this is where GCC is further away from success because researchers have already moved to LLVM (2)
The usual response is to look at the source but the sources are many times not well-documented, logically structured or easy to browse. (3)
plugins help here but this is still generally more difficult in GCC than in other compilers (4)