Ohjelmointi

GCC GNU-kääntäjä lisää C ++ 17 -tukea

Tällä viikolla julkaistun GCC: n (GNU Compiler Collection) 7.1-version avulla alusta saa varhaisen tuen C ++ 17 -standardille ja diagnostiikkaparannuksille.

Versiossa 7.1 on C ++ - käyttöliittymä, jossa on kokeellinen tuki kaikille C ++ 17 -luonnosmäärityksille. -std = c ++ 1z ja -std = gnu ++ 1z vaihtoehdot ja libstdc ++ tuetaan, ja kirjastossa on eniten C ++ 17 -luonnoskirjasto-ominaisuuksia. Aikaisempi GCC 6.1 -julkaisu noudattaa C ++ 14 -standardia.

GCC 7 -sarja eroaa aiemmista julkaisuista käyttämällä oletusarvoisesti LRA: ta (Local Register Allocator) uusille kohteille ja poistamalla Cilk + -laajennukset C- ja C ++ -kielille. Joitakin käyttäytymismalleja on myös lievennetty kokoamisen tai ajonaikaisen suorituskyvyn parantamiseksi. Jotkin muutokset voivat kuitenkin "aiheuttaa surua" siirrettäessä GCC 7: een julkaisutietojen mukaan, joissa mainitaan esiprosessori- ja C-ongelmat sekä C ++ - kieliongelmat, kuten tiukemmat säännöt malleille. "GCC 7 ei enää hyväksy erilaisia ​​huonosti muotoiltuja rakenteita, joihin liittyy mallien käyttöä", muistiinpanot sanovat.

GCC 7.1 parantaa myös päästöjen diagnostiikkaa, mukaan lukien parannetut sijainnit, ja optimointiparannuksia esiintyy kaikissa sisäisissä ja prosessien välisissä optimoinnissa, linkkiajan optimoinnissa ja erilaisissa kohde-loppupääissä, kuten myymälän yhdistämiskortin lisäykset, koodinoston optimointi, silmukan jakaminen ja kutistekääreiden parannukset. Lisäksi Persianlahden yhteistyöneuvoston osoitteenpuhdistin voi nyt ilmoittaa muuttujien käytöstä niiden poistuttua soveltamisalastaan. GCC voidaan määrittää OpenMP-sovellusliittymän purkamista varten Nvidia PTX GPGPU -laitteisiin, mutta jotkut vanhempien GCC-versioiden kanssa kootut koodit saattavat tarvita muutoksia. Kokoelma sisältää C, C ++, Objective-C, Fortran, Ada ja Go etupäät.