Pēc intensīvas attīstības gada, tika paziņots par jaunās «GCC 15.1» versijas izlaišanu, kas ir pozicionēta kā pirmā stabilā versija šī populārā atvērtā pirmkoda kompilatoru komplekta jaunajā 15.x atzarā.
Šī versija ne tikai oficiāli laiž klajā jauno GCC 15 sēriju, bet arī iezīmē sagatavošanās darbu sākumu GCC 16 izstrādei, jo paralēli ir izveidota 16.0 atzara, kas liks pamatus nākamajai nozīmīgajai versijai — GCC 16.1.
GCC 15.1 Galvenās jaunās funkcijas
Viena no ievērojamākajām izmaiņām šajā jaunajā versijā ir GCC 15.1 pieņem C23 standartu kā noklusējuma vērtību C koda kompilēšanai, izmantojot opciju -std=gnu23. Šis atjauninājums aizstāj iepriekšējo pēc noklusējuma izmantoto standartu C17 (-std=gnu17) un ievieš vairākas jaunas jaunā standarta funkcijas. Starp tiem ir arī konstante nullptr, tips _BitInt(n) un atslēgvārdi bool, true un false, kas varētu izraisīt konfliktus ar esošajiem identifikatoriem mantotā kodā.
Vēl viena jauna funkcija, ko ietver GCC 15.1, ir #embed direktīva bināros datus iegulšanai, un tādi atribūti kā nesecīgs un reproducējams, kas nodrošina lielāku kontroli pār izpildes secību un konsekventu rezultātu noteikšanu. Turklāt ir ieviesti nākotnes C2Y standarta elementi, piemēram, mainīgie, kas deklarēti "if" nosacījumos, vērtību diapazoni gadījumu paziņojumos, iedomāti sufiksi "i" un "j", kā arī atbalsts operatoriem "++" un "—", kas tiek lietoti kompleksiem skaitļiem.
Uzlabojumi C++ valodā un nākotnes C++26
C++ valodas gadījumā jaunā versija GCC 15.1 ievieš funkcijas, kas tiek apspriestas C++26 standartam, jo tiek ieviestas jaunas funkcijas, piemēram, operators "draugs", constexpr izmantošana ar jaunā operatora variantiem un strukturētu saišu un atribūtu sintakses uzlabojumi, piemēram, mustail garantētai astes rekursijai.
Tiek paplašināts arī C++23 atbalsts ar jauniem eksportēšanas noteikumiem, uzlabojumiem pagaidu objektu apstrādē un eksperimentālu std un std.compat moduļu ieviešanu libstdc++. Turklāt tiek pastiprināta drošība apvienošanas inicializācijai un uzlabota koda kompilācija, pateicoties efektīvākai veidņu jaukšanas sistēmai.
Jauni brīdinājumi un uzlabojumi statiskajā analīzē
sistēma Statiskā analīze saņēma vizuālu pārveidojumu kas izceļ problēmas ar simbolu palīdzību, Padomi migrācijai uz C23 un jauna libgdiagnostics bibliotēka kas ļauj atkārtoti izmantot diagnostikas loģiku citos projektos. Ir ieviests arī atbalsts atskaišu ģenerēšanai SARIF formātā, kas atvieglo integrāciju ar moderniem koda analīzes rīkiem.
Pie Esošie brīdinājumi tiek pievienoti jaunajiem, kā -Wanalyzer-nedefinēta-uzvedība-ptrdiff lai atklātu atņemšanu starp nesaistītiem rādītājiem, –Wbeigu atstarpe un -Wievadošā atstarpe lai norādītu nevajadzīgu atstarpi, un –Vīdera aizsargs lai atklātu kļūdas galvenes iekļaušanas aizsardzībā.
Optimizācijas un atbalsts
Starp ievērojamākajām optimizācijām, Ir iekļauts LTO pakāpeniskas kompilācijas režīms (Savienojuma laika optimizācija), kas paredzēta, lai paātrinātu atkārtotu kompilāciju, ja izmaiņas ir minimālas. Arī ir uzlabota cilpu vektorizācija, pat gadījumos, kad masīvu lielums kompilēšanas laikā nav zināms, un palielina ļoti lielu failu kompilēšanas ātrumu.
Atbalsta pusē AArch64 ir pievienoti ARMv8 paplašinājumi, atbalsts jauniem centrālajiem procesoriem, piemēram, Apple M3, Cortex-X925 un NVIDIA Grace, kā arī paplašina MinGW platformu. AMD Radeon GPU koda ģenerēšana ir uzlabota ar Eksperimentāls atbalsts jaunajām GFX9, GFX10.3 un GFX11 sērijām. X86 arhitektūrai ir iespējots atbalsts AVX10.2 un jaunām AMX instrukcijām, un atbalsts Xeon Phi Knights ir pārtraukts.
Turklāt, GCC 15.1 ievieš COBOL kompilatoru (gcobol) ar atbalstu x86-64 un AArch64 arhitektūrām un atjauninātu D valodas ieviešanu (2.111.0 versija). Fortran valodā ir pievienots atbalsts neparakstītiem veseliem skaitļiem, un ir uzlabota OpenMP 5.0 versijas ieviešana 6.0 versijā, tostarp sadarbspējas uzlabojumi un vienota atmiņas izmantošana grafiskajos procesoros.