Благодаря новой схеме нумерации это первый стабильный выпуск серии GNU Compiler Collection (GCC) 5.x, выпущенный менее чем через год после выпуска GCC 5.0, экспериментального выпуска.
Коллекция компиляторов GNU (GCC) является ключевым компонентом инструментальной цепочки GNU и распространяется Free Software Foundation.
Помимо того, что GCC является официальным компилятором операционной системы GNU, он был принят в качестве стандартного компилятора во многих других современных Unix-подобных компьютерных операционных системах, включая Linux. Также доступны версии для Microsoft Windows и других операционных систем.
Первоначально названный GNU C Compiler, когда он обрабатывал только язык программирования C, GCC 1.0 был выпущен в 1987 году и был расширен для компиляции C ++ в декабре того же года. Позднее внешние интерфейсы были разработаны для Objective-C, Objective-C ++, Fortran, Java, Ada и Go среди других.
GCC был перенесен на широкий спектр архитектур процессоров и широко используется в качестве инструмента для разработки как бесплатного, так и проприетарного программного обеспечения.
В прошлом году ACM удостоил GCC награды Programming Languages Software Award, и цитата резюмирует это следующим образом:
Коллекция компиляторов GNU (GCC) предоставляет переносимый, производственный, совместимый со стандартами, высоко оптимизирующий компилятор, поддерживающий больше архитектур, языков программирования и операционных сред, чем любой другой сопоставимый инструмент. Он предоставляет набор инструментов, который лежит в основе всех дистрибутивов GNU / Linux, популярных веб-сайтов и встроенных сред.
Новость о выпуске GCC 5.1 была передана в список рассылки проекта GCC Якубом Елинеком, который перечислил следующие существенные изменения:
Интерфейс C ++ теперь имеет полную поддержку языка C ++ 14, в то время как Стандартная библиотека C ++ имеет экспериментальную поддержку C ++ 14 и полную поддержку C ++ 11, что стало возможным благодаря внедрению Dual ABI.
Интерфейс C теперь по умолчанию работает в режиме C11 с расширениями GNU, что влияет на семантику ключевого слова inline и вносит несколько видимых изменений другим пользователям.
GCC 5.1 содержит различные улучшения межпроцедурной оптимизации, например новый проход IPA Identical Code Folding и различные улучшения LTO, например Слияние типов C ++ на основе ODR.
Распределитель локальных регистров GCC 5.1 теперь содержит подпроход рематериализации, который позволяет повторно использовать жесткий регистр PIC на аппаратных архитектурах x86 и x86_64 для повышения производительности независимого от позиции кода. Также были добавлены простой межпроцедурный проход RA и различные другие улучшения распределения регистров.
GCC 5.1 добавляет частичную поддержку стандарта OpenACC, поддержку разгрузки OpenMP 4.0 для будущих ускорителей Intel Xeon Phi и поддержку разгрузки OpenACC в PTX. Undefined Behavior Sanitizer в GCC был расширен за счет добавления различных новых проверок времени выполнения и экспериментальной библиотеки GCC JIT.
Подробности о других изменениях можно найти в GCC 5 Release Series Changes, New Features, and Fixes.
GCC 5.1 доступен для списка FTP-серверов на сайте операционной системы GNU.