Megjelent a GCC 16.1: az első GCC 16-kiadás, alapértelmezett C++20-szal

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A GCC fejlesztői kiadták a GCC 16.1-et, a GCC 16 sorozat első stabil kiadását a GNU Compiler Collection részeként. A kiadás új alapértelmezett működést vezet be a C++ buildjeihez, bővíti a nyelvi támogatást, fejleszti a diagnosztikát, és javítja a friss hardverek célplatform-támogatását.

A legfontosabb változás, hogy a GCC C++ frontendje mostantól alapértelmezés szerint GNU C++20-at használ GNU C++17 helyett. Azoknál a projekteknél, amelyek egy régebbi C++ szabványra építenek, szükség lehet a

-std=

opció megadására a build kapcsolói között, vagy a forráskód frissítésére a GCC 16-hoz. A C++20 könyvtártámogatás mostanra stabil, a C++20 modulok viszont továbbra is kísérletiek, és még mindig igénylik a

-fmodules

kapcsolót.

Ezen felül a GCC 16.1 kísérleti támogatást hoz több C++26 funkcióhoz is, köztük a reflectionhöz, a contractshez, az expansion statementekhez, a

constexpr

kivételekhez, valamint a kapcsolódó standard library bővítésekhez, például a

std::simd

-hez, a

std::inplace_vector

-hoz, a

std::optional<T&>

-hez, a

std::copyable_function

-höz és a

std::function_ref

-hez.

Emellett hozzáadtak egy új, kísérleti Algol 68 compiler frontendet, a

ga68

-at. A GCC projekt szerint ez a frontend a Revised Reportban leírt nyelvet célozza, a jóváhagyott javításokkal együtt, és megvalósít néhány GNU-kiterjesztést, valamint egy POSIX prelude-ot.

A diagnosztika is frissült: a GCC 16 már képes kísérleti HTML formátumban is diagnosztikát készíteni, a SARIF kimenet pedig új vezérlésifolyamat-információkat tartalmaz. Eltávolították a régebbi JSON diagnosztikai formátumot, a géppel feldolgozható diagnosztikához pedig a SARIF használatát javasolják.

A kiadás kiterjeszti a C23

_BitInt

támogatását további célplatformokra is, köztük a RISC-V-re, Armra, S/390-re és LoongArchra. A C frontend mostantól támogatja a counted-by attribútumot pointer mezőknél, a Fortran coarray megvalósítása pedig megosztott memóriás többszálúsítási támogatást kapott egycsomópontos rendszereken.

A GCC 16.1 optimalizálási fejlesztéseket is tartalmaz, például jobb vektorizálást, a nem számlált ciklusok vektorizálásának támogatását, valamint a redukciók és a korai kilépések jobb kezelését. A Link-Time Optimization most már hatékonyabban kezeli a legfelső szintű assembly utasításokat a

-flto-toplevel-asm-heuristics

segítségével. A spekulatív devirtualizációt is kiterjesztették, így már az általános indirekt függvényhívásokat és több spekulatív célpontot is támogat.

A hardvertámogatás is frissült. x86-on a GCC 16 támogatást ad az AMD Zen 6-hoz a

-march=znver6

kapcsolóval, az Intel Wildcat Lake-hez a

-march=wildcatlake

-kel, valamint az Intel Nova Lake-hez a

-march=novalake

-kel. Az AMD GPU offloading mostantól kísérleti MI300 támogatást is tartalmaz, a LoongArch és az IBM Z pedig további compiler fejlesztéseket kapott.

A korábbi nagy GCC kiadásokhoz hasonlóan előfordulhat, hogy néhány, régebbi verziókkal még leforduló kód módosítást igényel a GCC 16.1-gyel történő fordításhoz. További részletekért nézd meg a bejelentést, vagy olvasd el a kiadási megjegyzéseket.

A GCC 16.1 már elérhető a GNU projekt kiadási szerverein, a gcc-16.1.0 könyvtárban.