GCC 12.1 on juba välja antud, tea selle uudiseid ja 35. aastapäeva

GNU GCC logo

Käivitamine kompilaatori uus versioon GCC (GNU kompilaatorite kogu) 12.1 oli juba välja antud ja nagu kõik GCC suuremad väljalased, toob see väljalase palju täiendusi, täiustusi, veaparandusi ja uusi funktsioone, lisaks tähistab projekt sel kuul (23. mail) 35 aasta möödumist esimese versiooni loomisest.

GCC 12 on juba Fedora 36 süsteemikompilaator ja GCC 12 on saadaval ka Red Hat Enterprise Linuxis Red Hat Developer Toolsetis (versioon 7) või Red Hat GCC Toolsetis (versioonid 8 ja 9).

GCC arendajad teatavad uhkusega GCC järjekordsest suurest versioonist 12.1.

Sel aastal tähistame GCC esimese beetaversiooni 35. aastapäeva
Ja sel kuul tähistame 35 aasta möödumist GCC 1.0 väljalaskmisest!

See väljalase kaotab STABS-i silumisvormingu ja
tutvustab CTF-i silumisvormingu tuge [1]. C ja C++
liidesed arenevad jätkuvalt koos funktsioonide laiendatud toega
tulevastes C2X ja C++23 standardites ning C++ standardteegis
parandab C++20 ja C++23 eksperimentaalsete osade tuge.
Fortrani liides ühildub nüüd täielikult TS 29113-ga C-ga koostalitlusvõime tagamiseks.

Mis on GCC 12.1-s uut?

Selles uues versioonis Mitmed ettepanekud on ellu viidud, näiteks keelte puhul C ja C++, lisatud sisseehitatud funktsioon __buildin_dynamic_object_size objekti suuruse määramiseks, mis ühildub Clangi sarnase funktsiooniga.

Lisatud atribuudi "unavailable" tugi C- ja C++ keelte jaoks (näiteks saate märkida funktsioone, mille kasutamisel tekib tõrge), samuti on lisatud C- ja C++-keelte eeltöötlusdirektiivide "#elifdef" ja "#elifndef" tugi.

Samuti märgitakse, et Lipp "-Wbidi-chars" hoiatab, kui UTF-8 märke väärkasutatakse, muutes kahesuunalise teksti kuvamise järjekorda ja lipukest "-Warray-võrdle", et anda hoiatus, kui proovite võrrelda kahte massiividele viitavat operandi.

Lisaks on iOpenMP 5.0 ja 5.1 standardite juurutamine Jätkati (Open Multi-Processing), mis määratleb API-d ja meetodid paralleelse programmeerimise meetodite rakendamiseks mitmetuumalistes ja hübriidsüsteemides (CPU + GPU / DSP) ühismälu ja vektoriseerimisüksustega (SIMD).

Samuti paralleelse programmeerimise spetsifikatsiooni OpenACC 2.6 täiustatud rakendamine, GPU-de ja spetsiaalsete protsessorite (nt NVIDIA PTX) toimingute mahalaadimise vahendite määratlemine ning Inteli AVX512-FP16 laiendatud juhiste ja tüübi _Float16 toe lisamine x86 koodi genereerimise taustaprogrammi.

Fortrani esiosa toetab täielikult TS 29113 spetsifikatsiooni, mis kirjeldab võimalusi kaasaskantavuse tagamiseks Fortrani ja C koodi vahel.

Aegunud tugi 1980. aastatel loodud silumisinfo salvestusvormingule "STABS".

Lisatud on tugi laiendusele __builtin_shufflevector(vec1, vec2, index1, index2, …), mis on varem Clangile lisatud, mis pakub ühe kõne tavaliste vektorite segamise ja segamise toimingute tegemiseks.

Optimeerimistaseme "-O2" kasutamisel on vektoriseerimine vaikimisi lubatud (režiimid -ftree-vectorize ja -fvect-cost-model=very-cheap on lubatud). "Väga odav" mudel võimaldab vektoriseerimist ainult siis, kui vektorkood suudab täielikult asendada vektoriseeritava skalaarkoodi.

Lisatud "-ftrivial-auto-var-init" režiim et võimaldada muutujate selgesõnalist lähtestamist virnas, et leida üles probleemid ja blokeerida initsialiseerimata muutujate kasutamisega seotud haavatavused.

Lisas kompilaatorisse sisseehitatud C-funktsioonide rakendamine (Intrinsics) aatomi laadimiseks ja andmete mällu salvestamiseks, mis põhinevad laiendatud ARM-käskude kasutamisel (ls64). Lisatud tugi funktsioonide memcpy, memmove ja memset kiirendamiseks, kasutades laiendust ARM mopooption.

Lisatud uus kinnitusrežiim "-fsanitize=shadow-call-stack" ( ShadowCallStack), mis on hetkel saadaval ainult AArch64 arhitektuuri jaoks ja töötab koodi koostamisel valikuga "-fixed-r18". Režiim pakub kaitset funktsiooni tagastusaadressi ümberkirjutamise eest pinupuhvri ületäitumise korral. Kaitsmise olemus seisneb selles, et pärast funktsioonile juhtimise üleandmist salvestatakse tagastusaadress eraldi "varju" virna ja hankitakse see aadress enne funktsioonist väljumist.

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


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.