GCC 12.1 er allerede blevet frigivet, kend dets nyheder og dets 35-års jubilæum

GNU GCC logo

Lanceringen af den nye version af compileren GCC (GNU Compiler Collection) 12.1 var allerede udgivet og som med alle større udgivelser af GCC, vil denne udgivelse bringe mange tilføjelser, forbedringer, fejlrettelser og nye funktioner, plus denne måned (23. maj) vil projektet fejre 35 år siden dannelsen af ​​den første udgivelse.

GCC 12 er allerede systemkompileren til Fedora 36, ​​og GCC 12 vil også være tilgængelig på Red Hat Enterprise Linux i Red Hat Developer Toolset (version 7) eller Red Hat GCC Toolset (version 8 og 9).

GCC-udviklerne er stolte af at kunne annoncere endnu en større udgivelse af GCC, 12.1.

I år fejrer vi 35-året for den første betaversion af GCC
Og i denne måned vil vi fejre 35 år siden udgivelsen af ​​GCC 1.0!

Denne udgivelse dropper understøttelse af STABS-fejlretningsformatet og
introducerer understøttelse af CTF-fejlretningsformatet [1]. C og C++
grænseflader fortsætter med at udvikle sig med udvidet understøttelse af funktioner
i de kommende C2X- og C++23-standarder og C++ Standard Library
forbedrer understøttelsen af ​​de eksperimentelle dele af C++20 og C++23.
Fortran-grænsefladen er nu fuldt kompatibel med TS 29113 for interoperabilitet med C.

Hvad er nyt i GCC 12.1?

I denne nye version Flere forslag er blevet gennemført, såsom for sprog C og C++, tilføjet en indbygget funktion __builtin_dynamic_object_size for at bestemme størrelsen af ​​et objekt, kompatibel med en lignende funktion af Clang.

Tilføjet understøttelse af attributten "utilgængelig" for C- og C++-sprogene (f.eks. kan du markere funktioner, der vil resultere i en fejl, når de bruges), samt tilføjet understøttelse af "#elifdef" og "#elifndef" forbehandlingsdirektiverne for C- og C++-sprogene.

Det bemærkes også, at "-Wbidi-chars" flag for at advare, hvis UTF-8-tegn misbruges, ændring af den tovejs tekstvisningsrækkefølge samt "-Warray-compare"-flaget for at udsende en advarsel, når du forsøger at sammenligne to operander, der refererer til arrays.

Derudover er iImplementering af OpenMP 5.0 og 5.1 standarder (Open Multi-Processing), som definerer API'er og metoder til anvendelse af parallelle programmeringsmetoder på multicore og hybrid (CPU + GPU / DSP) systemer med delt hukommelse og vektoriseringsenheder (SIMD), blev videreført.

Også den forbedret implementering af OpenACC 2.6 parallel programmeringsspecifikation, at definere midlerne til at aflaste operationer på GPU'er og specialiserede processorer såsom NVIDIA PTX; og tilføje understøttelse af Intel AVX512-FP16 udvidede instruktioner og _Float16 typen til x86 kodegenererings backend.

Fortran front-end giver fuld support til TS 29113 specifikationen, som beskriver mulighederne for at sikre portabilitet mellem Fortran og C kode.

Forældet understøttelse af "STABS" debugging information storage formatet oprettet i 1980'erne.

Tilføjet understøttelse af __builtin_shufflevector(vec1, vec2, index1, index2, …) udvidelsen tidligere tilføjet til Clang, som giver et enkelt opkald til at udføre almindelige vektor-shuffle- og shuffle-operationer.

Når du bruger "-O2" optimeringsniveauet, er vektorisering aktiveret som standard (tilstandene -ftree-vectorize og -fvect-cost-model=very-cheap er aktiveret). Den "meget billige" model tillader kun vektorisering, hvis vektorkode fuldstændigt kan erstatte vektoriserbar skalarkode.

Tilføjet "-ftrivial-auto-var-init" tilstand at aktivere eksplicit variabel initialisering på stakken for at spore problemer og blokere sårbarheder forbundet med brugen af ​​ikke-initialiserede variabler.

Tilføjet implementering af C-funktioner indbygget i compileren (Intrinsics) til atombelastning og datalagring i hukommelsen, baseret på brugen af ​​udvidede ARM-instruktioner (ls64). Tilføjet understøttelse for at fremskynde memcpy, memmove og memset funktioner ved hjælp af ARM mopoption-udvidelsen.

Tilføjet en ny verifikationstilstand "-fsanitize=shadow-call-stack" ( ShadowCallStack ), som i øjeblikket kun er tilgængelig for AArch64-arkitekturen og fungerer ved kompilering af kode med "-fixed-r18" muligheden. Tilstanden giver beskyttelse mod omskrivning af funktionens returadresse i tilfælde af et stackbufferoverløb. Essensen af ​​beskyttelsen er at gemme returadressen i en separat "skygge"-stabel efter overførsel af kontrol til funktionen og at hente denne adresse, inden funktionen forlades.

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


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.