Ричард Столлман написал первый вариант GCC в 1985 году на непереносимом диалекте языка Паскаль. В 1987 году компилятор был переписан на языке Си, и в таком виде существовал до 2013 года.
В новой версии GCC 4.8 улучшена производительность, реализован новый уровень оптимизации –Og
для сверхбыстрой компиляции почти без оптимизаций. Добавлены детектор ошибок в памяти Address Sanitizer от компании Google и детектор гонок данных Thread Sanitizer, который обнаруживает совместный доступ к одним и тем же данным из различных нитей многопоточного приложения. Более подробно о нововведениях см. release notes.
Детектор Address Sanitizer модно использовать на платформах Linux (IA-32, x86-64, x32, PowerPC, PowerPC64) и Darwin (x86-64), при этом скорость компиляции замедляется примерно в два раза.
Детектор Thread Sanitizer замедляет компиляцию примерно в 10 рах.
Кроме того, в GCC 4.8 улучшена поддержка C++11 и появилась поддержка архитектуры AArch64(ARM64), присутствующей в процессорах с набором команд ARMv8, хотя на рынке пока нет устройств с таким набором команд.
GCC — официальный компилятор системы GNU, он также является главным компилятором для ряда других операционных систем, в том числе разные варианты Linux и BSD, Mac OS X, ReactOS, BeOS и проч.
Подробнее о причинах миграции на C++ и конкретно о внесённых изменениях см. в GCC Wiki: C++ Conversion. Вкратце, причина в популярности языка C++ и более чистом коде на «плюсах».
Исходный код GCC 4.8.0
Официальный SVN-сервер
GCC-мануалы
К счастью, переход на C++ практически никак не отразился на производительности.
ссылка на оригинал статьи http://habrahabr.ru/post/174017/
Добавить комментарий