nixp.ru v3.0

22 декабря 2024,
воскресенье,
05:09:29 MSK

3 мая 2017, 05:30

GCC 7.1 — крупное обновление свободных компиляторов к 30-летию проекта

Логотип GNU GCC
Логотип GNU GCC
Иллюстрация с сайта En.Wikipedia.Org

Вчера был анонсирован новый крупный выпуск набора свободных компиляторов проекта GNU — GCC 7.1. Релиз приурочен к 30-летию с момента релиза GNU Compiler Collection 1.0 (состоялся 23 мая 1987 года).

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 представлена в этом документе.

Постоянная ссылка к новости: http://www.nixp.ru/news/14014.html. Дмитрий Шурупов по материалам mail-archive.com, gcc.gnu.org.

fb twitter vk