GCC 12.1 a fost deja lansat și acestea sunt știrile sale

După un an de dezvoltare Pachetul de compilare GCC 12.1 a fost lansat, prima lansare semnificativă pe noua ramură GCC 12.x.

În cadrul noii scheme de numerotare a versiunilor, versiunea 12.0 a fost folosită în timpul dezvoltării, iar cu puțin timp înainte de lansarea GCC 12.1, ramura GCC 13.0 a fost deja bifurcată, din care se va forma următoarea versiune majoră a GCC 13.1.

GCC 12.1 Principalele caracteristici noi

În această nouă versiune care este prezentată, se evidențiază că sa adăugat suport pentru formatul de depanare CTF, care oferă stocare compactă a informațiilor despre tipurile C, relațiile dintre funcții și simbolurile de depanare. Când este încorporat în obiecte ELF, formatul permite utilizarea tabelelor de simboluri EFL pentru a evita duplicarea datelor.

Pe lângă aceasta, se remarcă faptul că munca continuă să extindă suportul pentru viitoarele standarde C2X și C++23 pentru C și C++ și că, de asemenea, compatibilitate cu secţiunile experimentale ale standardelor C++20 și C++23 au fost îmbunătățite în biblioteca standard C++.

Pentru arhitectură x86, a adăugat protecție suplimentară împotriva vulnerabilităților procesorului cauzate de execuția speculativă de instrucțiuni după operații necondiționate de salt înainte. Problema apare din procesarea preventivă a instrucțiunilor imediat după instrucțiunea de salt în memorie (SLS, Straight Line Speculation). Opțiunea „-mharden-sls” este sugerată pentru a activa protecția.

De asemenea, se evidențiază faptul că a adăugat o definiție pentru utilizarea variabilelor neinițializate la analizorul static experimental. S-a adăugat suport inițial pentru analizarea codului de asamblare pe inserțiile inline. Urmărirea memoriei îmbunătățită. Cod rescris pentru a gestiona expresiile de modificare.

Au fost adaugate 30 de apeluri noi către libgccjit, o bibliotecă partajată pentru încorporarea unui generator de cod în alte procese și pentru utilizarea acestuia pentru compilarea codului de octet JIT în codul nativ.

Pe de altă parte, se subliniază că sprijin pentru mecanismul CO-RE (Compilați o dată - Executați peste tot) în backend pentru a genera codul de octet BPF, care permite compilarea codului programelor eBPF pentru nucleu Linux o singură dată și folosiți un încărcător universal special care adaptează programul încărcat la nucleul curent și la tipurile BTF (format de tip BPF). CO-RE rezolvă problema portabilității programelor eBPF compilate care anterior puteau fi utilizate doar în versiunea de kernel pentru care au fost construite, deoarece poziția elementelor în structurile de date variază de la versiune la versiune.

a fost adăugat la Suport backend RISC-V pentru noi extensii de arhitectură de seturi de instrucţiuni zba, zbb, zbc și zbs, precum și extensiile ISA pentru operații criptografice vectoriale și scalare. Suportul pentru specificația RISC-V ISA 20191213 este furnizat implicit. S-a adăugat flag -mtune=thead-c906 pentru a activa optimizările pentru nucleele T-HEAD c906.

Adăugat suport pentru tipul __int128_t/integer(kind=16) la backend-ul de generare a codului pentru GPU-urile AMD bazat pe microarhitectura GCN. Este posibil să utilizați până la 40 de grupuri de lucru per unitate de calcul (CU) și până la 16 fronturi de instrucțiuni (front de undă, un set de fire executate în paralel de SIMD Engine) per grup. Anterior, era permisă doar o singură margine de instrucțiune per CU.

Indicatorii „-march”, „-mptx” și „-march-map” au fost adăugate la backend-ul NVPTX, conceput pentru generarea de cod folosind arhitectura setului de instrucțiuni NVIDIA PTX (Parallel Thread Execution). Suport implementat pentru PTX ISA sm_53, sm_70, sm_75 și sm_80. Arhitectura implicită este sm_30.

Pe lângă aceasta, se subliniază că a rezolvat o problemă în care compilatorul ar efectua o căutare necalificată a unei expresii de operator dependent la momentul definirii șablonului, mai degrabă decât la momentul instanțierii. Această soluție se potrivește cu comportamentul existent pentru expresiile de apelare dependente.

De menționat că pe 23 mai, proiectul va sărbători 35 de ani de la formarea primei versiuni GCC. In cele din urma dacă sunteți interesat să aflați mai multe despre asta, puteți verifica detaliile În următorul link.


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată.

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.