GCC 12.1 je već izašao, znajte njegove vijesti i njegovu 35. godišnjicu

GNU GCC logo

Pokretanje novu verziju kompajlera GCC (Zbirka GNU kompajlera) 12.1 je već objavljen i kao i sa svim glavnim izdanjima GCC-a, ovo izdanje će donijeti mnoge dodatke, poboljšanja, ispravke grešaka i nove funkcije, plus ovog mjeseca (23. maja), projekat će proslaviti 35 godina od formiranja prvog izdanja.

GCC 12 je već sistemski kompajler za Fedoru 36, a GCC 12 će takođe biti dostupan na Red Hat Enterprise Linux-u u Red Hat Developer Toolset-u (verzija 7) ili Red Hat GCC Toolset-u (verzije 8 i 9).

GCC programeri s ponosom najavljuju još jedno veliko izdanje GCC-a, 12.1.

Ove godine slavimo 35. godišnjicu prve beta verzije GCC-a
I ovog mjeseca ćemo proslaviti 35 godina od izlaska GCC 1.0!

Ovo izdanje ukida podršku za STABS debug format i
uvodi podršku za CTF format za otklanjanje grešaka [1]. C i C++
interfejsi nastavljaju da napreduju sa proširenom podrškom za funkcije
u nadolazećim standardima C2X i C++23 i standardnoj biblioteci C++
poboljšava podršku za eksperimentalne dijelove C++20 i C++23.
Fortran interfejs je sada potpuno usklađen sa TS 29113 za interoperabilnost sa C.

Šta je novo u GCC 12.1?

U ovoj novoj verziji Nekoliko prijedloga je implementirano, kao što je za jezike C i C++, dodano ugrađena funkcija __builtin_dynamic_object_size za određivanje veličine objekta, kompatibilan sa sličnom funkcijom Clang.

Dodano podrška za atribut "nedostupan" za jezike C i C++ (na primjer, možete označiti funkcije koje će rezultirati greškom kada se koriste), kao i dodatnu podršku za "#elifdef" i "#elifndef" direktive preprocesiranja za C i C++ jezike.

Napominje se i da je Oznaka "-Wbidi-chars" za upozorenje ako se UTF-8 znakovi zloupotrebljavaju, mijenjajući dvosmjerni redoslijed prikaza teksta, kao i oznaku "-Warray-compare" za izdavanje upozorenja kada pokušavate uporediti dva operanda koja se odnose na nizove.

Osim toga, iImplementacija OpenMP 5.0 i 5.1 standarda (Open Multi-Processing), koji definišu API-je i metode za primenu metoda paralelnog programiranja na višejezgarnim i hibridnim (CPU + GPU/DSP) sistemima sa deljenom memorijom i jedinicama vektorizacije (SIMD), nastavljen je.

Takođe poboljšana implementacija OpenACC 2.6 specifikacije paralelnog programiranja, definisanje sredstava za oslobađanje operacija na GPU-ovima i specijalizovanim procesorima kao što je NVIDIA PTX i dodavanje podrške za Intel AVX512-FP16 proširene instrukcije i tip _Float16 u pozadinu za generisanje koda x86.

Fortran front-end pruža punu podršku za TS 29113 specifikaciju, koja opisuje mogućnosti da se osigura prenosivost između Fortrana i C koda.

Zastarjela podrška za format skladištenja informacija za otklanjanje grešaka "STABS" kreiran 1980-ih.

Dodata podrška za ekstenziju __builtin_shufflevector(vec1, vec2, index1, index2, …) prethodno dodanu u Clang, koja pruža jedan poziv za izvođenje uobičajenih operacija nasumice i nasumice vektora.

Kada se koristi nivo optimizacije "-O2", vektorizacija je podrazumevano omogućena (omogućeni su režimi -ftree-vectorize i -fvect-cost-model=vrlo jeftini). "Vrlo jeftin" model dozvoljava vektorizaciju samo ako vektorski kod može u potpunosti zamijeniti skalarni kod koji se vektorizuje.

Dodan način rada "-ftrivial-auto-var-init". kako bi se omogućila eksplicitna inicijalizacija varijable na stogu kako bi se pronašle probleme i blokirale ranjivosti povezane s upotrebom neinicijaliziranih varijabli.

Dodano implementacija C funkcija ugrađenih u kompajler (Intrinsics) za atomsko učitavanje i skladištenje podataka u memoriji, na osnovu upotrebe proširenih ARM instrukcija (ls64). Dodata podrška za ubrzavanje funkcija memcpy, memmove i memset pomoću ekstenzije ARM mopoption.

Dodano novi način provjere "-fsanitize=shadow-call-stack" ( ShadowCallStack), koji je trenutno dostupan samo za arhitekturu AArch64 i radi pri kompajliranju koda sa opcijom "-fixed-r18". Režim pruža zaštitu od ponovnog pisanja povratne adrese funkcije u slučaju prekoračenja bafera steka. Suština zaštite je da se povratna adresa sačuva u zasebnom steku "senka" nakon prenosa kontrole na funkciju i da se ova adresa preuzme pre izlaska iz funkcije.

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


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.