Programiranje

Prevajalniki serije GCC 10 prispejo v veliko nadgradnjo

GCC (GNU Compiler Collection) 10.1, glavna izdaja platforme, je bila objavljena 7. maja 2020 s poudarki, vključno s sposobnostmi C ++ 20 in jezikovno podporo C2X. C2X je naslednja velika revizija jezika C, ki naj bi se začela leta 2022.

Opombe ob izdaji za GCC 10 kažejo, da je bila implementirana množica funkcij C ++ 20, vključno z dovoljevanjem vstavljanja v vrstici v funkcijah constexpr in razširitvijo strukturiranih vezi. Tudi za C ++ 20 GCC 10 omogoča pretvorbe v nize neznanih vezav, omogoča trivialno privzeto inicializacijo v kontekstih constexpr, dodaja constinit ključno besedo in zastarelohlapljivo ključna beseda.

Za C2X, prihajajočo revizijo standarda ISO C, je sintaksa podprta več funkcij-std = c2x in -std + gnu2x. Med temi so strftime preverjanje formata, ki podpira % OB in % Ob formati in konstante znakov UTF-8 z uporabo sintakse u8 ''.

GCC, ki obstaja že več kot 33 let, vključuje čelne konce in knjižnice za C, C ++, Fortran, Ada, Go in D. Bil je objavljen o prenosu na GCC 10. Druge nove zmogljivosti v GCC 10.1 vključujejo

  • Dodane so vgrajene funkcije, vključno z a has_builtin operater predprocesorja, s katerim lahko poizvedujete po podpori za vgrajene funkcije, ki jih nudijo GCC in drugi prevajalniki, ki ga podpirajo.
  • Dodane so ukazne možnosti. Tej vključujejo-falokacija-dce, za odstranitev nepotrebnih parov novo in izbriši operaterji in -fanalizator, da omogočite nov prehod statične analize in z njim povezana opozorila. Za zadnjo možnost je treba šteti, da je v poskusni fazi.
  • Izvedene so bile izboljšave medprocesne optimizacije. Sem spada ponovna izvedba medprocesnega skalarnega nadomeščanja agregatov (IPA-SRA), ki je bil ponovno uveden za delovanje v času povezave. IPA-SRA lahko zdaj tudi odstrani računalništvo in vrne neuporabljene vrnjene vrednosti.
  • Izboljšave optimizacije časa povezave vključujejo novo binarno datoteko ito-dump. Program lahko izpiše različne informacije o LTO bajt datoteka predmeta.
  • Izvedene so bile izboljšave optimizacije, ki temeljijo na profilu, vključno z izboljšanjem vzdrževanja profila med prevajanjem in vročimi / hladnimi particijami.
  • Za družino C je dostop funkcijo in tip Atribut je bil dodan, da opiše, kako funkcija dostopa do predmetov, ki ji jih posreduje kazalec ali sklic, in da take argumente poveže s celoštevilčnimi argumenti, ki označujejo velikost predmeta. Atribut se uporablja za odkrivanje neveljavnih dostopov s strani uporabniško določenih funkcij. Obstajajo tudi nova opozorila in izboljšave obstoječih opozoril. Eno opozorilo, -Mnoge dolžine-meje, opozarja na dostop do elementov nizov dolge dolžine, ki se lahko prekrivajo z drugimi člani istega predmeta.
  • Odpravljena je bila nezdružljivost ABI med C ++ 14 in C ++ 17. Pri nekaterih ciljih bi bil razred z ničelnim podobjektom napačno poslan, če bi bil preveden kot C ++ 17 ali C ++ 20.
$config[zx-auto] not found$config[zx-overlay] not found