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

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

Логотип GNU GCC
Логотип 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.







Интересные новости
Незавершенная версия Windows 7 работает лучше Vista
Программист открыл заблокированные возможности Windows 7
Quick Slide Show 2.32: создание flash-презентаций
Покупатели гоняются за старыми компьютерами ради Windows XP
Визуализатор V-Ray 1.5 Service Pack 2 с поддержкой 3ds Max 2009
Блок рекламы


Похожие новости

NVIDIA выпустила обновление безопасности для видеокарт серии KeplerNVIDIA выпустила обновление безопасности для видеокарт серии Kepler
Недавнее обновление нарушает работоспособность браузера Google Chrome для iOSНедавнее обновление нарушает работоспособность браузера Google Chrome для iOS
Обновление BIOS нарушило работоспособность ПК и ноутбуков Dell
Вышло первое крупное обновление Windows 11 — оно ещё сильнее замедлило процессоры AMD Ryzen
Недавнее обновление Windows 10 может вызвать проблемы с сетевой печатью
Windows 10 получила необязательное обновление, в котором исправлено падение FPS в некоторых играх и другие проблемы
Июльское накопительное обновление для Windows нарушает работоспособность функций печати и сканирования
Microsoft выпустит обновление Windows 10 21H2 с новыми функциями, несмотря на запуск Windows 11
Обновление Windows 10 вызвало сбои в работе аудиосистем 5.1
Майское накопительное обновление Windows 10 закрыло 55 критических уязвимостей
Последние новости

Подгружаем последние новости