GCC 16

GCC 16

Ar Γ΄l blwyddyn o ddatblygiad cyhoeddi rhyddhau set am ddim o grynhowyr GCC 16.1, y datganiad mawr cyntaf yn y gangen GCC 16.x newydd. Yn Γ΄l cynllun rhifo rhifynnau, defnyddiwyd fersiwn 16.0 yn ystod y datblygiad, ac ychydig cyn rhyddhau GCC 16.1 roedd cangen eisoes wedi'i fforchio GCC 17.0, a fydd yn sail i'r datganiad mawr nesaf o GCC 17.1.

Y prif newidiadau:

  • Mae'r modd diofyn ar gyfer yr iaith C++ wedi'i newid i ddefnyddio'r safon C ++ 20 (tafodiaith GNU C++20, -std=gnu++20) yn lle'r hyn a gynigiwyd yn flaenorol C ++ 17Mae'r gweithrediad C++20 yn y llyfrgell safonol wedi'i ddatgan yn sefydlog.
  • Mae blaen-wyneb arbrofol wedi'i gynnwys. ga68 ar gyfer llunio rhaglenni yn yr iaith raglennu Algol 68.
  • Ychwanegwyd y gallu i allbynnu gwybodaeth ddiagnostig ar ffurf HTML. Gwybodaeth estynedig am weithredu rhaglenni wedi'i chynnwys yn yr allbwn diagnostig ar ffurf HTML. SARIF, yn seiliedig ar JSON (mae cefnogaeth ar gyfer "-fdiagnostics-format=json" wedi dod i ben).
  • Mae optimeiddiadau Optimeiddio Amser Cyswllt (LTO) wedi'u hehangu. Mae'r opsiwn "-flto-toplevel-asm-heuristics" wedi'i ychwanegu, gan alluogi hewristigion i wella optimeiddio cod gyda chwistrelliadau cydosod. Nid yw'r dechneg dad-rithwiroli dyfaluol (-fdevirtualize-speculatively) bellach wedi'i chyfyngu i drosi dulliau rhithwir a gellir ei defnyddio i drosi unrhyw alwadau swyddogaeth anuniongyrchol, fel galwadau trwy bwyntyddion, i alwadau uniongyrchol.
  • Mae cefnogaeth ar gyfer fectoreiddio dolenni lle nad yw'r cyfrif iteriadau yn hysbys ar adeg llunio wedi'i weithredu. Mae effeithlonrwydd trin allanfeydd dolenni cynnar (e.e., trwy doriad) wedi'i wella.
  • Ychwanegwyd cefnogaeth arbrofol o lawer cyfleoedd safon a gymeradwywyd yn ddiweddar C ++ 26Er enghraifft, mae'r canlynol wedi cael eu rhoi ar waith:
    • Myfyrdod (Myfyrio, "-freflection"), sy'n eich galluogi i fonitro ac addasu elfennau'r rhaglen yn ystod y cam llunio. Ychwanegwyd gweithredwyr newydd:^^ (open-std.org)" i gael metawybodaeth am y strwythur gramadegol a "[:…:]" i gyflawni'r trawsnewidiad gwrthdro. Darperir y llyfrgell std::meta ar gyfer trawsnewid a phrosesu'r wybodaeth a geir yn ystod yr archwiliad, ac mae galluoedd fel cyfrifiadau gyda chysonion ar gael.
    • Rhaglenni contract (Contractau), sy'n caniatΓ‘u diffinio manylebau rhyngwyneb ffurfiol gan ddefnyddio tri gweithredwr newydd: pre (rhagamodau), post (postcondition), a contract_assert (gwirio honiadau). Mae'r gweithredwr "pre" yn nodi rhagamodau y mae'n rhaid eu bodloni cyn galwad (dilysu mewnbwn); mae "post" yn nodi amodau y mae'n rhaid eu bodloni ar Γ΄l gweithredu (gofynion allbwn); ac mae contract_assert yn nodi amodau eithriad. Bydd y nodwedd hon ar gael yn GCC 16.
    • Gweithredwr "templed ar gyfer" ar gyfer ailadrodd dros elfennau fel pecynnau paramedr, gwrthrychau tebyg i diwpl, a chanlyniadau myfyrio (metaobjects) ar amser llunio yn null dolen for reolaidd. Wrth weithredu "template for," mae corff y ddolen yn cael ei ehangu ar gyfer pob elfen, a chaiff pob iteriad ei brosesu mewn cwmpas ar wahΓ’n, lle mae elfen y dilyniant y mae'r ddolen yn cael ei hailadrodd drosto yn gyson ar gyfer pob iteriad a gall gymryd rhan mewn mynegiadau cyson (constexpr). Yng nghyd-destun myfyrio, gellir defnyddio "template for" i ailadrodd dros briodweddau dosbarthiadau neu gyfrifiadau.
    • Y llyfrgell std::simd ar gyfer paraleleiddio gweithrediadau data gan ddefnyddio setiau cyfarwyddiadau SIMD fel AVX-512 a NEON gan ddefnyddio'r system safonol o fath C++.
    • Llyfrgelloedd std::inplace_vector, std::optional , std::copy_function, std::function_ref, std::indirect, std::polymorphic a std::owner_equal.
  • Nodweddion wedi'u gweithredu sy'n gysylltiedig Γ’'r safon C++23, megis amlwg rheoli oes gwrthrychau a cefnogaeth yn nodi amgodio cymeriad negeseuon diagnostig.
  • Cefnogaeth estynedig i'r safon C23 (opennet.ru), er enghraifft, mae'r gallu i ddefnyddio'r priodoledd "counted_by" i wirio cywirdeb y defnydd o bwyntyddion wedi'i weithredu.
  • Parhad gweithredu safonau OpenMP 5.0, 5.1, 5.2 a 6.0 (Agored Aml-Brosesu), sy'n diffinio'r API a'r dulliau ar gyfer cymhwyso dulliau rhaglennu cyfochrog ar systemau aml-graidd a hybrid (CPU+GPU/DSP) gyda chof a rennir ac unedau fectoreiddio (SIMD). Gwell gweithredu manylebau rhaglennu cyfochrog OpenACC 3.0, 3.3, a 3.4, sy'n diffinio'r modd ar gyfer dadlwytho gweithrediadau i GPUs a phroseswyr arbenigol fel NVIDIA PTX.
  • Mae'r backend x86 bellach yn cefnogi proseswyr AMD yn seiliedig ar bensaernΓ―aeth micro Zen6 (-march=znver6), yn ogystal Γ’ phroseswyr Intel Wildcat Lake (-march=wildcatlake) a Nova Lake (-march=novalake).
  • Mae cefndir cynhyrchu cod GPU (GCN) AMD Radeon bellach yn cefnogi cyflymyddion AMD Instinct MI300 (gfx942).
  • Ar gyfer pensaernΓ―aethau RISC-V, ARM, S/390, a LoongArch, mae cefnogaeth wedi'i gweithredu ar gyfer y math "_BitInt(N)" i ddiffinio cyfanrifau gyda nifer penodol o bitiau.

Ffynhonnell: linux.org.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd Γ’ diogelwch DDoS, gweinyddwyr VPS VDS πŸ”₯ Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster