GCC 12.1 вже випущено, і це його новини

Через рік розвитку Випущено пакет збірки GCC 12.1, перший значний випуск у новій гілці GCC 12.x.

За новою схемою нумерації версій під час розробки використовувалася версія 12.0, а незадовго до випуску GCC 12.1 вже була роздвоєна гілка GCC 13.0, з якої буде сформована наступна велика версія GCC 13.1.

GCC 12.1 Основні нові можливості

У цій новій версії, яка представлена, підкреслюється, що sдодана підтримка формату налагодження CTF, який забезпечує компактне зберігання інформації про типи C, відносини між функціями та символи налагодження. При вбудовуванні в об’єкти ELF формат дозволяє використовувати таблиці символів EFL, щоб уникнути дублювання даних.

Крім цього, зазначається, що продовжується робота над розширенням підтримки майбутніх стандартів C2X і C++23 для C і C++ і це також сумісність з експериментальні розділи стандартів C++20 і C++23 було вдосконалено у стандартній бібліотеці C++.

Для архітектури x86, додано додатковий захист від уразливостей процесора, викликаних спекулятивним виконанням інструкцій після безумовних операцій переходу вперед. Проблема виникає через випереджувальну обробку інструкцій, що йдуть безпосередньо за інструкцією переходу в пам'яті (SLS, Straight Line Speculation). Щоб увімкнути захист, пропонується параметр "-mharden-sls".

Також підкреслюється, що додано визначення для використання неініціалізованих змінних до експериментального статичного аналізатора. Додана початкова підтримка розбору коду ассемблера на вбудованих вставках. Покращено відстеження пам'яті. Переписаний код для обробки виразів змін.

Були додані 30 нових викликів до libgccjit, спільна бібліотека для вбудовування генератора коду в інші процеси та використання його для JIT байт-коду до компіляції рідного коду.

З іншого боку, підкреслюється, що підтримка механізму CO-RE (Скомпілюйте один раз – запускайте всюди) до бекенда для створення байт-коду BPF, який дозволяє компілювати код програм eBPF для ядра Linux лише один раз і використовувати спеціальний універсальний завантажувач, який адаптує завантажену програму до поточних типів ядра та BTF (формат типу BPF). CO-RE вирішує проблему з переносимістю скомпільованих програм eBPF, які раніше могли використовуватися лише у версії ядра, для якої вони були створені, оскільки положення елементів у структурах даних варіюється від версії до версії.

було додано до Підтримка серверної частини RISC-V для нових розширень архітектури наборів інструкцій zba, zbb, zbc і zbs, а також розширення ISA для векторних і скалярних криптографічних операцій. Підтримка специфікації RISC-V ISA 20191213 надається за замовчуванням. Додано прапор -mtune=thead-c906, щоб увімкнути оптимізацію для ядер T-HEAD c906.

Додано підтримка типу __int128_t/integer(kind=16) до бекенда генерації коду для графічних процесорів AMD на основі мікроархітектури GCN. Можна використовувати до 40 робочих груп на один обчислювальний блок (CU) і до 16 фронтів команд (хвильовий фронт, набір потоків, що виконуються паралельно SIMD Engine) на групу. Раніше на CU було дозволено лише одне ребро команди.

Показники "-march", "-mptx" і "-march-map" були додані до бекенда NVPTX, призначений для генерації коду з використанням архітектури набору інструкцій NVIDIA PTX (Parallel Thread Execution). Реалізована підтримка PTX ISA sm_53, sm_70, sm_75 та sm_80. Архітектура за замовчуванням – sm_30.

Крім цього, наголошується, що виправлено проблему, через яку компілятор виконував некваліфікований пошук виразу залежного оператора під час визначення шаблону, а не під час створення. Це рішення відповідає існуючій поведінці для залежних виразів виклику.

Варто зазначити, що 23 травня проект відзначатиме 35 років з дня утворення першого релізу GCC. Нарешті якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі У наступному посиланні.


Зміст статті відповідає нашим принципам редакційна етика. Щоб повідомити про помилку, натисніть тут.

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

Залиште свій коментар

Ваша електронна адреса не буде опублікований.

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.