3. toukokuuta GCC:n yhdeksännen version ensimmäinen julkinen julkaisu: GCC 9.1.
Se sisältää monia merkittäviä parannuksia ja lisäyksiä kahdeksanteen verrattuna
versio.
Yleiset muutokset
Valinnat
- Komennot, jotka hyväksyvät koon, tukevat nyt 64-bittisiä arvoja ja jälkiliitteitä koon määrittämiseksi;
- Lisätty vaihtoehto -live-paikannuksen,ohjata optimointeja, jotka voivat olla haitallisia dynaamiselle,koodin korvaamiselle;
- Lisätty --completion-vaihtoehto tukemaan automaattista täydennystä komentotulkkiin;
- Kääntäjän diagnostiikka sisältää nyt rivinumerot (-fno-diagnostiikka-show-line-numbers) Ja
kirjoita tiedot (fno-diagnostics-show-labels); - Lisätty vaihtoehto -fdiagnostics-format=json tulostaa diagnostiikkaa JSON-muodossa;
- Tasauksen määrittelyvaihtoehdot (-falign-toiminnotesimerkiksi) voi nyt hyväksyä pari kohdistusvaihtoehtoa;
- Lisätty tiedostoluettelon suodatusasetukset (-fprofiili-suodatin-tiedostot, -fprofiili-poissulje-tiedostot), jotka ovat profiloijan instrumentoimia;
- AddressSanitizer käyttää nyt kompaktimpaa kohdistusta pinon muuttujien virheellisten käyttöoikeuksien havaitsemiseen;
- Lukuisia tehon parannuksia -fopt-info;
- Lisätty vaihtoehto -fsave-optimization-record optimointiraportin tallentaminen tiedostoon;
- Lisätty vaihtoehto -fipa-pinon kohdistus и -fipa-viite-osoitteellinen.
Uusia sisäänrakennettuja ominaisuuksia
Uusi attribuutti
Muut
Lukuisia koodin luomiseen liittyviä parannuksia:
- kytkinrakenteiden luominen;
- proseduurien väliset optimoinnit;
- profilointitietoihin perustuva optimointi;
- optimointi kokoonpanovaiheessa (LTO);
Myös gcov:n sisäinen muoto on nyt JSON ja uusi vaihtoehto --käytä-kuumia-värejä sisältää koodirivien värittämisen sen mukaan, kuinka usein niitä käytetään.
Kielet
Toteutuksen laatu ja täydellisyys OpenACC kielet C, C++ ja Fortran kehittyvät jatkuvasti.
C:n kaltaiset kielet
- OpenMP 5.0:n osittainen tuki on otettu käyttöön;
- Lisätty toiminto __builtin_convertvector;
- Lisätty varoitus -Waddress-of-pakattu-jäsen;
- parannuksia useisiin olemassa oleviin varoituksiin;
- Virheteksti, kun makrolle välitetään väärä määrä argumentteja, sisältää nyt itse makron ilmoituksen;
- Parannuksia kirjoitusvirheiden korjausehdotuksiin.
C
- Tue _Static_assert yhdellä argumentilla -std=c2x (tuleva C-standardi);
- Uusi varoitus -Absoluuttinen arvo, joka saa kiinni väärän argumenttityypin funktioille, kuten abs().
C + +
- Uudet varoitukset: -Wdeprecated-kopio,
-Winit-list-elinikäinen,
- Turha liike,
-Wpessimizing-liikkua,
-Wclass-muunnos; - Tulevan standardin uusia ominaisuuksia otetaan käyttöön parhaillaan C++2a;
- Käyttöliittymä tallentaa nyt tarkempaa tietoa useista lähdekoodielementeistä, mikä mahdollistaa tarkempien tietojen näyttämisen diagnostiikassa;
- Parannettu diagnostiikka ylikuormitetuille funktioille, binäärioperaattoreille, funktiokutsuille ja muotomerkkijonoille;
- Lisätty joidenkin kehitysympäristöjen tukemat automaattiset korjaukset useisiin suosittuihin virheisiin (puuttuvat sulut, nimitilat, kirjoitusvirheet jne.).
libstdc++
- C++17-toteutus ei ole enää kokeellinen;
- Lisätty rinnakkaisia algoritmeja, , , A ei enää vaadi -lstdc++fs;
- Parannettu kokeellinen tuki C++2a:lle ( , , std::bind_front jne.);
- Tuki tiedostojen avaamiseen Windowsissa, jonka polut sisältävät ei-merkkisiä merkkejä;
- Alkutuki Windowsissa;
- Ensimmäinen tuki Networking TS:lle.
D
D-kieliversio 2.076 sisältyy GCC:hen.
Fortran
- Täysi tuki asynkroniselle I/O:lle;
- Toteutettu BACK-argumentti MINLOC:lle ja MAXLOC:lle;
- Toteutettu FINDLOC- ja IS_CONTIGOUS-funktiot;
- Syntaksi kompleksilukujen komponentteihin pääsyä varten on toteutettu: c%re ja c%im;
- Toteutettu syntaksi str%len ja a%kind;
- Toteutetut C-kuvaajat ja ISO_Fortran_binding.h-otsikko;
- Kevennetyt vaatimukset MAX- ja MIN-funktioiden tulokselle, kun yksi argumenteista on NaN;
- Lisätty vaihtoehto -fdec-include;
- Direktiivi lisätty SISÄÄNRAKENNETTU.
libgccjit
- Lisätty toiminto gcc_jit_context_add_driver_option.
Muut
Monet arkkitehtuuri- ja käyttöjärjestelmäkohtaiset muutokset.
Lähde: linux.org.ru