Gegužės 3 d. įvyko pirmasis viešas devintosios GCC versijos išleidimas: GCC 9.1.
Jame yra daug reikšmingų patobulinimų ir papildymų, palyginti su aštuntuoju
версией.
Bendrieji pokyčiai
Galimybės
- Komandos, kurios priima dydį, dabar palaiko 64 bitų reikšmes ir priesagas dydžiui nurodyti;
- Pridėta parinktis -Flive-patching,kontroliuoti optimizavimą, kuris potencialiai kenkia dinaminiam kodo pakeitimui;
- Pridėta --completion parinktis, skirta palaikyti automatinį užbaigimą komandų apvalkale;
- Kompiliatoriaus diagnostika dabar apima eilučių numerius (-fno-diagnostika-show-line-numbers) Ir
įveskite informaciją (fno-diagnostics-show-labels); - Pridėta parinktis -fdiagnostics-format=json išvesti diagnostiką JSON formatu;
- Lygiavimo nustatymo parinktys (-falign-funkcijos, pavyzdžiui), dabar gali priimti keletą lygiavimo parinkčių;
- Pridėtos failų sąrašo filtravimo parinktys (-fprofilis-filtras-failai, -fprofile-exclude-failai), kuriuos įtaiso profiliuotojas;
- AddressSanitizer dabar naudoja kompaktiškesnį lygiavimą, kad gautų netinkamas prieigas prie dėklo kintamųjų;
- Daugybė išvesties patobulinimų -fopt-info;
- Pridėta parinktis -fsave-optimization-record išsaugoti optimizavimo ataskaitą į failą;
- Pridėta parinktis -fipa-stack-lygiavimas и -Fipa-nuoroda-adresuojamas.
Naujos įmontuotos funkcijos
Naujas atributas
Kitas
Daugybė kodo generavimo patobulinimų, susijusių su:
- jungiklių konstrukcijų generavimas;
- procedūrų optimizavimas;
- optimizavimas remiantis profiliavimo informacija;
- optimizavimas surinkimo etape (LTO);
Taip pat gcov vidinis formatas dabar yra JSON ir nauja parinktis --naudokite karštumo spalvas apima kodo eilučių spalvinimą pagal tai, kaip dažnai jos naudojamos.
Kalbos
Įgyvendinimo kokybė ir išsamumas OpenACC C, C++ ir Fortran kalbos toliau tobulėja.
C tipo kalbos
- Įdiegtas dalinis OpenMP 5.0 palaikymas;
- Pridėta funkcija __builtin_convertvector;
- Pridėtas įspėjimas -Supakuoto nario vata;
- Daugelio esamų įspėjimų patobulinimai;
- Klaidos tekstas, kai makrokomandai perduodamas netinkamas argumentų skaičius, dabar apima pačios makrokomandos deklaraciją;
- Rašybos klaidų taisymo pasiūlymų patobulinimai.
C
- Palaikykite _Static_assert su vienu argumentu -std=c2x (būsimasis C standartas);
- Naujas įspėjimas -Absoliutinė vertė, kuris sugauna netinkamą argumentų tipą tokioms funkcijoms kaip abs().
C + +
- Nauji įspėjimai: -Nebenaudojama kopija,
- Winit-list - visą gyvenimą,
-Nenaudingas judesys,
-Pesimizing-judėti,
-Wclass konversija; - Vykdomas darbas siekiant įdiegti naujas būsimo standarto funkcijas C++2a;
- Dabar priekinėje programoje saugoma tikslesnė informacija apie daugybę šaltinio kodo elementų, o tai leidžia rodyti išsamesnę diagnostikos informaciją;
- Patobulinta perkrautų funkcijų, dvejetainių operatorių, funkcijų iškvietimų ir formatų eilučių diagnostika;
- Pridėtos automatinės kai kurių kūrimo aplinkų palaikomos daugelio populiarių klaidų pataisos (trūkstamų skliaustų, vardų erdvių, rašybos klaidų ir kt.).
libstdc++
- C++17 diegimas nebėra eksperimentinis;
- Pridėta lygiagrečių algoritmų, , , A nebereikia -lstdc++fs;
- Patobulintas eksperimentinis C++2a palaikymas ( , , std::bind_front ir kt.);
- Palaikymas atidarant failų srautus sistemoje Windows, kurių keliuose yra simbolių be simbolių;
- Pradinė parama „Windows“ sistemoje;
- Pradinis Networking TS palaikymas.
D
D kalbos versija 2.076 įtraukta į GCC.
Fortranas
- Visiškas asinchroninio I/O palaikymas;
- Įdiegtas MINLOC ir MAXLOC argumentas BACK;
- Įdiegtos FINDLOC ir IS_CONTIGOUS funkcijos;
- Įdiegta kompleksinių skaičių komponentų prieigos sintaksė: c%re ir c%im;
- Įdiegta sintaksė str%len ir a%kind;
- Įdiegti C deskriptoriai ir ISO_Fortran_binding.h antraštė;
- Sušvelninti MAX ir MIN funkcijų rezultato reikalavimai, kai vienas iš argumentų yra NaN;
- Pridėta parinktis -fdec-include;
- Pridėta direktyva PASTATYMAS.
libgccjit
- Pridėta funkcija gcc_jit_context_add_driver_option.
Kitas
Daugelis architektūros ir OS pakeitimų.
Šaltinis: linux.org.ru