GCC 12.1 již vyšlo a toto jsou jeho novinky

Po roce vývoje Vydán sestavení balíčku GCC 12.1, první významné vydání na nové větvi GCC 12.x.

Podle nového schématu číslování verzí byla při vývoji použita verze 12.0 a krátce před vydáním GCC 12.1 již byla větev GCC 13.0 rozvětvená, ze které se vytvoří další hlavní verze GCC 13.1.

GCC 12.1 Hlavní nové funkce

V této nové verzi, která je představena, je zdůrazněno, že se přidána podpora pro formát ladění CTF, který poskytuje kompaktní úložiště informací o typech C, vztazích mezi funkcemi a symbolech ladění. Při zabudování do objektů ELF formát umožňuje použití tabulek symbolů EFL, aby se zabránilo duplikaci dat.

Kromě toho se poznamenává, že pokračuje práce na rozšíření podpory budoucích standardů C2X a C++23 pro C a C++ a to také kompatibilita s experimentální části standardů C++20 a C++23 byly vylepšeny ve standardní knihovně C++.

Pro architekturu x86 přidal další ochranu proti zranitelnostem procesoru způsobeným spekulativním spouštěním instrukcí po bezpodmínečných operacích skoku vpřed. Problém vzniká preemptivním zpracováním instrukcí bezprostředně následujících po instrukci skoku v paměti (SLS, Straight Line Speculation). Pro aktivaci ochrany se doporučuje volba "-mharden-sls".

To je také zdůrazněno přidána definice pro použití neinicializovaných proměnných do experimentálního statického analyzátoru. Přidána počáteční podpora pro analýzu kódu sestavy na vložených vložkách. Vylepšené sledování paměti. Přepsaný kód pro zpracování výrazů změn.

Byly přidány 30 nových volání libgccjit, sdílená knihovna pro vložení generátoru kódu do jiných procesů a jeho použití pro JIT bytecode až po kompilaci nativního kódu.

Na druhou stranu je zdůrazněno, že podpora mechanismu CO-RE (Compile Once - Run Everywhere) do backendu pro vygenerování BPF bytecode, který umožňuje sestavit kód programů eBPF pro jádro Linux jen jednou a použít speciální univerzální zavaděč, který přizpůsobí načtený program aktuálnímu jádru a typům BTF (formát typu BPF). CO-RE řeší problém s přenositelností zkompilovaných programů eBPF, které dříve mohly být použity pouze ve verzi jádra, pro kterou byly sestaveny, protože pozice prvků v datových strukturách se verze od verze liší.

byl přidán do Backendová podpora RISC-V pro rozšíření nové architektury instrukčních sad zba, zbb, zbc a zbs, stejně jako rozšíření ISA pro vektorové a skalární kryptografické operace. Standardně je poskytována podpora pro specifikaci RISC-V ISA 20191213. Přidán příznak -mtune=thead-c906 pro povolení optimalizace pro jádra T-HEAD c906.

Přidané podpora pro typ __int128_t/integer(kind=16) do backendu pro generování kódu pro AMD GPU na základě mikroarchitektury GCN. Je možné použít až 40 pracovních skupin na výpočetní jednotku (CU) a až 16 front instrukcí (wavefront, sada vláken paralelně vykonávaných SIMD Engine) na skupinu. Dříve byla povolena pouze jedna hrana instrukce na CU.

Indikátory "-march", "-mptx" a "-march-map" byly přidány do backendu NVPTX, určený pro generování kódu pomocí architektury instrukční sady NVIDIA PTX (Parallel Thread Execution). Implementována podpora pro PTX ISA sm_53, sm_70, sm_75 a sm_80. Výchozí architektura je sm_30.

Kromě toho je zdůrazněno, že opraven problém, kdy kompilátor prováděl nekvalifikované vyhledávání závislého operátorového výrazu v době definice šablony spíše než v době vytváření instance. Toto řešení odpovídá stávajícímu chování pro závislé volající výrazy.

Za zmínku stojí, že 23. května projekt oslaví 35 let od vzniku prvního vydání GCC. Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

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

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  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.