Ця нова версія компілятора GCC був доступний кілька днів тому з новими функціями та виправленнями помилок.
За словами команди проекту GNU GCC, ця нова версія, версія 9.1 є основною версією компілятора Містить важливі нові функції, недоступні у GCC 8.x або попередніх версіях. GCC 9.1 має запровадити нові мовні функції, нові оптимізації та деякі покращення продуктивності програмного забезпечення.
Про GCC
GCC - це колекція компіляторів створений проектом GNU. Це точніше безкоштовне програмне забезпечення здатний компілювати різні мови програмування, включаючи C, C ++, Objective-C, Java, Ada та Fortran.
Слід також зазначити, що використовується для розробки більшості вільного програмного забезпечення. Останній випуск основного компілятора датується версією 2018 травня 8.1 року.
Якуб Єлінек, розробник Red Hat, пояснив, що GCC 8.1 представляє важливий випуск, що представляє важливі нові функції, недоступні в GCC 7.x та попередніх версіях GCC.
На даний момент інтерфейс C ++ забезпечив експериментальну підтримку деяких функцій C ++ 2a з параметрами -std = c ++ 2a та -std = gnu ++ 2a.
У версії 8.2 на загальному рівні вдосконалення були виправлені проблеми з продуктивністю LTO (оптимізація часу зв'язку) через переповнення алгоритму розділення під час створення великих двійкових файлів.
Виправлення продовжились у гілці 8.x, коли у лютому минулого року випущена версія компілятора 8.3. Цей випуск був випуском виправлення помилок, який містив виправлення для регресій у GCC 8.2 порівняно з попередніми версіями GCC. Команда GCC запустила нову гілку 3 травня, випустивши версію 9.
Що нового в GCC 9.1?
У цій версії Підтримка C ++ 17, введена з версії компілятора 8.1, більше не переживаєтьсял. Тому підтримка C ++ 17 тепер стабільна.
Інтерфейс С ++ реалізує всю мову С ++ 17 а підтримка стандартної бібліотеки C ++ наближається до завершення.
El front-end та бібліотека C ++ також мають багато інших функцій, закодованих із C ++ 2a. Крім того, GCC має новий інтерфейс для мови D і тепер частково підтримує OpenMP 5.0 і майже повністю інтегрує підтримку OpenACC 2.5.
Для багатьох GCC 9 є потужною версією компілятора, що надає чудові функції та вдосконалення для підвищення продуктивності розробника.
Серед багатьох нових можливостей GCC 9.1 є:
- Підтримка підтримки компіляції коду, написаного мовою програмування D;
- Новий серверний графічний процесор AMD GCN був доданий до GCC. В даний час реалізація обмежена компіляцією однопоточних програм.
- LRA тепер увімкнено за замовчуванням для цілі ARC. Цим можна керувати за допомогою -mlra.
- Додана підтримка коду зображення та операторів щільності гілок та індексів.
- До GCC додалося додавання нового внутрішнього таргетингового процесора C-SKY V2.
- Підтримку Intel MPX видалено.
- Додано нову серверну систему для підтримки процесора OpenRISC.
- Підтримка специфікації OpenACC 2.5 майже завершена.
- Внутрішній пакет "самотестування" GCC тепер працює для C ++ та C (у налагоджувальних версіях компілятора).
- Підтримка Fortran у GCC також була покращена. Тепер він обробляє асинхронні введення-виведення та інші функції.
- Міжпроцедурна оптимізація (OPI), оптимізація на основі профілів, оптимізація часу зв'язку (LTO), а також багато інших оптимізацій для забезпечення кращої якості коду.
- Загальний час побудови Firefox 66 та LibreOffice 6.2.3 на 8-ядерній машині скоротився приблизно на 5% порівняно з GCC 8.3. Розмір об'єктних файлів LTO зменшується на 7%.
- Час зв'язку LTO покращується на 11% на 8 основних машинах і різко змінюється для більш паралельних будівельних середовищ. Послідовний етап оптимізації часу на зв’язок відбувається на 28% швидше і споживає на 20% менше пам'яті. Тепер Parallel Stage розділяє 128 розділів замість 32 і зменшує використання пам’яті для кожного користувача на 30%.
- Нову опцію "-fdiagnostics-format = json" було введено для діагностики в машиночитаному форматі.
Фуенте: https://gcc.gnu.org