Rhyddhau cyfres casglwyr GCC 16

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

Newidiadau mawr:

  • Mae'r modd diofyn ar gyfer yr iaith C++ wedi'i newid i'r safon C++20 (tafodiaith GNU C++20, -std=gnu++20) yn lle'r C++17 a gynigiwyd yn flaenorol. Mae'r gweithrediad C++20 yn y llyfrgell safonol wedi'i ddatgan yn sefydlog.
  • Mae'r pecyn yn cynnwys blaen-wyneb arbrofol ga68 ar gyfer llunio rhaglenni yn yr iaith raglennu Algol 68.
  • Ychwanegwyd y gallu i allbynnu gwybodaeth ddiagnostig ar ffurf HTML. Mae gwybodaeth gweithredu rhaglen estynedig bellach wedi'i chynnwys wrth allbynnu diagnosteg yn y fformat SARIF sy'n seiliedig ar JSON (nid yw cefnogaeth ar gyfer "-fdiagnostics-format=json" ar gael mwyach).
  • 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 ar gyfer llawer o nodweddion y safon C++26 a gymeradwywyd yn ddiweddar. Er enghraifft, mae'r canlynol wedi'u gweithredu:
    • Ychwanegwyd myfyrdod (-freflection), sy'n caniatΓ‘u monitro ac addasu elfennau rhaglen ar adeg llunio. Ychwanegwyd gweithredwyr newydd: "^^" ar gyfer cael metawybodaeth am adeiladwaith gramadegol a "[:…:]" ar gyfer perfformio trawsffurfiadau gwrthdro. Mae'r llyfrgell std::meta ar gael ar gyfer trawsnewid a phrosesu'r wybodaeth a geir yn ystod yr archwiliad, ac mae nodweddion fel cyfrifiadau cyson ar gael.
    • Rhaglennu contractau (Contracts), sy'n caniatΓ‘u diffinio manylebau rhyngwyneb ffurfiol gan ddefnyddio tri gweithredydd newydd: pre (rhagamodau), post (postcondition), a contract_assert (gwirio honiadau). Mae'r gweithredydd "pre" yn diffinio rhagamodau y mae'n rhaid eu bodloni cyn galwad (dilysu mewnbwn); mae "post" yn diffinio amodau y mae'n rhaid eu bodloni ar Γ΄l gweithredu (gofynion allbwn); ac mae contract_assert yn diffinio amodau eithriad. Bydd y nodwedd hon ar gael yn GCC 16.
    • Defnyddir y gweithredwr "template for" i ailadrodd dros elfennau fel pecynnau paramedr, gwrthrychau tebyg i diwpl, a chanlyniadau myfyrio (metaobjects) ar amser llunio, yn debyg i ddolen 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.
  • Mae nodweddion sy'n gysylltiedig Γ’ C++23 wedi'u gweithredu, megis rheoli oes gwrthrych yn benodol a chefnogaeth ar gyfer nodi amgodio cymeriad negeseuon diagnostig.
  • Mae cefnogaeth i'r safon C23 wedi'i hehangu, er enghraifft, mae'r gallu i ddefnyddio'r priodoledd "counted_by" i wirio'r defnydd cywir o bwyntyddion wedi'i weithredu.
  • Mae gweithrediad safonau OpenMP 5.0, 5.1, 5.2, a 6.0 (Open Multi-Processing), sy'n diffinio'r API a dulliau ar gyfer cymhwyso dulliau rhaglennu cyfochrog ar systemau aml-graidd a hybrid (CPU+GPU/DSP) gyda chof a rennir unedau fectoreiddio (SIMD), wedi parhau. Mae gweithrediad 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 y NVIDIA PTX, wedi'i wella.
  • 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: opennet.ru
Prynu gwesteio dibynadwy ar gyfer gwefannau sydd Γ’ diogelwch DDoS, gweinyddwyr VPS VDS πŸ”₯ Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster