3. mail toimus GCC üheksanda versiooni esimene avalik väljalase: GCC 9.1.
See sisaldab palju olulisi parandusi ja täiendusi võrreldes kaheksandaga
versioon.
Üldised muudatused
Valikud
- Suurust aktsepteerivad käsud toetavad nüüd 64-bitiseid väärtusi ja järelliiteid suuruse määramiseks;
- Lisatud valik -flive-lappimine, et juhtida optimeerimisi, mis võivad kahjustada dünaamilist koodi asendamist;
- Lisatud --completion automaatse lõpetamise toetamiseks käsu kestas;
- Kompilaatori diagnostika sisaldab nüüd ridade numbreid (-fno-diagnostika-show-line-numbers) Ja
sisestage teave (fno-diagnostika-show-labels); - Lisatud valik -fdiagnostics-format=json diagnostika väljastamiseks JSON-vormingus;
- Joonduse määramise valikud (-falign-funktsioonidnäiteks) saab nüüd nõustuda paari joondusvalikuga;
- Lisatud suvandid failide loendi filtreerimiseks (-fprofiil-filter-failid, -fprofile-välista-failid), mille instrumenteerib profiili koostaja;
- AddressSanitizer kasutab nüüd kompaktsemat joondust, et püüda kinni kehtetud juurdepääsud virna muutujatele;
- Arvukad väljundi täiustused -fopt-info;
- Lisatud valik -fsave-optimization-record optimeerimisaruande salvestamiseks faili;
- Lisatud valik -fipa-virna joondamine и -fipa-viite-aadresseeritav.
Uued sisseehitatud funktsioonid
Uus atribuut
muu
Arvukad koodi genereerimise täiustused, mis on seotud:
- lüliti konstruktsioonide genereerimine;
- protseduuridevahelised optimeerimised;
- optimeerimine profiiliteabe alusel;
- optimeerimine montaažifaasis (LTO);
Ka gcovi sisemine vorming on nüüd JSON ja uus valik --kasuta-kuumuse-värve hõlmab koodiridade värvimist nende kasutamise sageduse järgi.
Keeled
Teostuse kvaliteet ja täielikkus OpenACC keeled C, C++ ja Fortran paranevad jätkuvalt.
C-laadsed keeled
- Rakendatud on OpenMP 5.0 osaline tugi;
- Lisatud funktsioon __builtin_convertvector;
- Lisatud hoiatus -Waddress-of-packed-liikme;
- Mitmete olemasolevate hoiatuste täiustused;
- Vea tekst makrole vale arvu argumentide edastamisel sisaldab nüüd makro enda deklaratsiooni;
- Kirjavigade parandamise soovituste täiustused.
C
- Toetage _Static_assert ühe argumendiga -std=c2x (tulevane C standard);
- Uus hoiatus -Absoluutväärtus, mis püüab kinni vale argumenditüübi selliste funktsioonide jaoks nagu abs().
C + +
- Uued hoiatused: -Weprecated-copy,
- Winit-list-eluaeg,
- Üleliigne liikumine,
-Wpessimizing-liigutada,
-Wclass-konversioon; - Töö on käimas tulevase standardi uute funktsioonide juurutamiseks C++2a;
- Frontend salvestab nüüd täpsemat teavet mitme lähtekoodi elemendi kohta, mis võimaldab kuvada diagnostikas täpsemat teavet;
- Täiustatud diagnostika ülekoormatud funktsioonide, binaaroperaatorite, funktsioonikutsete ja vormingustringide jaoks;
- Lisatud automaatsed parandused, mida toetavad mõned arenduskeskkonnad, paljude populaarsete vigade jaoks (puuduvad sulud, nimeruumid, kirjavead jne).
libstdc++
- C++17 juurutamine ei ole enam eksperimentaalne;
- Lisatud paralleelsed algoritmid, , , A ei nõua enam -lstdc++fs;
- Täiustatud eksperimentaalne tugi C++2a jaoks ( , , std::bind_front jne);
- Tugi failivoogude avamiseks Windowsis, mille teed sisaldavad mittetähemärke;
- Esialgne tugi Windowsis;
- Võrgustiku TS esialgne tugi.
D
D-keeleversioon 2.076 sisaldub GCC-s.
Fortran
- Asünkroonse I/O täielik tugi;
- Rakendatud MINLOC ja MAXLOC argument BACK;
- Rakendatud FINDLOC ja IS_CONTIGOUS funktsioonid;
- Rakendatud on kompleksarvude komponentidele juurdepääsu süntaks: c%re ja c%im;
- Rakendatud süntaks str%len ja a%kind;
- Rakendatud C-deskriptorid ja ISO_Fortran_binding.h päis;
- Leebemad nõuded funktsioonide MAX ja MIN tulemusele, kui üks argumentidest on NaN;
- Lisatud valik -fdec-include;
- Direktiiv lisatud EHITATUD.
libgccjit
- Lisatud funktsioon gcc_jit_context_add_driver_option.
muu
Paljud arhitektuuri- ja OS-spetsiifilised muudatused.
Allikas: linux.org.ru