Programavimas

GCC GNU kompiliatorius prideda C ++ 17 palaikymą

Su šią savaitę išleista 7.1 versijos GCC (GNU Compiler Collection) versija platforma gauna išankstinį palaikymą C ++ 17 standartui ir diagnostikos patobulinimams.

7.1 versijoje yra C ++ sąsaja su eksperimentine pagalba visoms C ++ 17 projekto specifikacijoms. -std = c ++ 1z ir -std = gnu ++ 1z parinktys ir libstdc ++ yra palaikomi, o bibliotekoje įdiegta daugiausiai C ++ 17 bibliotekos juodraščio funkcijų. Ankstesnis „GCC 6.1“ leidimas atitiko C ++ 14 standartą.

„GCC 7“ serija skiriasi nuo ankstesnių leidimų, nes naujiems taikiniams pagal numatytuosius nustatymus naudoja LRA (vietinių registrų paskirstytoją) ir nebenaudoja „Cilk +“ plėtinių į C ir C ++ kalbas. Be to, kai kurie veiksmai buvo sušvelninti, siekiant pagerinti kompiliavimo ar vykdymo laiką. Tačiau kai kurie pakeitimai gali „sukelti sielvartą“ perkeliant į GCC 7, remiantis išleidimo pastabomis, kuriose nurodomi išankstinio procesoriaus ir C klausimai, taip pat C ++ kalbos problemos, pavyzdžiui, griežtesnės šablonų taisyklės. „Persijos įlankos bendradarbiavimo taryba 7 nebepriima įvairių netinkamai suformuotų konstrukcijų, susijusių su šablonų naudojimu“, - sakoma užrašuose.

„GCC 7.1“ taip pat pagerina išmetamą diagnostiką, įskaitant patobulintas vietas, o optimizavimo priemonės patobulinimai rodomi visose vidaus ir tarpprocedūrinėse optimizacijose, susiejimo laiko optimizavime ir įvairiuose tiksliniuose galiniuose kraštuose, pvz., Parduotuvių sujungimo leidimų papildymai, kodo pakėlimo optimizavimas, kilpų padalijimas, ir susitraukimo apvyniojimo patobulinimai. Be to, Persijos įlankos bendradarbiavimo tarybos adresų šalinimo priemonė dabar gali pranešti apie kintamųjų naudojimą, kai jie palieka savo taikymo sritį. GCC gali būti sukonfigūruotas „OpenMP“ API iškrovimui į „Nvidia PTX GPGPU“, tačiau kai kuriuos kodus, sukompiliuotus su senesnėmis GCC versijomis, gali tekti koreguoti. Kolekcijoje yra „C“, „C ++“, „Objective-C“, „Fortran“, „Ada“ ir „Go“ priekiniai galai.

$config[zx-auto] not found$config[zx-overlay] not found