GCC kompilaatori uus versioon tehti mõni päev tagasi kättesaadavaks uute funktsioonide ja veaparandustega.
GNU GCC projektimeeskonna sõnul on see uus versioon versioon 9.1 on kompilaatori peamine versioon Sisaldab olulisi uusi funktsioone, mida pole GCC 8.x ega varasemates versioonides saadaval. GCC 9.1 peaks tooma uusi keelefunktsioone, uued tarkvara optimeerimised ja mõned jõudluse täiustused.
GCC kohta
GCC on koostaja kogu loodud GNU projekti poolt. See on täpsemalt tasuta tarkvara võimeline koostama erinevaid programmeerimiskeeli, sealhulgas C, C ++, Objective-C, Java, Ada ja Fortran.
Samuti tuleb märkida, et kasutatakse enamiku vaba tarkvara väljatöötamiseks. Viimane suurem koostaja väljaanne pärineb 2018. aasta maist, versioon 8.1.
Red Hati arendaja Jakub Jelinek selgitas, et GCC 8.1 kujutas endast suurt versiooni, mis toob kaasa olulisi uusi funktsioone, mis pole saadaval GCC 7.x-s ja GCC varasemates versioonides.
Siinkohal on C ++ esiosa pakkunud eksperimentaalset tuge mõnele C ++ 2a funktsioonile valikutega -std = c ++ 2a ja -std = gnu ++ 2a.
Versioonis 8.2 üldise täiustamise tasemel on fikseeritud LTO (Link Time Optimization) jõudlusprobleemid, mis on tingitud partitsioonimisalgoritmi ületäitumisest suurte binaarfailide loomisel.
Parandused jätkusid 8.x harus koos kompilaatori versiooni 8.3 väljaandmisega mullu veebruaris. See versioon oli veaparandusväljaanne, mis sisaldas GCC 8.2 regressioonide plaastreid võrreldes GCC varasemate versioonidega. Pärsia lahe koostöönõukogu meeskond käivitas 3. mail uue haru, vabastades 9. versiooni.
Mida uut on GCC 9.1-s?
Selles versioonis C ++ 17 tugi on sisse viidud, kuna kompilaatori versiooni 8.1 pole enam kogenudl. Seetõttu on C ++ 17 tugi nüüd stabiilne.
Kasutaja liides C ++ rakendab kogu C ++ 17 keelt ja C ++ standardraamatukogu tugi on lõpule jõudmas.
El esiotsa ja C ++ teegil on ka palju muid funktsioone, mis on kodeeritud C ++ 2a-st. Samuti on GCC-l D-keele jaoks uus liides ja toetab nüüd osaliselt OpenMP 5.0-d ning integreerib peaaegu täielikult OpenACC 2.5-i toe.
Paljude jaoks on GCC 9 kompilaatori tugev versioon, mis pakub suurepäraseid funktsioone ja täiustusi arendajate jõudluse parandamiseks.
GCC 9.1 paljude uute funktsioonide hulgas on:
- D-programmeerimiskeelega kirjutatud koodi koostamise tugi;
- GCC-le on lisatud uus AMD GCN GPU taustaprogramm. Rakendus piirdub praegu ühe lõimega programmide koostamisega.
- LRA on nüüd ARC-sihtmärgi jaoks vaikimisi lubatud. Seda saab kontrollida -mlra abil.
- Lisatud toetus pildikoodile ning haru ja indeksi tiheduse avaldustele.
- GCC-le lisati uus C-SKY V2 protsessoritele suunatud sihtrühm.
- Inteli MPX-i tugi on eemaldatud.
- OpenRISC protsessori toe jaoks on lisatud uus taustaprogramm.
- OpenACC 2.5 spetsifikatsiooni tugi on peaaegu täielik.
- GCC sisemine pakett "selftest" töötab nüüd C ++ ja C puhul (kompilaatori silumisversioonides).
- Samuti on parandatud Fortrani tuge GCC-s. Nüüd tegeleb asünkroonse sisend / väljundi ja muude funktsioonidega.
- Protseduuride optimeerimine (OPI), profiilipõhine optimeerimine, linkimise aja optimeerimine (LTO), aga ka paljud muud optimeerimised, et tagada koodide parem kvaliteet.
- Firefox 66 ja LibreOffice 6.2.3 koguehitusaega 8-tuumalises masinas on vähendatud umbes 5% võrreldes GCC 8.3-ga. LTO-objektifailide suurust vähendatakse 7%.
- LTO lingi aeg paraneb 11-protsendiliselt 8 tuumaga masinal ja areneb dramaatiliselt paralleelsemate ehituskeskkondade jaoks. Lingi aja optimeerimise jadaetapp on 28% kiirem ja kulutab 20% vähem mälu. Parallel Stage jaotab nüüd 128 partitsiooni asemel 32 ja vähendab iga kasutaja mälukasutust 30%.
- Masinloetavas vormingus diagnostika jaoks on kasutusele võetud uus valik "-fdiagnostics-format = json".
allikas: https://gcc.gnu.org