3. maijā notika GCC devītās versijas pirmā publiskā izlaišana: GCC 9.1.
Tajā ir daudz būtisku uzlabojumu un papildinājumu salīdzinājumā ar astoto
versija.
Vispārīgas izmaiņas
Iespējas
- Komandas, kas pieņem izmēru, tagad atbalsta 64 bitu vērtības un sufiksus, lai norādītu izmēru;
- Pievienota opcija -flive-lāpīšana,lai kontrolētu optimizācijas, kas potenciāli var kaitēt dinamiskai koda aizstāšanai;
- Pievienota opcija --completion, lai atbalstītu automātisko pabeigšanu komandu čaulā;
- Kompilatora diagnostikā tagad ir iekļauti rindu numuri (-fno-diagnostics-show-line-numbers) Un
ierakstiet informāciju (fno-diagnostics-show-labels); - Pievienota opcija -fdiagnostics-format=json izvadīt diagnostiku JSON formātā;
- Izlīdzinājuma norādīšanas opcijas (-falign-funkcijas, piemēram), tagad var pieņemt pāris līdzināšanas opcijas;
- Pievienotas failu saraksta filtrēšanas opcijas (-fprofile-filtrs-faili, -fprofile-izslēgt-faili), kuras instrumentē profilētājs;
- AddressSanitizer tagad izmanto kompaktāku līdzinājumu, lai notvertu nederīgas piekļuves steka mainīgajiem;
- Daudzi izvades uzlabojumi -fopt-info;
- Pievienota opcija -fsave-optimization-record optimizācijas atskaiti saglabāt failā;
- Pievienota opcija -fipa-steka-līdzināšana и -Fipa-reference-addressable.
Jaunas iebūvētās funkcijas
Jauns atribūts
Cits
Daudzi kodu ģenerēšanas uzlabojumi, kas saistīti ar:
- slēdžu konstrukciju ģenerēšana;
- starpprocedūru optimizācija;
- optimizācija, pamatojoties uz profilēšanas informāciju;
- optimizācija montāžas stadijā (LTO);
Arī gcov iekšējais formāts tagad ir JSON un jaunā opcija --izmantojiet karstuma krāsas ietver koda līniju krāsošanu, pamatojoties uz to lietošanas biežumu.
Valodas
Īstenošanas kvalitāte un pilnīgums OpenACC valodas C, C++ un Fortran turpina uzlaboties.
C līdzīgas valodas
- Ir ieviests daļējs OpenMP 5.0 atbalsts;
- Pievienota funkcija __builtin_convertvector;
- Pievienots brīdinājums -Sapakotā biedra vatīte;
- Vairāku esošo brīdinājumu uzlabojumi;
- Kļūdas teksts, makrom nododot nepareizu argumentu skaitu, tagad ietver paša makro deklarāciju;
- Uzlabojumi drukas kļūdu labošanas ieteikumiem.
C
- Atbalstiet _Static_assert ar vienu argumentu -std=c2x (nākotnes C standarts);
- Jauns brīdinājums -Absolūtā vērtība, kas uztver nepareizu argumenta veidu tādām funkcijām kā abs().
C + +
- Jauni brīdinājumi: -Novecojis-kopija,
- Winit-list mūža garumā,
-Nepatīkama kustība,
-Wpessimizing-pārvietoties,
-Wclass konversija; - Notiek darbs, lai ieviestu jaunas funkcijas no nākotnes standarta C++2a;
- Tagad frontend glabā precīzāku informāciju par vairākiem pirmkoda elementiem, kas ļauj parādīt detalizētāku informāciju diagnostikā;
- Uzlabota diagnostika pārslogotām funkcijām, binārajiem operatoriem, funkciju izsaukumiem un formāta virknēm;
- Pievienoti automātiskie labojumi, ko atbalsta dažas izstrādes vides attiecībā uz vairākām populārām kļūdām (trūkst iekavas, nosaukumvietas, drukas kļūdas utt.).
libstdc++
- C++17 ieviešana vairs nav eksperimentāla;
- Pievienoti paralēli algoritmi, , , A vairs nav nepieciešams -lstdc++fs;
- Uzlabots eksperimentālais atbalsts C++2a ( , , std::bind_front utt.);
- Atbalsts tādu failu straumju atvēršanai operētājsistēmā Windows, kuru ceļi satur rakstzīmes bez rakstzīmēm;
- Sākotnējais atbalsts operētājsistēmā Windows;
- Sākotnējais Networking TS atbalsts.
D
D valodas versija 2.076 ir iekļauta GCC.
Fortran
- Pilns asinhronās I/O atbalsts;
- Ieviests BACK arguments MINLOC un MAXLOC;
- Ieviestas FINDLOC un IS_CONTIGOUS funkcijas;
- Ir ieviesta sintakse piekļuvei komplekso skaitļu komponentiem: c%re un c%im;
- Ieviesta sintakse str%len un a%kind;
- Īstenoti C deskriptori un ISO_Fortran_binding.h galvene;
- Atvieglinātas prasības funkciju MAX un MIN rezultātam, ja viens no argumentiem ir NaN;
- Pievienota opcija -fdec-include;
- Pievienota direktīva BUILTIN.
libgccjit
- Pievienota funkcija gcc_jit_context_add_driver_option.
Cits
Daudzas arhitektūras un operētājsistēmas izmaiņas.
Avots: linux.org.ru