- PVSM.RU - https://www.pvsm.ru -
С выпуском GCC 4.8.0 [1] разработчики набора компиляторов GNU Compiler Collection завершили переход на C++ в реализации GCC. Работа по переводу кодовой базы на C++ продолжалась c 2008 года, и теперь подошла к концу. Миграция на C++ означает, что теперь для сборки GCC из исходников обязательно требуется компилятор С++ 2003.
Ричард Столлман написал первый вариант GCC в 1985 году на непереносимом диалекте языка Паскаль. В 1987 году компилятор был переписан на языке Си, и в таком виде существовал до 2013 года.
В новой версии GCC 4.8 улучшена производительность, реализован новый уровень оптимизации –Og для сверхбыстрой компиляции почти без оптимизаций. Добавлены детектор ошибок в памяти Address Sanitizer [2] от компании Google и детектор гонок данных Thread Sanitizer [3], который обнаруживает совместный доступ к одним и тем же данным из различных нитей многопоточного приложения. Более подробно о нововведениях см. release notes [1].
Детектор 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 [4]. Вкратце, причина в популярности языка C++ и более чистом коде на «плюсах».
Исходный код GCC 4.8.0 [5]
Официальный SVN-сервер [6]
GCC-мануалы [7]
К счастью, переход на C++ практически не отразился [8] на производительности компиляторов GCC.
Автор: alizar
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/30240
Ссылки в тексте:
[1] GCC 4.8.0: http://gcc.gnu.org/gcc-4.8/changes.html
[2] Address Sanitizer: https://code.google.com/p/address-sanitizer/
[3] Thread Sanitizer: https://code.google.com/p/data-race-test/wiki/Thread Sanitizer
[4] GCC Wiki: C++ Conversion: http://gcc.gnu.org/wiki/cxx-conversion
[5] Исходный код GCC 4.8.0: http://gcc.gnu.org/mirrors.html
[6] Официальный SVN-сервер: http://gcc.gnu.org/svn.html
[7] GCC-мануалы: http://gcc.gnu.org/onlinedocs/4.8.0/
[8] не отразился: http://rusty.ozlabs.org/?p=330
[9] Источник: http://habrahabr.ru/post/174017/
Нажмите здесь для печати.