Kutulutsidwa kwa GCC 13 compiler suite

Pambuyo pa chaka cha chitukuko, kutulutsidwa kwa pulogalamu yaulere ya GCC 13.1 compiler kwatulutsidwa, kutulutsidwa koyamba munthambi yatsopano ya GCC 13.x. Pansi pa chiwembu chatsopano cha manambala omasulidwa, mtundu wa 13.0 unagwiritsidwa ntchito panthawi yachitukuko, ndipo posachedwa GCC 13.1 isanatulutsidwe, nthambi ya GCC 14.0 inali itafoledwa kale, komwe kumasulidwa kotsatira kwa GCC 14.1 kudzapangidwa.

Zosintha zazikulu:

  • GCC idatenga njira yopangira mapulogalamu muchilankhulo cha pulogalamu ya Modula-2. Imathandizira khodi yomanga yomwe imagwirizana ndi PIM2, PIM3, ndi PIM4, komanso mulingo wovomerezeka wa ISO wachilankhulo chimenecho.
  • Kutsogolo ndi kukhazikitsa kwa Rust language compiler yokonzedwa ndi pulojekiti ya gccrs (GCC Rust) yawonjezedwa pamtengo woyambira wa GCC. M'mawonedwe apano, forntend imalembedwa ngati yoyeserera ndikuyimitsidwa mwachisawawa. Pamene kutsogolo kwakonzeka (kuyembekezeredwa kumasulidwa kotsatira), chida chokhazikika cha GCC chitha kugwiritsidwa ntchito kupanga mapulogalamu a Rust popanda kufunikira kokhazikitsa compiler ya rustc yomangidwa pogwiritsa ntchito chitukuko cha LLVM.
  • Link-in-Step Optimization (LTO) imawonjezera kuthandizira kwa seva yantchito (jobserver) yosungidwa ndi GNU kupanga pulojekiti kuti ikwaniritse ntchito zofananira pama ulusi angapo. Mu GCC, ntchitoyo imagwiritsidwa ntchito kufananiza ntchito pakukhathamiritsa kwa LTO malinga ndi pulogalamu yonse (WPA, Whole-program Analysis). Mapaipi otchedwa (--jobserver-style=fifo) amagwiritsidwa ntchito mwachisawawa kuti alankhule ndi ntchito.
  • The static analyzer (-fanalyzer) imapereka macheke 20 atsopano ozindikira matenda, kuphatikiza "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Kuthekera kotulutsa zowunikira mumtundu wa SARIF kutengera JSON kwakhazikitsidwa. Mtundu watsopano ungagwiritsidwe ntchito kupeza zotsatira za static analysis (GCC -fanalyzer), komanso kuti mudziwe zambiri za machenjezo ndi zolakwika. Kuyang'anira kumachitidwa ndi kusankha "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", pomwe zosankha ndi "json" zimabweretsa zotuluka mu mtundu wa GCC-specific wa JSON format. .
  • Anakhazikitsa zina zomwe zafotokozedwa mu C23 C muyeso, monga nullptr constant pofotokozera zopanda pake, kupangitsa kuti zikhale zosavuta kugwiritsa ntchito mindandanda yokhala ndi mikangano yosiyana (variadic), kukulitsa kuthekera kwa enums, noreturn, kulola kugwiritsa ntchito constexpr ndi auto pofotokozera zinthu, typeof ndi typeof_unqual, mawu osakira alignas, alignof, bool, false, static_assert, thread_local and true, kulola makolo opanda kanthu poyambitsa.
  • Inakhazikitsa zina zomwe zafotokozedwa mu C++23 muyezo, monga kutha kuyika zizindikiro kumapeto kwa mawu apawiri, kugwirizana ndi mtundu wa char8_t, malangizo a #warning preprocessor, otsitsidwa ndi (\u{}, \o{} , \x{}), ndipo adatchedwa ('\N{LATIN CAPITAL LETTER A}') njira zothawa, static operator(), static operator[], wogwiritsa ntchito mofanana m'mawu, kupatulapo zoletsa zina pakugwiritsa ntchito constexpr, chithandizo za UTF-8 m'malemba oyambira.
  • libstdc++ yathandizira zoyeserera za C++20 ndi C++23 miyezo, monga kuwonjezera thandizo la fayilo yamutu. ndi std :: mawonekedwe, mafayilo owonjezera amutu , mitundu yowonjezera yoyandama yowonjezeredwa, mafayilo apamutu akhazikitsidwa Ndipo .
  • Zowonjezera zatsopano zogwirira ntchito pazolemba zomwe zofotokozera mafayilo zimaperekedwa mumitundu yambiri: "__attribute__(((fd_arg(N))))", "__attribute__((fd_arg_read(N))))", ndi "__attribute__((fd_arg_write(N) )) ". Makhalidwe otchulidwa angagwiritsidwe ntchito mu static analyzer (-fanalyzer) kuti azindikire ntchito yolakwika ndi zofotokozera mafayilo.
  • Lingaliro latsopano "__attribute__(((lingalira(EXPR))))" lawonjezedwa, lomwe mungamuuze wolemba kuti mawuwo ndi oona ndipo wophatikiza angagwiritse ntchito mfundoyi popanda kuwunika mawuwo.
  • Wowonjezera "-fstrict-flex-arrays=[level]" mbendera kuti musankhe khalidwe mukamakonza chinthu chosinthika muzopangidwe (Flexible Array Members, mndandanda wa kukula kosawerengeka kumapeto kwa dongosolo, mwachitsanzo, "int b[] ").
  • Onjezani mbendera ya "-Wenum-int-mismatch" kuti mupereke machenjezo ngati pali kusagwirizana pakati pa mtundu womwe watchulidwa ndi mtundu wonse.
  • Kumapeto kwa Fortran kuli ndi chithandizo chonse chomaliza.
  • Thandizo la magwiridwe antchito ndi mitundu (generics) zawonjezedwa kumapeto kwa chilankhulo cha Go, ndipo kugwirizanitsa ndi phukusi la chilankhulo cha Go 1.18 kwatsimikiziridwa.
  • AArch64 backend imathandizira CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), ndi Arm Neoverse V2 (neoverse -v2) . Thandizo la "armv9.1-a", "armv9.2-a", ndi "armv9.3-a" mikangano yawonjezedwa ku "-march=" njira. Zothandizira zowonjezera za FEAT_LRCPC, FEAT_CSSC ndi FEAT_LSE2.
  • Thandizo la STAR-MC1 (nyenyezi-mc1), Arm Cortex-X1C (cortex-x1c), ndi Arm Cortex-M85 (cortex-m85) CPUs zawonjezedwa kumbuyo kwa kamangidwe ka ARM.
  • Thandizo la Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, ndi AMD Zen 86 (znver4) processors awonjezedwa ku x4 backend. AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, ndi AMX-COMPLEX zowonjezera zowonjezera zomwe zaperekedwa mu ma processor a Intel zakhazikitsidwa. Kwa C ndi C ++ pamakina okhala ndi SSE2, mtundu wa __bf16 umaperekedwa.
  • Kumbuyo kwa ma code a AMD Radeon GPUs (GCN) kumagwiritsa ntchito ma accelerator a AMD Instinct MI200 kuti apititse patsogolo magwiridwe antchito a OpenMP/OpenACC. Kupititsa patsogolo ma vectorization pogwiritsa ntchito malangizo a SIMD.
  • Kuthekera kokulitsidwa kumbuyo kwa nsanja ya LoongArch.
  • Thandizo lowonjezera la CPU T-Head's XuanTie C906 (mutu-c906) kumbuyo kwa RISC-V. Thandizo lokhazikitsidwa kwa othandizira ma vector omwe amafotokozedwa mu RISC-V Vector Extension Intrinsic 0.11. Thandizo lowonjezera pazowonjezera 30 za RISC-V.
  • Popanga zinthu zogawana ndi njira ya "-shared", code yoyambira siyikuwonjezedwa pambuyo powonjezera malo oyandama ngati "-Ofast", "-ffast-math", kapena "-funsafe-math-optimizations" atha kukhathamiritsa. .
  • Thandizo la mawonekedwe a DWARF debugging amakhazikitsidwa pafupifupi masinthidwe onse.
  • Onjezani "-gz=zstd" njira yophatikizira zambiri za debug pogwiritsa ntchito algorithm ya Zstandard. Thandizo lachotsedwa pamachitidwe ophatikizira ochotsa chidziwitso "-gz=zlib-gnu".
  • Thandizo loyambirira la OpenMP 5.2 (Open Multi-Processing) lawonjezedwa ndikukhazikitsa miyezo ya OpenMP 5.0 ndi 5.1 yapitilira, kufotokozera ma API ndi njira zogwiritsira ntchito njira zofananira pamakina amitundu yambiri komanso osakanizidwa (CPU + GPU / DSP) okhala ndi magawo amakumbukiro ndi ma vectorization (SIMD).
  • Thandizo lotsitsidwa lamtundu wa STABS wochotsa zidziwitso zosungidwa (zothandizidwa ndi -gstabs ndi -gxcoff options), zomwe zidapangidwa m'ma 1980s ndikugwiritsidwa ntchito mu dbx debugger.
  • Thandizo lotsitsidwa la Solaris 11.3 (code yothandizira nsanja iyi idzachotsedwa kumasulidwa mtsogolo).

Source: opennet.ru

Kuwonjezera ndemanga