Jakub Jelinek, разработчик из компании Red Hat, анонсировал первый кандидат в релизы набора компиляторов GCC 4.8. Если не возникнет непредвиденных проблем, финальный релиз ожидается в конце недели.
Наиболее видными изменениями станут:
- Кодовая база компилятора переведена на использование языка C++ (основной код по прежнему остаётся на языке Си, но теперь допускается использование языка C++ для разработки GCC, а для сборки требуется компилятор С++).
- Новый уровень оптимизации "-Og", нацеленный на то, чтобы сделать отладку более удобным и приятным процессом. В данном режиме сокращается время компиляции, а компилятор производит только минимальные оптимизации не влияющие на результаты при отладке;
- Поддержка новых чипов семейства Intel Haswell, а также AMD Jaguar и Steamroller.
- Реализация Address Sanitizer (-fsanitize=address) и Thread Sanitizer (-fsanitize=thread):
- Address Sanitizer - разработанное компанией Google средство для выявления некорректных обращений к памяти. С его помощью можно выявлять обращения к областям памяти после их освобождение ("use-after-free"), разрушение кучи, стека, а также переполнения буферов. Использование Address Sanitizer может замедлить работу программы примерно в два раза.
- Thread Sanitizer - режим обнаружения состояния "гонок" при совместном доступе к одним и тем же данным из различных тредов. Thread Sanitizer базируется на коде из программы Valgrind. Использование Thread Sanitizer может очень сильно (~в 10 раз) замедлить работу программы.
- Улучшения в поддержке стандартов C++11 и C11, а также реализация ряда возможностей будущего стандарта C++1y.
- Ряд улучшений в оптимизациях при генерации кода.
- Серия улучшений в поддержке архитектуры ARM.