Programiranje

Prevajalnik GCC GNU dodaja podporo za C ++ 17

Z izdajo ta teden izdane različice GCC (GNU Compiler Collection) 7.1, platforma dobi zgodnjo podporo za standard C ++ 17 in izboljšave diagnostike.

Različica 7.1 ima prednji del C ++ z eksperimentalno podporo za vse specifikacije osnutka C ++ 17. The -std = c ++ 1z in -std = gnu ++ 1z možnosti in libstdc ++ so podprte in knjižnica ima večino implementiranih funkcij knjižnice osnutkov C ++ 17. Prejšnja izdaja GCC 6.1 je spoštovala standard C ++ 14.

Serija GCC 7 se od prejšnjih različic razlikuje po tem, da za nove cilje privzeto uporablja LRA (Local Register Allocator) in razveljavi razširitve Cilk + v jezikih C in C ++. Nekatera vedenja so bila tudi sproščena, da bi izboljšali zmogljivost prevajanja ali izvajanja. Vendar pa bi nekatere spremembe lahko "povzročile žalost" pri prenosu na GCC 7, v skladu z opombami k izdaji, ki navajajo težave s procesorjem in C, pa tudi težave z jezikom C ++, na primer strožja pravila za predloge. "GCC 7 ne sprejema več različnih nepravilno oblikovanih konstrukcij, ki vključujejo uporabo predlog," pišejo v opombah.

GCC 7.1 prav tako pospešuje oddajanje diagnostike, vključno z izboljšanimi lokacijami, izboljšave optimizatorja pa se pojavijo pri vseh med- in medproceduralnih optimizacijah, optimizacijah časa povezav in različnih ciljnih povratnih koncih, kot so dodatki za združevanje dovoljenj za shranjevanje, optimizacija za dvigovanje kode, razdelitev zanke, in izboljšave za zavijanje. Poleg tega lahko sredstvo za čiščenje naslovov GCC zdaj poroča o uporabi spremenljivk, ko zapustijo svoj obseg. GCC je mogoče konfigurirati za prenašanje API-ja OpenMP v GPGPU Nvidia PTX, toda nekatere kode, ki so bile prevedene s starejšimi različicami GCC, bodo morda potrebne Zbirka vključuje čelne konce za C, C ++, Objective-C, Fortran, Ada in Go.