With the release of GCC 4.8.0, the developers of the GNU Compiler Collection have switched to C++ as the implementation language for their software. Development work to enable this has been ongoing for years and has now been completed. GCC 4.8 also introduces performance improvements, a new general optimisation level, and adds the memory error detectorAddressSanitizer, as well as the ThreadSanitizer tool, based on valgrind and PIN, that can detect race conditions.
The switch to C++ means that developers who want to build their own version of GCC now need a C++ compiler that understands C++ 2003. The GCC developers give some background and explain their rationale for the change on the GCC Wiki; the page also lists the individual patches to the compiler that were committed as part of the migration. Users who want to enable the loop optimisation framework Graphite in GCC 4.8 will require new versions of CLooG and ISL, which can be downloaded from the infrastructure directory on the GCC servers.
Source code for GCC 4.8.0 is available from a number of mirrors and the project’s SVN server. The GCC manuals provide in-depth information on all aspects of the compiler and a list of changes in version 4.8.0 is presented in the change log. GCC is licensed under the GPLv3 or later.