Представлен релиз свободного набора компиляторов GCC 8.1

Спустя год после выхода GCC 7.1, опубликован новый релиз свободного набора компиляторов GCC 8.1 с расширением средств диагностики, реализацией некоторых опций будущего стандарта C++2a и другими функциями.

Поддержка стандартов C++

В libstdc++ появились новые возможности стандартов C++17, такие, как std::filesystem, std::char_traits, std::to_chars, std::from_chars, а также экспериментального C++2a: std::to_address и std::endian. Добавлена поддержка расширений математических функций __gnu_cxx::airy_ai и __gnu_cxx::airy_bi.

Оптимизация

Механизм PGO генерирует улучшенный код на основе анализа особенностей его выполнения. Режим оптимизации -freorder-blocks-and-partition на системах x86/x86-64 разделяет тело функции на «горячие» и «холодные» области выполнения. Он применяется по умолчанию, начиная с уровня «-O2». Также в системе оптимизации улучшен способ представления отладочной информации в формате DWARF.

Диагностика

Расширенные средства диагностики точнее находят конфликты в коде и предлагают подсказки по их устранению. Например, теперь в случае пропущенных скобок } и ) компилятор указывает на место возможного пропуска. В случае обращения к приватным полям класса или структурам выдается подсказка по использованию функции-обертки. Конфликтующие типы шаблонов выделяются цветом или отображаются в виде иерархии.

Архитектуры

Для ARM64 появилась поддержка механизма SVE с расширенными инструкциями для векторной обработки данных. Внесена поддержка архитектур Armv8-R, Armv8.3-A и Armv8.4-A, а также процессоров Arm Cortex серий A75, A55 и R52.

Новые расширения

Добавлена поддержка процессоров Intel Cannon Lake c расширениями AVX512VBMI, AVX512IFMA и SHA ISA. Intel Ice Lake поддерживается c AVX512VNNI, GFNI, VAES, AVX512 VBMI2 и другими расширениями. CET (Intel Control-flow Enforcement Technology) для систем x86 активируется при помощи опций -mibt, -mshst и -mcet.

С полным списком изменений в новой версии можно ознакомиться на официальном сайте разработчиков.

Напомним, что предыдущая версия компилятора — 7.3 вышла в январе 2018 года. Разработчики внедрили в GCC защиту от атак типа Spectre, а также устранили проблемы с совместимостью.

Источник: OpenNET

Подобрали три теста для вас:
— А здесь можно применить блокчейн?
Серверы для котиков: выберите лучшее решение для проекта и проверьте себя.
Сложный тест по C# — проверьте свои знания.

Также рекомендуем: