Kuburitswa kweiyo GCC 13 compiler suite

Mushure megore rekuvandudzwa, kuburitswa kwemahara GCC 13.1 compiler suite kwakaburitswa, yekutanga yakakosha kuburitswa mubazi idzva reGCC 13.x. Pasi pechirongwa chitsva chekuburitsa manhamba, vhezheni 13.0 yakashandiswa panguva yekuvandudzwa, uye nguva pfupi isati yaburitswa GCC 13.1, bazi reGCC 14.0 rakanga ratoforogwa, kubva paizoumbwa kuburitswa kwakakosha kweGCC 14.1.

Shanduko huru:

  • Iyo GCC yakatora kumberi kwekuvaka zvirongwa mumutauro weModula-2 programming. Inotsigira kodhi yekuvaka inoenderana nePIM2, PIM3, uye PIM4 dialects, pamwe neinogamuchirwa ISO mwero wemutauro iwoyo.
  • Kumberi nekuitwa kweRust mutauro compiler yakagadzirirwa neiyo gccrs chirongwa (GCC Rust) yakawedzerwa kune iyo GCC sosi muti. Mukuona kwazvino, iyo forntend yakanyorwa seyekuyedza uye yakaremara nekusarudzika. Kana iyo yekumberi yagadzirira (inotarisirwa mukuburitswa kunotevera), yakajairwa GCC toolkit inogona kushandiswa kuunganidza Rust zvirongwa pasina chikonzero chekuisa rustc compiler yakavakwa uchishandisa LLVM budiriro.
  • Link-in-Step Optimization (LTO) inowedzera tsigiro yebasa server (jobserver) inochengetwa neGNU ita purojekiti kuti ikwidzise parallel kuvaka kuuraya mukati meshinda dzakawanda. MuGCC, basa rebasa rinoshandiswa kuenzanisa basa panguva yeLTO optimization mumamiriro echirongwa chese (WPA, Whole-program Analysis). Mapombi ane mazita (--jobserver-style=fifo) anoshandiswa nekusarudzika kutaurirana nemushandi webasa.
  • Iyo static analyzer (-fanalyzer) inopa makumi maviri ekuongorora matsva ekuongorora, kusanganisira "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Iko kugona kuburitsa diagnostics muSARIF fomati yakavakirwa paJSON yaitwa. Iyo fomati nyowani inogona kushandiswa kuwana static kuongororwa mhinduro (GCC -fanalyzer), pamwe nekuwana ruzivo nezve yambiro uye zvikanganiso. Kugonesa kunoitwa nesarudzo "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", apo sarudzo dzine "json" dzinobuda muGCC-specific musiyano weiyo JSON fomati. .
  • Yakaita zvimwe zvinotsanangurwa muC23 C chiyero, senge nullptr yenguva dzose yekutsanangura null pointers, zvichiita kuti zvive nyore kushandisa zvinyorwa zvine nhamba inosiyana yenharo (variadic), kuwedzera kugona kweenums, noreturn hunhu, kubvumira kushandiswa constexpr uye otomatiki kana uchitsanangura zvinhu, typeof uye typeof_unqual, new keywords alignas, alignof, bool, nhema, static_assert, thread_local uye chokwadi, bvumira maparentheses asina chinhu pakutanga.
  • Yakaita mamwe maficha anotsanangurwa muC++23 chiyero, sekugona kuisa mamaki pamagumo emashoko akakoniwa, kuenderana nechar8_t type, #warning preprocessor rairo, yakaganhurwa na (\u{}, \o{} , \x{}), uye yakanzi ('\N{LATIN CAPITAL LETTER A}') kutevedzana kwekutiza, static operator(), static operator[], equality operator mukati mekutaura, kunze kwezvimwe zvirambidzo pakushandiswa kwe constexpr, tsigiro. yeUTF-8 mune zvinyorwa zvinyorwa.
  • libstdc++ yakavandudza tsigiro yekuyedza yeC++20 uye C++23 zviyero, sekuwedzera musoro faira rutsigiro. uye std :: fomati, yakawedzera musoro faira kugona , mamwe mapoinzi anoyangarara marudzi akawedzerwa, musoro mafaera akaiswa Uye .
  • Yakawedzera hunhu hutsva hwebasa kugwaro iro descriptor yefaira inopfuudzwa mune imwe nhamba yakasiyana: "__attribute__(((fd_arg(N))))", "__attribute__((fd_arg_read(N))))", uye"__attribute__((fd_arg_write(N) ))". Hunhu hwakatsanangurwa hunogona kushandiswa mune static analyzer (-fanalyzer) kuona basa risiri iro rine faira descriptors.
  • Hunhu hutsva "__attribute__((fungira(EXPR)))" hwawedzerwa, kwaunokwanisa kuudza mugadziri kuti kutaura kwacho ichokwadi uye mugadziri anogona kushandisa chokwadi ichi asina kuongorora chirevo.
  • Yakawedzerwa "-fstrict-flex-arrays = [level]" mureza kuti usarudze maitiro paunenge uchigadzira chinhu chinoshanduka-shanduka muzvimiro (Flexible Array Members, hurongwa hwehukuru husingagumi pamagumo echimiro, semuenzaniso, "int b[] ").
  • Yakawedzerwa "-Wenum-int-mismatch" mureza kuti upe yambiro kana paine kusawirirana pakati pemhando yakanyorwa nemhando izere.
  • Iyo Fortran yekumberi-yekupedzisira ine rutsigiro ruzere rwekupedzisa.
  • Tsigiro yezvishandiso nemhando (generics) yawedzerwa kumberi kwemutauro weGo, uye kuenderana nemapakeji emutauro weGo 1.18 kwave nechokwadi.
  • AArch64 backend inotsigira CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), uye Arm Neoverse V2 (neoverse -v2) . Tsigiro ye "armv9.1-a", "armv9.2-a", uye "armv9.3-a" nharo dzawedzerwa kune "-march=" sarudzo. Yakawedzera rutsigiro rwe FEAT_LRCPC, FEAT_CSSC uye FEAT_LSE2 mapurosesa ekuwedzera.
  • Tsigiro yeSTAR-MC1 (nyeredzi-mc1), Arm Cortex-X1C (cortex-x1c), uye Arm Cortex-M85 (cortex-m85) CPUs yakawedzerwa kune iyo ARM yekuvakisa backend.
  • Tsigiro yeIntel Raptor Lake, Meteor Lake, Sierra Sango, Grand Ridge, Emerald Rapids, Granite Rapids, uye AMD Zen 86 (znver4) processors yakawedzerwa kune x4 backend. Iyo AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, uye AMX-COMPLEX yekuraira seti yekuwedzera yekuvaka yakatsanangurwa muIntel processors yaitwa. Kune C uye C ++ pane masisitimu ane SSE2, iyo __bf16 mhando inopihwa.
  • Iyo kodhi chizvarwa backend ye AMD Radeon GPUs (GCN) inoshandisa kugona kushandisa AMD Instinct MI200 accelerators kuvandudza OpenMP/OpenACC mashandiro. Yakavandudzwa vectorization uchishandisa SIMD mirairo.
  • Yakawedzera zvakanyanya backend masimba eiyo LoongArch chikuva.
  • Yakawedzerwa rutsigiro rweCPU T-Musoro's XuanTie C906 (musoro-c906) muRISC-V backend. Yakaitwa tsigiro yevanobata vector inotsanangurwa muRISC-V Vector Extension Intrinsic 0.11 yakatarwa. Yakawedzera tsigiro ye30 RISC-V yekutsanangurwa kwekuwedzera.
  • Paunenge uchigadzira zvinhu zvakagovaniswa ne "-shared" sarudzo, kodhi yekutanga haichawedzerwi mushure mekuwedzera nzvimbo inoyangarara kana "-Ofast", "-ffast-math", kana "-funsafe-math-optimizations" optimizations inogoneswa. .
  • Tsigiro yeiyo DWARF debugging fomati inoitwa mune dzinenge dzese zvigadziriso.
  • Yakawedzera "-gz=zstd" sarudzo yekumanikidza debug ruzivo uchishandisa iyo Zstandard algorithm. Yakabviswa tsigiro yeyakadzikiswa debug information compression mode "-gz=zlib-gnu".
  • Rutsigiro rwekutanga rweOpenMP 5.2 (Open Multi-Processing) rwakawedzerwa uye kuitwa kweOpenMP 5.0 uye 5.1 zviyero kwaenderera mberi, kutsanangura maAPIs uye nzira dzekushandisa dzakafanana nzira dzehurongwa pane akawanda-core uye hybrid (CPU + GPU / DSP) masisitimu ane. yakagovaniswa ndangariro uye vectorization zvikamu (SIMD).
  • Tsigiro yeiyo legacy debug yekuchengetera ruzivo fomati "STABS" (inogoneswa ne -gstabs uye -gxcoff sarudzo), yakagadzirwa muma1980 uye yakashandiswa mu dbx debugger, yakamiswa.
  • Yakadzikiswa rutsigiro rweSolaris 11.3 (kodhi yekutsigira iyi chikuva ichabviswa mukuburitswa kunotevera).

Source: opennet.ru

Voeg