GCC 13.1 уже выпущен, и это его новости

GCC

Коллекция компиляторов GNU — это набор компиляторов, созданных в рамках проекта GNU. GCC является свободным программным обеспечением и распространяется Free Software Foundation под общедоступной лицензией GPL.

После года разработки было объявлено о запуске популярной системы сборки «GCC 13.1Это первый значительный выпуск в новой ветке GCC 13.x.

Согласно новой схеме нумерации версий, при разработке использовалась версия 13.0, а незадолго до выпуска GCC 13.1 уже была разветвлена ​​ветка GCC 14.0, из которой будет сформирована следующая мажорная версия GCC 14.1.



GCC 13.1 Основные новые функции

В этой недавно выпущенной версии GCC 13.1 Подчеркнуто, что принят интерфейс для создания программ на языке программирования «Модула-2», который поддерживает код сборки, соответствующий диалектам PIM2, PIM3 и PIM4, а также принятый стандарт ISO для этого языка.



В дополнение к этому также подчеркивается, что был добавлен в исходное дерево GCC, фронтенд с реализацией компилятора языка Rust, подготовленный проектом gccrs (GCC Rust). В текущем представлении интерфейс помечен как экспериментальный и отключен по умолчанию. Как только интерфейс будет готов (что ожидается в следующей версии), стандартный набор инструментов GCC можно будет использовать для компиляции программ на Rust без необходимости установки компилятора rustc, созданного с помощью сборок LLVM.

Link-in-Step Optimization (LTO) добавляет поддержку сервера заданий. Поддерживается проектом GNU make для оптимизации параллельного выполнения сборки в нескольких потоках. В GCC сервер заданий используется для распараллеливания задания во время LTO-оптимизации в контексте всей программы (WPA, полный анализ программы).



Еще одно важное изменение: реализована возможность формирования диагнозов в формате SARIF на основе JSON. новый формат можно использовать для получения результатов статического анализа (ССЗ -анализатор), а также информацию о предупреждениях и ошибках. Включение осуществляется опцией «-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-файл«, где варианты с «JSON» приводит к специфичному для GCC варианту формата JSON.

Некоторые из них были реализованы характеристики, определенные в стандарте C23 C, как постоянная нульптр для определения нулевых указателей, облегчения использования списков с переменным числом аргументов (variadic), расширения возможностей перечислений, атрибута возвращаться, позволяющее использовать constexpr и auto при определении объектов, typeof и typeof_unqual, новые ключевые слова alignas, alignof, bool, false, static_assert, thread_local и true, разрешение пустых скобок при инициализации.

В libstdc++ улучшена экспериментальная поддержка стандартов C++20 и C++23, например добавлена ​​поддержка файла заголовка. и std::format, расширить возможности заголовочного файла , добавить дополнительные типы с плавающей запятой, реализовав и .



Из другие изменения которые выделяются из этой новой версии:

  • Добавлены новые атрибуты функции для документирования того, что дескриптор файла передается в целочисленной переменной: «__attribute__((fd_arg(N)))», «__attribute__((fd_arg_read(N)))» и «__attribute__((fd_arg_write(N)) )) «.
  • Указанные атрибуты можно использовать в статическом анализаторе (-fanalyzer) для обнаружения некорректной работы с файловыми дескрипторами.
  • Добавлен новый атрибут » __attribute__((assume(EXPR))) «, который можно использовать, чтобы сообщить компилятору, что выражение истинно, и компилятор может использовать этот факт без оценки выражения.
  • В серверную часть архитектуры ARM добавлена ​​поддержка процессоров STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) и Arm Cortex-M85 (cortex-m85).
  • Добавлена ​​поддержка процессоров Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids и AMD Zen 4 (znver4) для серверной части x86.
  • Предлагаемые расширения набора инструкций AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT и AMX-COMPLEX были реализованы в процессорах Intel.
  • Для C и C++ в системах с SSE2 предоставляется тип __bf16.
  • Серверная часть генерации кода для графических процессоров AMD Radeon (GCN) реализует возможность использования ускорителей AMD Instinct MI200 для повышения производительности OpenMP/OpenACC.
  • Улучшена векторизация с использованием SIMD-инструкций.
  • Внутренние возможности платформы LoongArch были значительно расширены.

    Добавлена ​​поддержка ЦП T-Head XuanTie C906 (thead-c906) на серверной части RISC-V.
  • Реализована поддержка векторных контроллеров, определенных в спецификации RISC-V Vector Extension Intrinsic 0.11.
  • Добавлена ​​поддержка 30 расширений спецификации RISC-V.
  • Поддержка формата отладки DWARF реализована практически во всех конфигурациях.
  • Добавлен параметр «-gz=zstd» для сжатия отладочной информации с использованием алгоритма Zstandard.
  • Удалена поддержка устаревшего режима сжатия отладочной информации «-gz=zlib-gnu».


В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.




2023-04-27T08:35:23
GNU / Linux