Útgáfa af GCC 13 þýðandasvítunni

Eftir árs þróun hefur útgáfa ókeypis GCC 13.1 þýðandasvítunnar verið gefin út, fyrsta marktæka útgáfan í nýju GCC 13.x útibúinu. Undir nýja útgáfunúmerakerfinu var útgáfa 13.0 notuð við þróun, og skömmu fyrir útgáfu GCC 13.1 var GCC 14.0 útibúið þegar skipt út, þaðan sem næsta mikilvæga útgáfa GCC 14.1 verður mynduð.

Helstu breytingar:

  • GCC samþykkti framenda til að byggja upp forrit á Modula-2 forritunarmálinu. Það styður byggingarkóða sem er í samræmi við PIM2, PIM3 og PIM4 mállýskur, sem og viðurkenndan ISO staðal fyrir það tungumál.
  • Framenda með innleiðingu Rust tungumálaþýðanda sem var unnin af gccrs verkefninu (GCC Rust) hefur verið bætt við GCC upprunatréð. Í núverandi sýn er forntend merkt sem tilraunaverkefni og sjálfgefið óvirkt. Þegar framhliðin er tilbúin (væntanleg í næstu útgáfu) er hægt að nota staðlaða GCC verkfærakistuna til að setja saman Rust forrit án þess að þurfa að setja upp rustc þýðanda sem byggður er með LLVM þróun.
  • Link-in-Step Optimization (LTO) bætir við stuðningi við vinnuþjón (vinnuþjón) sem viðhaldið er af GNU make verkefninu til að hámarka framkvæmd samhliða smíði yfir marga þræði. Í GCC er vinnuþjónninn notaður til að samhliða vinnu við LTO hagræðingu í samhengi við allt forritið (WPA, Whole-program Analysis). Nafngreind rör (--jobserver-style=fifo) eru sjálfgefið notuð til að hafa samskipti við vinnuþjóninn.
  • Stöðugreiningartækið (-fanalyzer) býður upp á 20 nýjar greiningarathuganir, þar á meðal "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite -endurkvæmni" -Wanalyzer-stökk-í gegnum-null", "-Wanalyzer-va-list-leka".
  • Möguleikinn á að gefa út greiningar á SARIF sniði sem byggir á JSON hefur verið innleidd. Nýja sniðið er hægt að nota til að fá niðurstöður úr kyrrstöðugreiningum (GCC -fanalyzer), sem og til að fá upplýsingar um viðvaranir og villur. Virkjun er gerð með valkostinum „-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file“, þar sem valkostir með „json“ leiða til úttaks í GCC-sértæku afbrigði af JSON sniði .
  • Innleiddi nokkra eiginleika sem skilgreindir eru í C23 C staðlinum, eins og nullptr fastann til að skilgreina núllbendingar, sem gerir það auðveldara að nota lista með breytilegum fjölda röka (breytilegt), víkkað út möguleika enums, noreturn eigindina, sem gerir kleift að nota constexpr og auto þegar hlutir eru skilgreindir, gerð af og typeof_unqual, ný leitarorð alignas, alignof, bool, false, static_assert, thread_local og true, leyfa tóma sviga við frumstillingu.
  • Innleiddi nokkra eiginleika sem skilgreindir eru í C++23 staðlinum, svo sem hæfni til að setja merki í lok samsettra tjáninga, samhæfni við char8_t gerð, #warning forvinnslutilskipun, afmörkuð með (\u{}, \o{} , \x{}), og nefndur ('\N{LATÍNSKUR STÓRSTAF A}') undankomuraðir, static operator(), static operator[], jöfnunaroperator innan tjáninga, undantekning frá sumum takmörkunum á notkun constexpr, stuðningur fyrir UTF-8 í frumtextum.
  • Bættur tilraunastuðningur fyrir C++20 og C++23 staðla í libstdc++, svo sem að bæta við hausskrárstuðningi og std::snið, aukinn möguleika á hausskrám , fleiri fljótandi punktategundum bætt við, hausskrár útfærðar Og .
  • Bætti nýjum aðgerðareigindum við skjal um að skráarlýsing sé send í heiltölubreytu: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))", og "__attribute__((fd_arg_write(N) ))“. Hægt er að nota tilgreinda eiginleika í kyrrstöðugreiningartæki (-fanalyzer) til að greina ranga vinnu með skráarlýsingum.
  • Nýr eiginleiki "__attribute__((assume(EXPR)))" hefur verið bætt við, sem þú getur sagt þýðandanum að segðin sé sönn og þýðandinn getur notað þessa staðreynd án þess að meta tjáninguna.
  • Bætt við "-fstrict-flex-arrays=[level]" fána til að velja hegðun þegar unnið er úr sveigjanlegum fylkisþáttum í mannvirkjum (Flexible Array Members, fylki af óákveðinni stærð í lok skipulagsins, til dæmis, "int b[] ").
  • Bætt við "-Wenum-int-mismatch" fána til að gefa út viðvaranir ef það er ósamræmi á milli upptalinnar tegundar og heiltölutegundar.
  • Fortran framhliðin hefur fullan stuðning við frágang.
  • Stuðningur fyrir almennar aðgerðir og gerðir (almennar) hefur verið bætt við framenda fyrir Go tungumálið og samhæfni við pakka fyrir Go 1.18 tungumálið hefur verið tryggt.
  • AArch64 stuðningur styður CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) og Arm Neoverse V2 (neoverse -v2) . Stuðningur fyrir "armv9.1-a", "armv9.2-a" og "armv9.3-a" rök hefur verið bætt við "-march=" valkostinn. Bætti við stuðningi fyrir FEAT_LRCPC, FEAT_CSSC og FEAT_LSE2 örgjörvaviðbætur.
  • Stuðningur fyrir STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) og Arm Cortex-M85 (cortex-m85) örgjörva hefur verið bætt við bakenda ARM arkitektúrsins.
  • Stuðningur við Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids og AMD Zen 86 (znver4) örgjörva hefur verið bætt við x4 bakenda. AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT og AMX-COMPLEX leiðbeiningasett arkitektúrviðbætur sem lagðar eru til í Intel örgjörvum hafa verið innleiddar. Fyrir C og C++ á kerfum með SSE2 er gerð __bf16 til staðar.
  • Kóðamyndunarbakendi fyrir AMD Radeon GPU (GCN) útfærir getu til að nota AMD Instinct MI200 hraða til að bæta OpenMP/OpenACC afköst. Bætt vektorgreining með SIMD leiðbeiningum.
  • Verulega stækkuð bakendagetu fyrir LoongArch vettvang.
  • Bætti við stuðningi fyrir CPU T-Head's XuanTie C906 (thead-c906) í RISC-V bakendanum. Innleiddur stuðningur fyrir vektormeðhöndlun skilgreinda í RISC-V Vector Extension Intrinsic 0.11 forskriftinni. Bætt við stuðningi við 30 RISC-V forskriftarviðbætur.
  • Þegar samnýttir hlutir eru búnir til með „-shared“ valmöguleikanum er ræsikóða ekki lengur bætt við eftir að fljótandi punktumhverfi hefur verið bætt við ef „-Ofast“, „-ffast-math“ eða „-funsafe-math-optimizations“ fínstillingarnar eru virkar .
  • Stuðningur við DWARF kembiforritið er útfært í næstum öllum stillingum.
  • Bætt við "-gz=zstd" valkostinum til að þjappa villuleitarupplýsingum með Zstandard reikniritinu. Fjarlægði stuðning fyrir úrelta kembiforritaupplýsingaþjöppunarham „-gz=zlib-gnu“.
  • Upphaflegur stuðningur fyrir OpenMP 5.2 (Open Multi-Processing) hefur verið bætt við og innleiðing á OpenMP 5.0 og 5.1 stöðlunum hefur haldið áfram, skilgreinir API og aðferðir til að beita samhliða forritunaraðferðum á fjölkjarna og blendinga (CPU + GPU / DSP) kerfi með sameiginlegt minni og vektoriseringareiningar (SIMD).
  • Stuðningur við eldri kembiforritsupplýsingageymslusniðið „STABS“ (virkjað með -gstabs og -gxcoff valkostunum), búið til á níunda áratugnum og notað í dbx kembiforritinu, hefur verið hætt.
  • Úreltur stuðningur við Solaris 11.3 (kóði til að styðja þennan vettvang verður fjarlægður í framtíðarútgáfu).

Heimild: opennet.ru

Bæta við athugasemd