Më 3 Maj, u bë publik versioni i nëntë i GCC: GCC 9.1.
Ai përmban shumë përmirësime dhe shtesa të rëndësishme në krahasim me versionin e tetë.
versioni.
Ndryshimet e përgjithshme
Opsionet
- Komandat që pranojnë madhësinë tani mbështesin vlerat 64-bit dhe sufikset për të caktuar madhësinë;
- ĂshtĂ« shtuar opsioni -flive-patching, pĂ«r menaxhimin e optimizimeve qĂ« potencialisht janĂ« shkatĂ«rruese pĂ«r zĂ«vendĂ«simin dinamik tĂ« kodit;
- Opsioni i ri âcompletion Ă«shtĂ« shtuar pĂ«r tĂ« mbĂ«shtetur auto-dopllim nĂ« shell-in e komandave;
- Diagnosticat e kompilatorit tani përfshijnë numrat e rreshtave (-fno-diagnostics-show-line-numbers) dhe
informacione pĂ«r tipet (fno-diagnostics-show-labels); - ĂshtĂ« shtuar opsioni -fdiagnostics-format=json pĂ«r tĂ« dalĂ« diagnosticat nĂ« formatin JSON;
- Opsionet për të caktuar përputhjen (-falign-functions, për shembull) tani mund të pranojnë një çift variantesh përputhjeje;
- Opsionet për filtrimin e listës së skedarëve (-fprofile-filter-files, -fprofile-exclude-files) që i nënshtrohen instrumentacionit nga profilizuesi janë shtuar;
- AddressSanitizer tani përdor përputhje më kompakte për të kapur qasjet e pasakta në variablat në stack;
- Përmirësime të shumta në daljen e -fopt-info;
- ĂshtĂ« shtuar opsioni -fsave-optimization-record pĂ«r tĂ« ruajtur raportin e optimizimeve nĂ« njĂ« skedar;
- ĂshtĂ« shtuar opsioni -fipa-stack-alignment dhe -fipa-reference-addressable.
Funksionet e reja të ndërtuara
Atributi i ri
- copy.
Tjetër
Përmirësime të shumta në gjenerimin e kodit në lidhje me:
- gjenerimin e struktura switch;
- optimizations ndërprocedurale;
- optimizimin e bazuar në informacione të profilizimit;
- optimizimin në fazën e ndërtimit (LTO);
Po ashtu, formati i brendshĂ«m gcov tani Ă«shtĂ« JSON, dhe opsioni i ri âuse-hotness-colors pĂ«rfshin ngjyrimin e rreshtave tĂ« kodit nĂ« varĂ«si tĂ« frekuencĂ«s sĂ« pĂ«rdorimit tĂ« tyre.
Gjuhët
Cilësia dhe plotesia e zbatimit të OpenACC në gjuha C, C++, dhe Fortran vazhdojnë të përmirësohen.
Gjuhët C-podobne
- Mbështetje e pjesshme për OpenMP 5.0 është zbatuar;
- Shtuar funksionin __builtin_convertvector;
- Një paralajmërim i ri është shtuar -Waddress-of-packed-member;
- Përmirësime në një numër paralajmërimesh ekzistuese;
- Teksti i gabimit në kalimin e numrit të gabuar të argumenteve në makros tani përfshin shpalljen e vetë makros;
- Përmirësime në propozimet për korrigjimin e gabimeve.
C
- Mbështetje për _Static_assert me një argument për -std=c2x (standardi i ardhshëm C);
- Një paralajmërim i ri -Wabsolute-value, i cili kap tipin e gabuar të argumentit për funksione të tilla si abs().
C++
- Paralajmërime të reja: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Po punohet punë për implementimin e mundësive të reja nga standardi i ardhshëm C++ 2a;
- Frontend-i tani ruan informacione më të sakta për një sërë elementesh të kodit burimor, duke lejuar shfaqjen e informacionit më të detajuar në diagnostikime;
- Diagnostikimet janë përmirësuar për funksionet e mbivendosura, operatorët binarë, thirrjet e funksioneve dhe stringjet që caktuan format;
- Shtohen korrigjimet automatike të mbështetura nga disa mjedise zhvillimi për një sërë gabimesh të njohura (mungesat e kllapave, hapësirat e emrave, gabimet e shtypit etj.).
libstdc++
- Implementimi i C++17 nuk është më eksperimental;
- Shtohen algoritmet paralele, <execution>, <memory_resource>, dhe <filesystem> nuk kërkon më -lstdc++fs;
- Mbështetje e përmirësuar eksperimentale për C++ 2a (<bit>, <version>, std::bind_front etj.);
- Mbështetje për hapjen e rrjedhave të skedarëve në Windows, të cilat përmbajnë simbole që dalin jashtë char;
- Mbështetje fillestare për <filesystem> në Windows;
- Mbështetje fillestare për Networking TS.
D
Gjuha D versioni 2.076 është e përfshirë në GCC.
Fortran
- Mbështetje e plotë për hyrje/dalje asinkrone;
- Realizimi i argumentit BACK për MINLOC dhe MAXLOC;
- Realizohen funksionet FINDLOC dhe IS_CONTIGUOUS;
- Realizimi i sintaksës për qasjen në pjesët përbërëse të numrave kompleksë: c%re dhe c%im;
- Realizimi i sintaksës str%len dhe a%kind;
- Realizohen deskriptorët C dhe titulli ISO_Fortran_binding.h;
- Kërkesat për rezultatet e funksioneve MAX dhe MIN janë lehtësuar, kur një nga argumentet është NaN;
- ĂshtĂ« shtuar opsioni -fdec-include;
- Shtuar direkativa BUILTIN.
libgccjit
- Shtuar funksionin gcc_jit_context_add_driver_option.
Tjetër
Një sasi e madhe ndryshimesh specifike për arkitektura dhe OS.
Burimi: linux.org.ru

