GCC 12.1 er allerede utgitt, kjenn til nyhetene og 35-årsjubileet

GNU GCC-logo

Lanseringen av den nye versjonen av kompilatoren GCC (GNU Compiler Collection) 12.1 var allerede utgitt og som med alle større utgivelser av GCC, vil denne utgivelsen gi mange tillegg, forbedringer, feilrettinger og nye funksjoner, og denne måneden (23. mai) vil prosjektet feire 35 år siden dannelsen av den første utgivelsen.

GCC 12 er allerede systemkompilatoren for Fedora 36, ​​og GCC 12 vil også være tilgjengelig på Red Hat Enterprise Linux fra Red Hat Developer Toolset (versjon 7) eller Red Hat GCC Toolset (versjon 8 og 9).

GCC-utviklerne er stolte av å kunngjøre nok en stor utgivelse av GCC, 12.1.

I år feirer vi 35-årsjubileet for den første betaversjonen av GCC
Og denne måneden skal vi feire 35 år siden utgivelsen av GCC 1.0!

Denne utgivelsen dropper støtte for STABS-feilsøkingsformatet og
introduserer støtte for CTF-feilsøkingsformatet [1]. C og C++
grensesnitt fortsetter å utvikle seg med utvidet støtte for funksjoner
i de kommende C2X- og C++23-standardene og C++ Standard Library
forbedrer støtten for de eksperimentelle delene av C++20 og C++23.
Fortran-grensesnittet er nå fullt kompatibelt med TS 29113 for interoperabilitet med C.

Hva er nytt i GCC 12.1?

I denne nye versjonen Flere forslag er gjennomført, for eksempel for språk C og C++, lagt til en innebygd funksjon __builtin_dynamic_object_size for å bestemme størrelsen på et objekt, kompatibel med en lignende funksjon av Clang.

La til støtte for "utilgjengelig"-attributtet for C- og C++-språkene (for eksempel kan du merke funksjoner som vil resultere i en feil når de brukes), samt støtte for "#elifdef" og "#elifndef" forbehandlingsdirektiver for C- og C++-språkene.

Det bemerkes også at "-Wbidi-tegn"-flagg for å advare hvis UTF-8-tegn misbrukes, endre den toveis tekstvisningsrekkefølgen, samt "-Warray-compare"-flagget for å gi en advarsel når du prøver å sammenligne to operander som refererer til matriser.

I tillegg er iImplementering av OpenMP 5.0 og 5.1 standarder (Open Multi-Processing), som definerer APIer og metoder for å bruke parallelle programmeringsmetoder på multicore og hybrid (CPU + GPU / DSP) systemer med delt minne og vektoriseringsenheter (SIMD), ble videreført.

Også forbedret implementering av OpenACC 2.6 parallell programmeringsspesifikasjon, definere midlene for å laste ned operasjoner på GPUer og spesialiserte prosessorer som NVIDIA PTX; og legge til støtte for Intel AVX512-FP16 utvidede instruksjoner og _Float16-typen til x86-kodegenereringsbackend.

Fortran front-end gir full støtte for TS 29113-spesifikasjonen, som beskriver mulighetene for å sikre portabilitet mellom Fortran og C-kode.

Utdatert støtte for lagringsformatet "STABS" for feilsøkingsinformasjon opprettet på 1980-tallet.

Lagt til støtte for utvidelsen __builtin_shufflevector(vec1, vec2, index1, index2, …) som tidligere ble lagt til i Clang, som gir et enkelt anrop for å utføre vanlige vektor-shuffle- og shuffle-operasjoner.

Når du bruker optimaliseringsnivået "-O2", er vektorisering aktivert som standard (modusene -ftree-vectorize og -fvect-cost-model=very-cheap er aktivert). Den "veldig billige" modellen tillater vektorisering bare hvis vektorkode fullstendig kan erstatte vektoriserbar skalarkode.

Lagt til "-ftrivial-auto-var-init"-modus for å aktivere eksplisitt variabelinitialisering på stabelen for å spore opp problemer og blokkere sårbarheter knyttet til bruk av uinitialiserte variabler.

Lagt til implementering av C-funksjoner innebygd i kompilatoren (Intrinsics) for atombelastning og datalagring i minnet, basert på bruk av utvidede ARM-instruksjoner (ls64). Lagt til støtte for å øke hastigheten på memcpy, memmove og memset-funksjoner ved å bruke ARM mopoption-utvidelsen.

La til en ny bekreftelsesmodus "-fsanitize=shadow-call-stack" ( ShadowCallStack ), som for øyeblikket kun er tilgjengelig for AArch64-arkitekturen og fungerer ved kompilering av kode med alternativet "-fixed-r18". Modusen gir beskyttelse mot omskriving av funksjonens returadresse i tilfelle stackbufferoverflyt. Essensen av beskyttelsen er å lagre returadressen i en egen "skygge"-stabel etter overføring av kontroll til funksjonen og å hente denne adressen før funksjonen avsluttes.

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


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.