Më 3 maj, u zhvillua publikimi i parë publik i versionit të nëntë të GCC: GCC 9.1.
Ai përmban shumë përmirësime dhe shtesa domethënëse në krahasim me të tetën
version.
Ndryshimet e përgjithshme
Options
- Komandat që pranojnë madhësinë tani mbështesin vlerat dhe prapashtesat 64-bit për të specifikuar madhësinë;
- Opsioni i shtuar -flive-patching, për të kontrolluar optimizimet që janë potencialisht shkatërruese për zëvendësimin dinamik të kodit;
- U shtua opsioni --completion për të mbështetur plotësimin automatik në guaskën e komandës;
- Diagnostifikimi i përpiluesit tani përfshin numrat e linjave (-fno-diagnostics-trego-linja-numrat) Dhe
lloj informacioni (fno-diagnostics-show-labels); - Opsioni i shtuar -fdiagnostics-format=json për të nxjerrë diagnostifikimin në formatin JSON;
- Opsionet për përcaktimin e shtrirjes (-falign-funksionet, për shembull) tani mund të pranojë disa opsione të shtrirjes;
- Opsione të shtuara për filtrimin e listës së skedarëve (-fprofile-filter-files, -fprofile-exclude-files), të cilat instrumentohen nga profiluesi;
- AddressSanitizer tani përdor shtrirje më kompakte për të kapur aksese të pavlefshme në variablat në pirg;
- Përmirësime të shumta të prodhimit -fopt-info;
- Opsioni i shtuar -fsave-optimization-record për të ruajtur raportin e optimizimit në një skedar;
- Opsioni i shtuar -fipa-stack-rradhitje и -fipa-referencë-i adresueshëm.
Karakteristika të reja të integruara
Atribut i ri
Tjetër
Përmirësime të shumta të gjenerimit të kodit në lidhje me:
- gjenerimi i konstruksioneve të ndërprerësve;
- optimizimet ndërprocedurale;
- optimizimi i bazuar në informacionin e profilizimit;
- optimizimi në fazën e montimit (LTO);
Gjithashtu formati i brendshëm i gcov tani është JSON dhe opsioni i ri --përdorim-nxehtësi-ngjyra përfshin ngjyrosjen e linjave të kodit bazuar në sa shpesh ato përdoren.
Gjuhë
Cilësia dhe plotësia e zbatimit OpenACC gjuhët C, C++ dhe Fortran vazhdojnë të përmirësohen.
gjuhë të ngjashme me C
- Është zbatuar mbështetje e pjesshme për OpenMP 5.0;
- Funksioni i shtuar __ndërtuar_konvertues;
- Paralajmërim i shtuar -Anëtari i paketuar;
- Përmirësime në një numër paralajmërimesh ekzistuese;
- Teksti i gabimit kur kalon numrin e gabuar të argumenteve në një makro tani përfshin deklarimin e vetë makros;
- Përmirësime në sugjerimet për korrigjimin e gabimeve shkrimore.
C
- Mbështet _Static_assert me një argument për -std=c2x (standardi C i ardhshëm);
- Paralajmërim i ri -Vlera-absolute, i cili kap llojin e gabuar të argumentit për funksione si abs().
C + +
- Paralajmërime të reja: -E pavlefshme-kopje,
-Winit-list-jete,
-Lëvizje e keqe,
-Pezimizues-lëviz,
-Klasi-konvertim; - Po punohet për zbatimin e veçorive të reja nga standardi i ardhshëm C++2a;
- Frontend tani ruan informacion më të saktë për një numër elementësh të kodit burimor, gjë që ju lejon të shfaqni informacion më të detajuar në diagnostikim;
- Diagnostifikimi i përmirësuar për funksionet e mbingarkuara, operatorët binare, thirrjet e funksioneve dhe vargjet e formatimit;
- Rregullime automatike të shtuara të mbështetura nga disa mjedise zhvillimi për një numër gabimesh të njohura (kllapa që mungojnë, hapësira emrash, gabime shkrimi, etj.).
libstdc++
- Zbatimi i C++17 nuk është më eksperimental;
- Algoritme paralele të shtuara, , , A nuk kërkon më -lstdc++fs;
- Mbështetje e përmirësuar eksperimentale për C++2a ( , , std::bind_front, etj.);
- Mbështetje për hapjen e transmetimeve të skedarëve në Windows, shtigjet e të cilave përmbajnë karaktere jo char;
- Mbështetja fillestare në Windows;
- Mbështetje fillestare për Networking TS.
D
Versioni 2.076 i gjuhës D është përfshirë në GCC.
Fortran
- Mbështetje e plotë për I/O asinkrone;
- Argumenti BACK i zbatuar për MINLOC dhe MAXLOC;
- Funksionet e implementuara FINDLOC dhe IS_CONTIGOUS;
- Është zbatuar sintaksa për qasjen në komponentët e numrave kompleksë: c%re dhe c%im;
- Sintaksa e implementuar str%len dhe a% kind;
- Implementuar përshkruesit C dhe kokën ISO_Fortran_binding.h;
- Kërkesa të relaksuara për rezultatin e funksioneve MAX dhe MIN kur një nga argumentet është NaN;
- Opsioni i shtuar -fdec-përfshi;
- U shtua direktiva TË NDËRTUAR.
libgccjit
- Funksioni i shtuar gcc_jit_context_add_driver_option.
Tjetër
Shumë ndryshime specifike për arkitekturën dhe sistemin operativ.
Burimi: linux.org.ru