Ho lokolloa ha GCC 13 compiler suite

Ka mor'a selemo sa nts'etsopele, ho lokolloa ha mahala GCC 13.1 compiler suite e lokolloa, tokollo ea pele ea bohlokoa lekaleng le lecha la GCC 13.x. Tlas'a leano le lecha la linomoro tsa tokollo, mofuta oa 13.0 o sebelisitsoe nakong ea nts'etsopele, 'me nakoana pele ho lokolloa ha GCC 13.1, lekala la GCC 14.0 le ne le se le ferekane, moo ho tla thehoa tokollo e latelang ea bohlokoa ea GCC 14.1.

Liphetoho tse kholo:

  • GCC e ile ea amohela boemo bo ka pele ba ho aha mananeo a puo ea lenaneo la Modula-2. E ts'ehetsa khoutu ea moaho e lumellanang le lipuo tsa PIM2, PIM3, le PIM4, hammoho le maemo a amohelehang a ISO bakeng sa puo eo.
  • Taba e ka pele mabapi le ho kengoa tšebetsong ha moqapi oa puo ea Rust e lokiselitsoeng ke projeke ea gccrs (GCC Rust) e kentsoe sefateng sa mohloli oa GCC. Ka chebo ea hajoale, forntend e tšoailoe e le ea liteko mme e emisitsoe ka ho sa feleng. Hang ha karolo e ka pele e se e lokile (e lebelletsoeng tokollong e latelang), sesebelisoa se tloaelehileng sa GCC se ka sebelisoa ho bokella mananeo a Rust ntle le tlhoko ea ho kenya komporo ea rustc e hahiloeng ka lintlafatso tsa LLVM.
  • Link-in-Step Optimization (LTO) e eketsa ts'ehetso bakeng sa seva sa mosebetsi (jobserver) e hlokometsoeng ke morero oa GNU ho ntlafatsa ts'ebetso ea kaho e tšoanang ho likhoele tse ngata. Ho GCC, sebatli sa mosebetsi se sebelisetsoa ho bapisa mosebetsi nakong ea ntlafatso ea LTO molemong oa lenaneo lohle (WPA, Analysis ea Lenaneo lohle). Liphaephe tse bitsoang (--jobserver-style=fifo) li sebelisoa ka mokhoa oa kamehla ho buisana le mosebetsi.
  • The static analyzer (-fanalyzer) e fana ka licheke tse ncha tse 20 tsa tlhahlobo, ho kenyelletsa "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Bokhoni ba ho hlahisa tlhahlobo ea mafu ka sebopeho sa SARIF se ipapisitseng le JSON bo kentsoe tšebetsong. Sebopeho se secha se ka sebelisoa ho fumana liphetho tsa tlhahlobo e tsitsitseng (GCC -fanalyzer), hammoho le ho fumana lintlha tse mabapi le litemoso le liphoso. Ho thusa ho etsoa ka khetho "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", moo likhetho tse nang le "json" li hlahisang tlhahiso ka mofuta o ikhethileng oa GCC oa sebopeho sa JSON. .
  • E kentse ts'ebetsong likarolo tse ling tse hlalositsoeng ho C23 C standard, joalo ka nullptr constant bakeng sa ho hlalosa null pointers, ho nolofatsa ho sebelisa manane a nang le likhang tse fapaneng (variadic), ho atolosa bokhoni ba enums, tšobotsi ea noreturn, e lumellang tšebeliso ea constexpr le auto ha e hlalosa lintho, mofuta oa mofuta le mofuta oa_ho sa lekane, mantsoe a macha a alignas, alignof, bool, bohata, static_assert, thread_local le 'nete, e lumellang masakana a se nang letho ha a qala.
  • E kentse tšebetsong likarolo tse ling tse hlalositsoeng ho maemo a C++23, joalo ka bokhoni ba ho beha matšoao qetellong ea mantsoe a kopaneng, ho lumellana le mofuta oa char8_t, taelo ea #warning preprocessor, e arotsoeng ke (\u{}, \o{} , \x{}), mme a reha mabitso ('\N{LATIN CAPITAL LETTER A}') tatellano ea ho baleha, static operator(), static operator[], equality operator ka har'a lipolelo, ntle le lithibelo tse ling mabapi le tšebeliso ea constexpr, tšehetso bakeng sa UTF-8 ho lingoliloeng tsa mohloli.
  • libstdc++ e ntlafalitse tšehetso ea liteko bakeng sa litekanyetso tsa C++20 le C++++23, joalo ka ho eketsa tšehetso ea faele ea hlooho. le std :: sebopeho, bokhoni bo atolositsoeng ba faele ea hlooho , mefuta e meng ea lintlha tse phaphametseng e kentsoe, lifaele tsa lihlooho li kentsoe tšebetsong Le .
  • E kentse litšobotsi tse ncha tsa tšebetso ho tokomane ea hore tlhaloso ea faele e fetisitsoe ka palo e felletseng: "__attribute__(((fd_arg(N))))", "__attribute__((fd_arg_read(N))))", le "__attribute__((fd_arg_write(N)) )) ". Litšobotsi tse boletsoeng li ka sebelisoa ho static analyzer (-fanalyzer) ho bona mosebetsi o fosahetseng ka litlhaloso tsa lifaele.
  • Ho kentsoe tšobotsi e ncha "__attribute__((asume(EXPR)))", eo ka eona u ka bolellang mohlophisi hore polelo eo ke' nete mme moqapi a ka sebelisa taba ena ntle le ho lekola polelo.
  • E kentse "-fstrict-flex-arrays=[level]" folakha ho khetha boitšoaro ha u sebetsana le ntho e feto-fetohang ka har'a mehaho (Flexible Array Members, letoto la boholo bo sa lekanyetsoang qetellong ea mohaho, mohlala, "int b[] ").
  • E kentse folakha ea "-Wenum-int-mismatch" ho fana ka litemoso haeba ho e-na le ho se lumellane lipakeng tsa mofuta o bontšitsoeng le mofuta o felletseng.
  • Qetello ea pele ea Fortran e na le ts'ehetso e felletseng ea ho phethela.
  • Tšehetso bakeng sa mesebetsi e akaretsang le mefuta (lisebelisoa tse akaretsang) e kentsoe karolong e ka pele bakeng sa puo ea Go, 'me ho netefatsoa ho lumellana le liphutheloana tsa puo ea Go 1.18.
  • AArch64 backend e tšehetsa CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), le Arm Neoverse V2 (neoverse -v2) . Tšehetso bakeng sa likhang tsa "armv9.1-a", "armv9.2-a", le "armv9.3-a" e kenyelelitsoe ho "-march=" kgetho. Tšehetso e ekelitsoeng bakeng sa lisebelisoa tsa FEAT_LRCPC, FEAT_CSSC le FEAT_LSE2.
  • Ts'ehetso bakeng sa STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c), le Arm Cortex-M85 (cortex-m85) CPUs e kentsoe mokokotlong oa kaho oa ARM.
  • Ts'ehetso bakeng sa Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, le li-processor tsa AMD Zen 86 (znver4) e kentsoe mokokotlong oa x4. Likatoloso tsa meralo ea AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, le AMX-COMPLEX e hlahisitsoeng ho li-processor tsa Intel e kentsoe tšebetsong. Bakeng sa C le C++ litsamaisong tse nang le SSE2, mofuta oa __bf16 o fanoe.
  • Moralo oa morao-rao oa khoutu bakeng sa AMD Radeon GPUs (GCN) o sebelisa bokhoni ba ho sebelisa li-accelerator tsa AMD Instinct MI200 ho ntlafatsa ts'ebetso ea OpenMP/OpenACC. Vectorization e ntlafalitsoeng ka ho sebelisa litaelo tsa SIMD.
  • Bokhoni ba morao-rao bo atolositsoeng haholo bakeng sa sethala sa LoongArch.
  • Ts'ehetso e ekelitsoeng bakeng sa XuanTie C906 ea CPU T-Head (hlooho-c906) mokokotlong oa RISC-V. Ts'ehetso e kentsoeng bakeng sa li-vector handlers tse hlalositsoeng ho RISC-V Vector Extension Intrinsic 0.11. Ts'ehetso e ekelitsoeng bakeng sa litlatsetso tse 30 tsa RISC-V.
  • Ha ho hlahisa lintho tse arolelanoang ka khetho ea "-shared", khoutu ea ho qala ha e sa eketsoa ka mor'a ho eketsa sebaka se phaphametseng haeba "-Ofast", "-ffast-math", kapa "-funsafe-math-optimizations" e khoneha. .
  • Ts'ehetso bakeng sa sebopeho sa DWARF sa debugging e kengoa tšebetsong hoo e batlang e le litlhophiso tsohle.
  • E kenyellelitsoe "-gz=zstd" khetho ea ho hatella tlhahisoleseling ea debug u sebelisa algorithm ea Zstandard. Ts'ehetso e tlositsoe bakeng sa mokhoa oa ho hatella tlhahisoleseling ea debug "-gz=zlib-gnu".
  • Ts'ehetso ea mantlha ea OpenMP 5.2 (Open Multi-Processing) e kenyellelitsoe mme ho kengoa ts'ebetsong ha maemo a OpenMP 5.0 le 5.1 e ntse e tsoela pele, e hlalosang li-API le mekhoa ea ho sebelisa mekhoa ea mananeo a tšoanang ho li-multi-core le hybrid (CPU + GPU / DSP) memori e arolelanoang le likarolo tsa vectorization (SIMD).
  • Ts'ehetso e theohileng bakeng sa mokhoa oa polokelo ea tlhahisoleseling oa STABS oa ho lokisa liphoso (o lumelletsoeng ka likhetho tsa -gstabs le -gxcoff), tse entsoeng ka bo-1980 'me tsa sebelisoa ho dbx debugger.
  • Tšehetso e theohileng bakeng sa Solaris 11.3 (khoutu ea ho tšehetsa sethala sena e tla tlosoa tokollong e tlang).

Source: opennet.ru

Eketsa ka tlhaloso