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».

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


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.