La 3-an de majo okazis la unua publika eldono de la naŭa versio de GCC: GCC 9.1.
Ĝi enhavas multajn signifajn plibonigojn kaj aldonojn kompare kun la oka
versio.
Ĝeneralaj ŝanĝoj
Opcioj
- Komandoj, kiuj akceptas grandecon, nun subtenas 64-bitajn valorojn kaj sufiksojn por specifi grandecon;
- Aldonita opcio -flive-fliki,por kontroli optimumigojn kiuj estas eble detruaj al dinamika,koda anstataŭigo;
- Aldonita --completion opcio por subteni aŭtomatan kompletigo en la komanda ŝelo;
- La diagnozoj de la kompililo nun inkluzivas liniajn numerojn (-fno-diagnozo-montri-liniajn-numerojn) kaj
tajpi informon (fno-diagnozo-montri-etikedoj); - Aldonita opcio -fdiagnostics-format=json eligi diagnozojn en formato JSON;
- Opcioj por specifi vicigon (-falign-funkcioj, ekzemple) nun povas akcepti kelkajn alineajn opciojn;
- Aldonitaj opcioj por filtri la liston de dosieroj (-fprofile-filter-dosieroj, -fprofile-exclude-dosieroj), kiuj estas instrumentitaj de la profililo;
- AddressSanitizer nun uzas pli kompaktan vicigon por kapti nevalidajn alirojn al variabloj sur la stako;
- Multaj eligo-plibonigoj -fopt-info;
- Aldonita opcio -fsave-optimumigo-registro konservi la optimumigan raporton al dosiero;
- Aldonita opcio -fipa-stack-alignment и -fipa-referenco-adresebla.
Novaj enkonstruitaj funkcioj
- __enkonstruita_atendi_kun_probablo;
- __konstruita_havas_atributon;
- __enkonstruita_konjekta_sekura_valoro.
Nova atributo
Aliaj
Multaj kodogeneraciaj plibonigoj rilataj al:
- generacio de ŝaltilkonstruaĵoj;
- inter-proceduraj optimumigoj;
- optimumigo bazita sur profilaj informoj;
- optimumigo ĉe la kunvenstadio (LTO);
Ankaŭ la interna formato de gcov nun estas JSON, kaj la nova opcio --use-hotness-colors implikas kolorliniojn de kodo surbaze de kiom ofte ili estas uzitaj.
Lingvoj
Kvalito kaj kompleteco de efektivigo OpenACC la lingvoj C, C++ kaj Fortran daŭre pliboniĝas.
C-similaj lingvoj
- Parta subteno por OpenMP 5.0 estis efektivigita;
- Aldonita funkcio __enkonstruita_konvertvektoro;
- Aldonita averto -Vadreso-de-pakita-membro;
- Plibonigoj al kelkaj ekzistantaj avertoj;
- La erarteksto pasinte la malĝustan nombron da argumentoj al makroo nun inkluzivas la deklaron de la makroo mem;
- Plibonigoj al tajperkorektaj sugestoj.
C
- Subtenu _Static_assert kun unu argumento por -std=c2x (estonta C-normo);
- Nova averto -Wabsoluta-valoro, kiu kaptas la malĝustan argumentan tipon por funkcioj kiel abs().
C ++
- Novaj avertoj: -Wmalrekomendita-kopio,
-Winit-list-dumviva,
-Wredundant-movo,
-Wpesimiganta-movo,
-Wklaso-konverto; - Laboras efektivigi novajn funkciojn de la estonta normo C++ 2a;
- La fasado nun konservas pli precizajn informojn pri kelkaj fontkodaj elementoj, kio ebligas al vi montri pli detalajn informojn en diagnozo;
- Plibonigita diagnozo por troŝarĝitaj funkcioj, binaraj funkciigistoj, funkciovokoj kaj formataj ĉenoj;
- Aldonitaj aŭtomataj korektoj subtenataj de iuj evolumedioj por kelkaj popularaj eraroj (mankas krampoj, nomspacoj, tajperaroj, ktp.).
libstdc++
- La efektivigo de C++17 ne plu estas eksperimenta;
- Aldonitaj paralelaj algoritmoj, , , A ne plu postulas -lstdc++fs;
- Plibonigita eksperimenta subteno por C++2a ( , , std::bind_front, ktp.);
- Subteno por malfermi dosierfluojn en Vindozo, kies vojoj enhavas ne-karakterajn signojn;
- Komenca subteno sur Vindozo;
- Komenca subteno por Networking TS.
D
D-lingva versio 2.076 estas inkluzivita en GCC.
Fortran
- Plena subteno por nesinkrona I/O;
- Efektivigita BACK argumento por MINLOC kaj MAXLOC;
- Efektivigitaj funkcioj FINDLOC kaj IS_CONTIGOUS;
- La sintakso por aliri la komponantojn de kompleksaj nombroj estis efektivigita: c%re kaj c%im;
- Efektivigita sintakso str%len kaj a%kind;
- Efektivigitaj C-priskribiloj kaj ISO_Fortran_binding.h-kapo;
- Malstreĉitaj postuloj por la rezulto de la funkcioj MAX kaj MIN kiam unu el la argumentoj estas NaN;
- Aldonita opcio -fdec-inkluzivi;
- Direktivo aldonita KONSTRUIS.
libgccjit
- Aldonita funkcio gcc_jit_context_add_driver_option.
Aliaj
Multaj arkitekturo- kaj OS-specifaj ŝanĝoj.
fonto: linux.org.ru