Jakub Jelinek, разработчик из компании Red Hat, анонсировал первый кандидат в релизы набора компиляторов GCC 4.8. Если не возникнет непредвиденных проблем, финальный релиз ожидается в конце недели.
Наиболее видными изменениями станут:
- Кодовая база компилятора переведена на использование языка C++. Основной код по прежнему остаётся на языке Си, но некоторые части были переписана на C++, допускается включение новых компонентов на языке C++ и для сборки обязательно требуется компилятор С++.
- Новый уровень оптимизации «-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.