GCC 12.1 již vyšlo, znáte jeho novinky a 35. výročí

Logo GNU GCC

Zahájení novou verzi kompilátoru GCC (GNU Compiler Collection) 12.1 již byla vydána a stejně jako všechny hlavní verze GCC, i toto vydání přinese mnoho doplňků, vylepšení, oprav chyb a nových funkcí, navíc tento měsíc (23. května) projekt oslaví 35 let od vytvoření prvního vydání.

GCC 12 je již systémovým kompilátorem pro Fedoru 36 a GCC 12 bude také dostupný na Red Hat Enterprise Linux od Red Hat Developer Toolset (verze 7) nebo Red Hat GCC Toolset (verze 8 a 9).

Vývojáři GCC s hrdostí oznamují další hlavní vydání GCC, 12.1.

Letos slavíme 35. výročí první beta verze GCC
A tento měsíc oslavíme 35 let od vydání GCC 1.0!

Toto vydání ruší podporu pro formát ladění STABS a
zavádí podporu pro formát ladění CTF [1]. Jazyky C a C++
rozhraní se stále vyvíjejí s rozšířenou podporou funkcí
v nadcházejících standardech C2X a C++23 a standardní knihovně C++
zlepšuje podporu pro experimentální části C++20 a C++23.
Rozhraní Fortran je nyní plně kompatibilní s TS 29113 pro interoperabilitu s C.

Co je nového v GCC 12.1?

V této nové verzi Bylo realizováno několik návrhů, například pro jazyky C a C++, přidáno vestavěná funkce __builtin_dynamic_object_size k určení velikosti objektu, kompatibilní s podobnou funkcí Clang.

Přidané podpora atributu "unavailable" pro jazyky C a C++ (můžete například označit funkce, které při použití způsobí chybu), stejně jako podporu direktiv předběžného zpracování "#elifdef" a "#elifndef" pro jazyky C a C++.

Je také třeba poznamenat, že Příznak "-Wbidi-chars" varuje, pokud jsou znaky UTF-8 zneužity, měnící obousměrné pořadí zobrazení textu a také příznak "-Warray-compare" pro zobrazení varování při pokusu o porovnání dvou operandů, které odkazují na pole.

Kromě toho iImplementace standardů OpenMP 5.0 a 5.1 Pokračovalo se (Open Multi-Processing), které definují API a metody pro aplikaci metod paralelního programování na vícejádrových a hybridních (CPU + GPU / DSP) systémech se sdílenou pamětí a vektorizačními jednotkami (SIMD).

Také vylepšená implementace specifikace paralelního programování OpenACC 2.6, definování prostředků pro snížení zátěže operací na GPU a specializovaných procesorech, jako je NVIDIA PTX, a přidání podpory pro rozšířené instrukce Intel AVX512-FP16 a typ _Float16 do backendu pro generování kódu x86.

Front-end Fortran poskytuje plnou podporu pro specifikaci TS 29113, která popisuje možnosti zajištění přenositelnosti mezi Fortran a C kódem.

Zastaralá podpora pro formát úložiště informací pro ladění „STABS“ vytvořený v 1980. letech.

Přidána podpora pro rozšíření __builtin_shufflevector(vec1, vec2, index1, index2, …) dříve přidané do Clang, které poskytuje jediné volání pro provádění běžných operací vektorového míchání a míchání.

Při použití úrovně optimalizace "-O2" je vektorizace standardně povolena (režimy -ftree-vectorize a -fvect-cost-model=velmi levné jsou povoleny). „Velmi levný“ model umožňuje vektorizaci pouze v případě, že vektorový kód může zcela nahradit vektorizovatelný skalární kód.

Přidán režim "-ftrivial-auto-var-init". umožnit explicitní inicializaci proměnných na zásobníku pro sledování problémů a blokování zranitelností spojených s používáním neinicializovaných proměnných.

Přidáno implementace funkcí C zabudovaných do kompilátoru (Intrinsics) pro atomické načítání a ukládání dat do paměti, založené na použití rozšířených instrukcí ARM (ls64). Přidána podpora pro zrychlení funkcí memcpy, memmove a memset pomocí rozšíření ARM mopoption.

Přidané nový ověřovací režim "-fsanitize=shadow-call-stack" ( ShadowCallStack ), který je aktuálně dostupný pouze pro architekturu AArch64 a funguje při kompilaci kódu s volbou "-fixed-r18". Režim poskytuje ochranu proti přepsání návratové adresy funkce v případě přetečení zásobníku zásobníku. Podstatou ochrany je po předání řízení funkci uložit návratovou adresu do samostatného „stínového“ zásobníku a před ukončením funkce tuto adresu načíst.

zdroj: https://gcc.gnu.org/pipermail


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.