Programmering

GCC GNU compiler tilføjer C ++ 17 support

Med 7.1-versionen af ​​GCC (GNU Compiler Collection), der blev frigivet i denne uge, får platformen tidlig support til C ++ 17-standarden og diagnostikforbedringer.

Version 7.1 har en C ++ - frontend med eksperimentel understøttelse af alle C ++ 17-udkastsspecifikationer. Det -std = c ++ 1z og -std = gnu ++ 1z indstillinger og libstdc ++ understøttes, og biblioteket har de fleste C ++ 17-udkast til biblioteksfunktioner implementeret. Den tidligere GCC 6.1-udgivelse overholdt C ++ 14-standarden.

GCC 7-serien adskiller sig fra tidligere udgivelser ved at bruge LRA (Local Register Allocator) som standard for nye mål og udfasning af Cilk + -udvidelser til C- og C ++ -sprogene. Desuden er nogle adfærd blevet lempet for at forbedre kompilering eller runtime-ydeevne. Imidlertid kan nogle ændringer "forårsage sorg", når de porteres til GCC 7, i henhold til udgivelsesnoter, der citerer præprocessor- og C-problemer samt C ++ sprogproblemer, såsom strengere regler for skabeloner. "GCC 7 accepterer ikke længere forskellige dårligt dannede konstruktioner, der involverer brug af skabeloner," siger noterne.

GCC 7.1 øger også udsendt diagnostik, herunder forbedrede placeringer, og optimeringsforbedringer vises i alle intra- og interprocedurelle optimeringer, linktidsoptimeringer og forskellige mål-back-ender, såsom tilføjelser af butiksfletningskort, kodeløftoptimering, sløjfedeling, og forbedringer af krympeindpakning. Derudover kan GCCs adressesanitizer nu rapportere anvendelser af variabler, når de forlader deres anvendelsesområde. GCC kan konfigureres til aflæsning af OpenMP API til Nvidia PTX GPGPU'er, men noget kode, der er kompileret med ældre GCC-versioner, skal muligvis justeres. Samlingen inkluderer frontender til C, C ++, Objective-C, Fortran, Ada og Go.