Pagkatapos ng isang taon ng matinding pag-unlad, ang paglabas ng bagong bersyon ng «GCC 15.1» ay inihayag, na nakaposisyon bilang unang stable na bersyon sa loob ng bagong 15.x branch ng sikat na open source compiler suite na ito.
Ang release na ito ay hindi lamang opisyal na naglulunsad ng bagong serye ng GCC 15, ngunit minarkahan din ang simula ng mga paghahanda para sa pagbuo ng GCC 16, dahil ang 16.0 na sangay ay na-forked nang magkatulad at ilalagay ang batayan para sa susunod na pangunahing release, ang GCC 16.1.
GCC 15.1 Pangunahing Mga Bagong Tampok
Isa sa mga pinaka-kapansin-pansing pagbabago sa bagong bersyon na ito ay ang GCC 15.1 gumagamit ng pamantayang C23 bilang default para sa pag-compile ng C code, gamit ang -std=gnu23 na opsyon. Pinapalitan ng update na ito ang dating standard na ginamit bilang default, C17 (-std=gnu17), at nagpapakilala ng ilang bagong feature ng bagong standard. Kabilang sa mga ito ay ang constant nullptr, ang uri _BitInt(n), at ang mga keyword na bool, true, at false, na maaaring magdulot ng mga salungatan sa mga kasalukuyang identifier sa legacy code.
Ang isa pang bagong tampok na isinasama ng GCC 15.1 ay ang #embed na direktiba upang i-embed ang binary data, at mga katangian tulad ng hindi pagkakasunud-sunod at maaaring kopyahin, na nagbibigay ng higit na kontrol sa pagkakasunud-sunod ng pagpapatupad at ang pagpapasiya ng mga pare-parehong resulta. Bilang karagdagan, ang mga elemento ng hinaharap na pamantayan ng C2Y ay ipinatupad, tulad ng mga variable na idineklara sa loob ng mga kundisyon ng if, mga hanay ng halaga sa mga pahayag ng kaso, mga haka-haka na suffix na i at j, at suporta para sa mga operator ++ at — na inilapat sa mga kumplikadong numero.
Mga pagpapabuti sa C++ at sa hinaharap na C++26
Sa kaso ng wikang C++, ang bagong bersyon ng Ang GCC 15.1 ay nagpapatupad ng mga tampok na tinatalakay para sa pamantayang C++26, habang ipinakilala ang mga bagong feature gaya ng operator na "kaibigan", ang paggamit ng constexpr na may mga variant ng bagong operator, at mga pagpapahusay sa syntax para sa mga structured na link at attribute tulad ng musttail para sa garantisadong tail recursion.
Pinalawak din ang suporta ng C++23 na may mga bagong panuntunan para sa paggamit ng pag-export, mga pagpapahusay sa paghawak ng mga pansamantalang bagay, at isang eksperimentong pagpapatupad ng std at std.compat module sa libstdc++. Bukod pa rito, pinalalakas ang seguridad para sa pagsisimula ng unyon at ang pagsasama-sama ng code ay pinabuting salamat sa isang mas mahusay na sistema ng hashing ng template.
Mga bagong babala at pagpapahusay sa static na pagsusuri
Sistema Nakatanggap ang static na pagsusuri ng visual na muling pagdidisenyo na nagbibigay-diin sa mga problema sa pamamagitan ng mga simbolo, Mga tip para sa paglipat sa C23, at isang bagong library ng libgdiagnostics na nagpapahintulot sa muling paggamit ng diagnostic logic sa ibang mga proyekto. Ang suporta para sa pagbuo ng mga ulat sa SARIF na format ay ipinakilala rin, na nagpapadali sa pagsasama sa mga modernong tool sa pagsusuri ng code.
Sa Ang mga kasalukuyang babala ay idinaragdag sa mga bago, bilang -Wanalyzer-undefined-behavior-ptrdiff upang makita ang mga pagbabawas sa pagitan ng mga hindi nauugnay na mga pointer, -Wtrailing-whitespace at -Wleading-whitespace upang ipahiwatig ang hindi kinakailangang whitespace, at -Wheader-guard upang makakita ng mga error sa mga proteksyon sa pagsasama ng header.
Mga pag-optimize at suporta
Kabilang sa mga kapansin-pansing pag-optimize, May kasamang incremental compilation mode para sa LTO (Link-Time Optimization), na idinisenyo upang pabilisin ang mga recompilations kapag ang mga pagbabago ay minimal. Gayundin napabuti ang loop vectorization, kahit na sa mga kaso kung saan ang laki ng mga array ay hindi alam sa oras ng pag-compile, at pinapataas ang bilis ng pag-compile ng napakalaking file.
Sa panig ng suporta, ang mga extension ng ARMv64 ay naidagdag sa AArch8, suporta para sa mga bagong CPU tulad ng Apple M3, Cortex-X925 at NVIDIA Grace, at pinalawak ang platform ng MinGW. Ang pagbuo ng code para sa mga AMD Radeon GPU ay pinalakas ng Pang-eksperimentong suporta para sa bagong serye ng GFX9, GFX10.3, at GFX11. Para sa arkitektura ng x86, pinagana ang suporta para sa AVX10.2 at mga bagong tagubilin sa AMX, at hindi na ipinagpatuloy ang suporta para sa Xeon Phi Knights.
Bukod dito, Ipinakilala ng GCC 15.1 ang isang compiler para sa COBOL (gcobol), na may suporta para sa x86-64 at AArch64 na mga arkitektura, at isang na-update na pagpapatupad ng wikang D (bersyon 2.111.0). Ang suporta para sa mga unsigned integer sa Fortran ay idinagdag, at ang pag-ampon ng OpenMP 5.0 hanggang 6.0 ay na-advance, kabilang ang mga pagpapahusay sa interoperability at pinag-isang paggamit ng memory sa mga GPU.