The Free Software Foundation and GCC Steering Committee have now decided that it's okay and permitted to write code for the GNU Compiler Collection (GCC) within C++. Up to this point, C has been the preferred language for working on GCC.
CodeSourcery, a company that works on GCC for various companies like with Texas Instruments for bringing the GNU Toolchain to new CPUs and also offers their own software development environment, has shared their intentions to provide a new set of GCC optimizations for Intel's Core 2 and Core i7 processors.
The LLVM compiler infrastructure project has Clang as a compiler front-end to compile C, Objective-C, and C++ programs as an alternative to GCC. However, the Low-Level Virtual Machine is now doing more and replacing bigger portions of the GCC tool-chain with new components. The LLVM project has introduced libc++ as a replacement for the GNU libstdc++ standard library.
This month marked the release of GCC 4.5.0 and LLVM 2.7 with updates to the Clang compiler too, but the month is not over in the free software compiler world. Jakub Jelinek of Red Hat is uploading the GCC 4.4.4 packages right now for its release.
Last week we compared LLVM and Clang against GCC following the release of GCC 4.5 and found the newer compiler infrastructure that's sponsored by Apple to not perform as well as the GNU Compiler Collection in a number of areas at this time, but today LLVM 2.7 is out. Version 2.7 of the Low-Level Virtual Machine brings forward many improvements to both core LLVM itself and the Clang compiler front-end.
Version 4.5 of the GNU Compiler Collection (GCC) was running behind with too many regressions being left open, but only a few weeks ago they cleared their P1 regressions and then put out the GCC 4.5 release candidate. Now, already, GCC 4.5 has been officially released.
GCC 4.5 has been running a bit behind schedule due to outstanding regressions, but last week the last of their highest severity regressions were addressed, which paved the way for a release candidate. Today the release candidate for version 4.5 of the GNU Compiler Collection (GCC) has arrived.
GCC 4.5 was not in a good shape as of the middle of March with it still not being ready due to 16 outstanding P1 regressions, but over the past two weeks, developers have feverishly been fixing these bugs and the count is now down to zero. For P2 regressions, 17 of them have been fixed too over this time span, which brings the second-tier bugs down to a count of 81. There is also one new P3 regression bringing its count to three.
GCC 4.4.0 was released nearly a year ago, but it looks like its one-year anniversary may pass without a new major release of the GNU Compiler Collection. GCC 4.5 was not yet branched back in January due to outstanding P1 regressions, which is also blocking any release candidates from being made available. Now in March there are 16 regressions of P1 status still outstanding.
The Clang compiler that provides a C/Object-C/C++ compiler atop the Low-Level Virtual Machine (LLVM) is now self-hosting, which means Clang can now be used to compile itself. The LLVM developers reached this important milestone where LLVM/Clang can now be used to build Clang with working resulting binaries that can even go on to build another copy of Clang as well.
In early December we passed along a GCC 4.5 status update in which there were still 26 P1 regressions (the highest priority), 93 P2 regressions, and four P3 regressions. Red Hat's Jakub Jelinek has published a new GCC 4.5 status update on the GCC mailing list. As of today there are now only 18 regressions of P1 severity, 84 regressions of P2, and there's now nine P3 regressions.
Novell's Richard Guenther has issued a GCC 4.5 status report this morning as yesterday this next major version of the GNU Compiler Collection had left "Stage 3" and is now entering a period in which only regression fixes and documentation work will take place.
Version 2.6 of LLVM, the Low-Level Virtual Machine, has been released. This modular compiler infrastructure, which can replace many parts of the GNU Compiler Collection and go far beyond the conventional roles as a code compiler such as being used within Apple's Mac OS X OpenGL implementation for providing optimizations and is similarly going to be used within Gallium3D, has taken a major leap forward with the 2.6 release.
Finally we have a stable, official release of GCC 4.4. This major update to the GNU Compiler Collection brings forth Graphite, which is a framework for providing loop optimizations and eventually will be used to provide automatic parallelization support. While still experimental, there is also improved support for C++0x, new compiler improvements, and various language-specific enhancements.
If you are into compilers and have not already tried out the latest bits from GCC 4.4, you may want to give the GCC 4.4.0 Release Candidate 1 a whirl. GCC 4.4.0 RC1 was tar'ed up yesterday and is now ready for testing.
Intel contributes quite a bit to the development of X.Org and the Linux kernel, through a number of Intel employees working on Linux full-time, making hardware contributions, etc. Up until recently, Intel even had its own Linux distribution (Moblin) for their Atom hardware. One area, however, where Intel has not been a major contributor is with the GNU Compiler Collection (GCC) considering they have long preferred their own high-performance Intel Compiler (ICC). That's not to say Intel hasn't made any contributions towards this critical piece of free software, but AMD and others have been more involved with GCC while Intel worked on its non-free ICC package. It looks though like things could be changing.
IBM's Razya Ladelsky today outlined plans for providing automatic parallelization support within the GNU Compiler Collection. The Graphite Framework, which provides high-level loop optimizations based upon the polyhedral model, was merged for the forthcoming release of GCC 4.4 and it will be used eventually to provide some level of automatic parallelization support. Graphite will be combined with autopar, which is an automatic parallelization code generator based upon GOMP that in turn implements OpenMP.
The LLVM (Low-Level Virtual Machine) still isn't a big competitor to GCC since the Clang compiler front-end remains unfinished, but the LLVM folks have issued a version 2.5 release. LLVM 2.5 is made up of a bunch of bug fixes, a new XCore back-end, performance improvements (in the compiler and its generated code), new development documentation, and plenty more new work.
In early December the OpenCL specification was unveiled, which is an open framework initially conceived by Apple for extending the power of graphics processors to better handle GPGPU computing in a unified way. Both ATI/AMD and NVIDIA are working on bringing Open Computing Language support to their proprietary Linux drivers, while nothing has yet to be started on the open-source side to integrate the support within Mesa. Though as OpenCL consists of a C99-based language for programming, what's the status on the compiler front?
It's been just under three months since GCC 4.3.0 was released with support for Intel's SSE4.1/SSE4.2 instruction sets and experiment C++0x support, and now there is GCC 4.3.1. The GCC 4.3.1 release fixes a number of regressions and other bugs, which are all laid out within the GCC BugZilla. The release announcement was made on the GNU mailing list.
GCC 4.2.0 was released less than a year ago, but arriving yesterday was the release of GCC 4.3.0. Version 4.3.0 of the GNU Compiler Collection has its middle-end integrated with the MPFR math library, experimental support for the forthcoming C++0x ISO standard, GCJ now uses the Eclipse Java Compiler for Java parsing, all Java 1.5 language features now supported by both the compiler and at run-time, and new GCJ Java tools. GCC 4.3.0 also has performance tuning for the Intel Core 2 and AMD Geode processors. In addition, there is now support for Intel's SSE4.1, and SSE4.2 instruction sets. There are many more changes, so be sure to check out the GCC 4.3 change-log. The release announcement on the GNU mailing list provides additional details.
Continuing in the GCC 4.2 series is the release of GCC 4.2.2. GCC 4.2.2 contains changes and other fixes since GCC 4.2.1. As was mentioned in the GCC 4.2.1 announcement, all future releases would be under version 3 of the GNU General Public License. With that said, GCC 4.2.2 is now GPLv3 software. The official announcement hasn't yet come down the gcc-announce wire, but it should come shortly seeing as their slated release date was October 7.
GCC 4.2.1 has been released to address bugs and other regressions in GCC. Significant about this release is that all releases after GCC 4.2.1 will be released under the GNU GPLv3 license as opposed to the GPLv2. Read more about the GCC 4.2.1 release at GNU.org.
Hitting the web recently was the release of GCC 4.2.0. This inaugural release in the GCC 4.2 branch supports OpenMP in C / C++ / Fortran, new command line options, a number of improvements to C++, fastjar being removed from GCC 4.2 and later, and a variety of other changes to the GNU C Compiler. The GCC 4.2 page is here along with a GCC 4.2 changes page.
594 Compiler news articles published on Phoronix.