Новостей.COM ⇒
⇓
2017-05-03
GCC 7.1 — крупное обновление свободных компиляторов к 30-летию проекта
Вчера был анонсирован новый крупный выпуск набора свободных компиляторов проекта GNU — GCC 7.1. Релиз приурочен к 30-летию с момента релиза GNU Compiler Collection 1.0 (состоялся 23 мая 1987 года).
Логотип GNU GCC / Иллюстрация с сайта En.Wikipedia.Org
GCC 7.1 — первый крупный релиз из ветки 7.x, содержащий новые возможности, которых не было в GCC 6.x и более ранних версиях. Среди наиболее значимых изменений, представленных в обновлении свободных компиляторов от проекта GNU, можно выделить следующие:
- во фронтенде языка C++ добавлена экспериментальная поддержка всех возможностей нового (пока ещё чернового) стандарта C++17 (включается с помощью -std=c++1z и -std=gnu++1z), а в библиотеке libstdc++ реализовано большинство возможностей C++17;
- диагностика допускаемых в коде ошибок стала более развитой, получив дополнительные проверки и вывод новых предупреждений в ряде ситуаций;
- значительные улучшения в оптимизиторах;
- Address Sanitizer теперь сообщает об использовании переменных вне области их видимости;
- многочисленные улучшения, помогающие обнаружить переполнение буфера и другие виды некорректных обращений к памяти для семейства языков C;
- расширения Cilk+ для языков C и C++ объявлены устаревшими;
- возможность конфигурации GCC для использования OpenMP 4.5, чтобы перенести вычисления на видеопроцессоры NVIDIA (PTX в CUDA);
- для новых целевых платформ GCC по умолчанию использует свой новый распределитель регистров (LRA, local register allocator);
- добавлена поддержка стандарта отладочной информации DWARF 5;
- добавлена поддержка обработки файлов BRIG 1.0 — бинарного формата, используемого для HSAIL (Heterogeneous System Architecture Intermediate Language);
- полная реализация пользовательских пакетов Go 1.8.1;
- Java-фронтенд (GCJ) и связанная с ним runtime-библиотека libjava удалены из GCC;
- улучшения в поддержке архитектуры ARM: ARMv8.2-A и ARMv8.2-A 16-bit Floating-Point Extensions, ARMv8.3-A, а также ряда процессоров (включая ARM Cortex-A73, Broadcom Vulcan, Qualcomm Falkor);
- добавлена поддержка набора инструкций RISC-V;
- добавлена поддержка операционной системы Fuchsia OS.
Информация о портировании кода на GCC 7 представлена в этом документе.
Дмитрий Шурупов по материалам mail-archive.com, gcc.gnu.org.