Lançimi i paketës së kompilatorëve GCC 13

Pas një vit zhvillimi, është publikuar lirimi i paketës së lirë të kompilatorëve GCC 13.1, një lëshim i parë i rëndësishëm në degën e re GCC 13.x. Në përputhje me skemën e re të numërimit të lëshimeve, versioni 13.0 u përdor gjatë procesit të zhvillimit, ndërsa pak para publikimit të GCC 13.1 është ndarë dega GCC 14.0, mbi të cilën do të formohet lëshimi i ardhshëm i rëndësishëm GCC 14.1.

Ndryshimet kryesore:

  • NĂ« GCC Ă«shtĂ« pranuar frontend pĂ«r ndĂ«rtimin e programeve nĂ« gjuhĂ«n e programimit Modula-2. MbĂ«shtetet ndĂ«rtimi i kodit, qĂ« i pĂ«rket dialekteve PIM2, PIM3 dhe PIM4, si dhe standardit ISO tĂ« pranuar pĂ«r kĂ«tĂ« gjuhĂ«.
  • NĂ« pemĂ«n e kodit burimor tĂ« GCC Ă«shtĂ« shtuar njĂ« frontend me implementimin e kompilatorit tĂ« gjuhĂ«s Rust, i pĂ«rgatitur nga projekti gccrs (GCC Rust). NĂ« formĂ«n aktuale, frontend-i Ă«shtĂ« shĂ«nuar si eksperimental dhe Ă«shtĂ« i çaktivizuar si parazgjedhje. Pas pĂ«rfundimit tĂ« gatishmĂ«risĂ« sĂ« frontend-it (pritet nĂ« lĂ«shimin e ardhshĂ«m), mjetet standarde tĂ« GCC do tĂ« mund tĂ« pĂ«rdoren pĂ«r kompilimin e programeve nĂ« gjuhĂ«n Rust pa qenĂ« e nevojshme instalimi i kompilatorit rustc, i ndĂ«rtuar duke pĂ«rdorur burimet e LLVM.
  • NĂ« mekanizmin e optimizimit nĂ« fazĂ«n e lidhjes (LTO) Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r serverin e menaxhimit tĂ« punĂ«ve (jobserver), mbĂ«shtetur nga projekti GNU make pĂ«r optimizimin e ekzekutimit tĂ« ndĂ«rtimit paralel nĂ« disa procese. NĂ« GCC, jobserver pĂ«rdoret pĂ«r tĂ« paralelizuar punĂ«t gjatĂ« optimizimit LTO nĂ« kontekstin e tĂ« gjithĂ« programit (WPA, Whole-program Analysis). PĂ«r ndĂ«rveprimin me jobserver, si parazgjedhje pĂ«rdoren kanalet me emĂ«r (—jobserver-style=fifo).
  • NĂ« analizuesin static (-fanalyzer) janĂ« propozuar 20 kontrolle tĂ« reja diagnostike, pĂ«rfshirĂ« "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer-infinite-recursion", "-Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • ËshtĂ« implementuar mundĂ«sia e pĂ«rfundimit tĂ« diagnostikĂ«s nĂ« formatin SARIF, i bazuar nĂ« JSON. Formati i ri mund tĂ« pĂ«rdoret pĂ«r tĂ« marrĂ« rezultatet e analizĂ«s statike (GCC -fanalyzer), si dhe pĂ«r tĂ« marrĂ« informacionet mbi paralajmĂ«rimet dhe gabimet. Aktivizimi bĂ«het nĂ«pĂ«rmjet opsionit "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", ku opsionet me "json" çojnĂ« nĂ« shkarkimin nĂ« variantin specifik tĂ« formatit JSON pĂ«r GCC.
  • JanĂ« implementuar disa mundĂ«si tĂ« pĂ«rcaktuara nĂ« standardin e gjuhĂ«s C23, si konstanta nullptr pĂ«r pĂ«rcaktimin e pointerĂ«ve null, thjeshtimi i pĂ«rdorimit tĂ« listave me numĂ«r variabĂ«l argumentesh (variadic), zgjerimi i mundĂ«sive tĂ« enumeratoreve, atributi noreturn, leja e pĂ«rdorimit tĂ« constexpr dhe auto gjatĂ« pĂ«rcaktimit tĂ« objekteve, operatorĂ«t typeof dhe typeof_unqual, fjalĂ«t e reja kyçe alignas, alignof, bool, false, static_assert, thread_local dhe true, dhe leja pĂ«r tĂ« specifikuar kllapa tĂ« zbrazĂ«ta gjatĂ« inicializimit.
  • JanĂ« implementuar disa mundĂ«si tĂ« pĂ«rcaktuara nĂ« standardin C++23, si mundĂ«sia e vendosjes sĂ« etiketave nĂ« fund tĂ« shprehjeve tĂ« pĂ«rbĂ«ra, pĂ«rputhshmĂ«ria me tipin char8_t, direktiva e preprocessorit #warning, sekuencat e escape tĂ« ndara (\u{}, \o{}, \x{}) dhe tĂ« emĂ«ruar (‘\N{LATIN CAPITAL LETTER A}’), static operator(), static operator[], operatori i barazisĂ« brenda shprehjeve, pĂ«rjashtimi i disa kufizimeve mbi pĂ«rdorimin e constexpr, mbĂ«shtetje pĂ«r UTF-8 nĂ« tekstet burimore.
  • NĂ« libstdc++ Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetja eksperimentale pĂ«r standardet C++20 dhe C++23, pĂ«r shembull, Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r skedarin me emĂ«r <format> dhe std::format, janĂ« zgjeruar mundĂ«sitĂ« e skedarit me emĂ«r <ranges>, janĂ« shtuar tipe tĂ« tjerĂ« me pikĂ« flotante dhe janĂ« implementuar skedarĂ«t me emĂ«r <experimental/scope> dhe <experimental/synchronized_value>.
  • JanĂ« shtuar atributet e reja tĂ« funksioneve pĂ«r dokumentimin se nĂ« njĂ« varg tĂ« plotĂ« integer dĂ«rgohet njĂ« identifikues skedari: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))" dhe "__attribute__((fd_arg_write(N)))". Atributet e pĂ«rmendura mund tĂ« pĂ«rdoren nĂ« analizuesin static (-fanalyzer) pĂ«r tĂ« identifikuar funksionimin e papĂ«rshtatshĂ«m me identifikuesit e skedarit.
  • ËshtĂ« shtuar njĂ« atribut i ri "__attribute__((assume(EXPR)))", me anĂ« tĂ« cilit mund t’i tregoni kompilatorit qĂ« shprehja Ă«shtĂ« e vĂ«rtetĂ« dhe kompilatori mund ta pĂ«rdorĂ« kĂ«tĂ« fakt pa e llogaritur shprehjen.
  • ËshtĂ« shtuar flagu "-fstrict-flex-arrays=[level]" pĂ«r tĂ« zgjedhur sjelljen gjatĂ« trajtimit tĂ« elementeve fleksibĂ«l tĂ« vargjeve nĂ« struktura (Flexible Array Members, varg me madhĂ«si tĂ« paqartĂ« nĂ« fund tĂ« strukturĂ«s, si "int b[]").
  • ËshtĂ« shtuar flagu "-Wenum-int-mismatch" pĂ«r tĂ« dhĂ«nĂ« paralajmĂ«rime nĂ« rast tĂ« mospĂ«rputhjes midis tipit enum dhe tipit tĂ« plotĂ«.
  • NĂ« frontend-in pĂ«r gjuhĂ«n Fortran Ă«shtĂ« realizuar mbĂ«shtetje e plotĂ« pĂ«r finalizimin.
  • NĂ« frontend-in pĂ«r gjuhĂ«n Go Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r funksione dhe tipe tĂ« pĂ«rgjithshĂ«m (gjenerikĂ«), duke siguruar pĂ«rputhshmĂ«rinĂ« me paketat pĂ«r gjuhĂ«n Go 1.18.
  • NĂ« backendin pĂ«r arkitekturĂ«n AArch64 Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) dhe Arm Neoverse V2 (neoverse-v2). NĂ« opsionin "-march=" Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r argumentet "armv9.1-a", "armv9.2-a" dhe "armv9.3-a". ËshtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimet e procesorĂ«ve FEAT_LRCPC, FEAT_CSSC dhe FEAT_LSE2.
  • NĂ« backendin pĂ«r arkitekturĂ«n ARM Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r CPU STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) dhe Arm Cortex-M85 (cortex-m85).
  • NĂ« backendin pĂ«r arkitekturĂ«n x86 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r procesorĂ«t Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, dhe gjithashtu pĂ«r procesorĂ«t AMD Zen 4 (znver4). JanĂ« realizuar zgjerimet e propozuara nĂ« procesorĂ«t Intel tĂ« arkitekturĂ«s sĂ« setit tĂ« komandave AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT dhe AMX-COMPLEX. PĂ«r gjuhĂ«t C dhe C++ nĂ« sisteme me SSE2 Ă«shtĂ« ofruar tipi __bf16.
  • NĂ« backendin e gjenerimit tĂ« kodit pĂ«r GPU AMD Radeon (GCN) Ă«shtĂ« realizuar mundĂ«sia e pĂ«rdorimit tĂ« pĂ«rshpejtuesve AMD Instinct MI200 pĂ«r tĂ« rritur performancĂ«n OpenMP/OpenACC. ËshtĂ« pĂ«rmirĂ«suar vektorizimi duke pĂ«rdorur instrukcione SIMD.
  • JanĂ« zgjeruar ndjeshĂ«m aftĂ«sitĂ« e backendit pĂ«r platformĂ«n LoongArch.
  • NĂ« backendin pĂ«r arkitekturĂ«n RISC-V Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r CPU T-Head’s XuanTie C906 (thead-c906). ËshtĂ« realizuar mbĂ«shtetje pĂ«r pĂ«rpunuesit vektorialĂ«, tĂ« pĂ«rcaktuar nĂ« specifikimin e Zgjerimit Vektorial RISC-V Intrinsic 0.11. ËshtĂ« shtuar mbĂ«shtetje pĂ«r 30 zgjerime tĂ« specifikimeve RISC-V.
  • GjatĂ« formimit tĂ« objekteve tĂ« pĂ«rbashkĂ«ta me opsionin "-shared" Ă«shtĂ« ndaluar shtimi i kodit tĂ« nisjes pas shtimit tĂ« ambientit pĂ«r kalkulime me pikĂ« fluturuese, nĂ«se janĂ« aktivizuar optimizimet "-Ofast", "-ffast-math" ose "-funsafe-math-optimizations".
  • MbĂ«shtetje pĂ«r formatin e debuggimit DWARF Ă«shtĂ« realizuar nĂ« pothuajse tĂ« gjitha konfigurimet.
  • ËshtĂ« shtuar opsioni "-gz=zstd" pĂ«r kompresimin e informacionit tĂ« debuggimit duke pĂ«rdorur algoritmin Zstandard. ËshtĂ« ndaluar mbĂ«shtetje pĂ«r modin e vjetĂ«r tĂ« kompresimit tĂ« informacionit tĂ« debuggimit "-gz=zlib-gnu".
  • ËshtĂ« shtuar mbĂ«shtetje fillestare pĂ«r OpenMP 5.2 (Open Multi-Processing) dhe Ă«shtĂ« vazhduar realizimi i standarteve OpenMP 5.0 dhe 5.1, tĂ« cilat pĂ«rcaktojnĂ« API dhe mĂ«nyrat e pĂ«rdorimit tĂ« metodave tĂ« programimit paralel nĂ« sisteme me shumĂ« bĂ«rthama dhe hibridĂ« (CPU+GPU/DSP) me memorie tĂ« pĂ«rbashkĂ«t dhe blloqe vektorizimi (SIMD).
  • ËshtĂ« ndaluar mbĂ«shtetje pĂ«r formatin e vjetĂ«r tĂ« ruajtjes sĂ« informacionit tĂ« debuggimit "STABS" (i pĂ«fshirĂ« me opsionet -gstabs dhe -gxcoff), i krijuar nĂ« vitet 1980 dhe pĂ«rdorur nĂ« debugguesin dbx.
  • ËshtĂ« shpallur e vjetruar mbĂ«shtetja pĂ«r Solaris 11.3 (kodi pĂ«r mbĂ«shtetje tĂ« kĂ«saj platforme do tĂ« hiqet nĂ« lĂ«shimin e ardhshĂ«m).

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster