Lëshimi i paketës së kompilerëve GCC 14

Pas një vit zhvillimi, u publikua lëshimi i paketës së lirë të kompilerëve GCC 14.1, lëshimi i parë i rëndësishëm në degën e re GCC 14.x. Sipas skemës së re të numërimit të lëshimeve, versioni 14.0 u përdor gjatë zhvillimit, dhe pak para daljes së GCC 14.1, u ndan një degë e re GCC 15.0, mbi të cilën do të formohet lëshimi i ardhshëm i rëndësishëm GCC 15.1.

Ndryshimet kryesore:

  • JanĂ« zgjeruar ndjeshĂ«m mundĂ«sitĂ« pĂ«r analizĂ«n statike tĂ« kodit nĂ« gjuhĂ«n C, tĂ« disponueshme pĂ«rmes opsionit «-fanalyzer» (analiza statike pĂ«r gjuhĂ«n C++ ende nuk Ă«shtĂ« sjellĂ« nĂ« formĂ«n e duhur). ËshtĂ« forcuar analiza e operacioneve me vargje dhe kontrolli i pranisĂ« sĂ« simbolit zero pĂ«rfundimtar tĂ« vargut. ËshtĂ« shtuar njĂ« paralajmĂ«rim i ri «-Wanalyzer-infinite-loop» pĂ«r identifikimin e cikleve infinit. ËshtĂ« shtuar njĂ« sĂ«rĂ« paralajmĂ«rimesh «-Wanalyzer-tainted-*» pĂ«r identifikimin e problemeve me verifikimin e tĂ« dhĂ«nave. JanĂ« zgjeruar mundĂ«sitĂ« e paralajmĂ«rimit «-Wanalyzer-out-of-bounds» pĂ«r identifikimin e mbingarkesave tĂ« tamponit, pĂ«r shembull, Ă«shtĂ« shtuar mundĂ«sia e shfaqjes sĂ« njĂ« diagrami me vizualizimin e gjendjes qĂ« çon nĂ« mbingarkim.
    Lëshimi i paketës së kompilerëve GCC 14
  • Ă«shtĂ« shtuar njĂ« opsion i ri ndĂ«rtimi «—enable-host-pie» pĂ«r ndĂ«rtimin e skedareve ekzekutivĂ« tĂ« kompilerit nĂ« modin PIE (Position Independent Executable), si dhe opsioni «—enable-host-bind-now» pĂ«r lidhjen me opsionet «-Wl,-z,now».
  • Ă«shtĂ« shtuar njĂ« opsion «-fhardened», qĂ« pĂ«rfshin flamuj pĂ«r forcimin e sigurisĂ« (-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,now -fstack-protector-strong -fstack-clash-protection -fcf-protection=full).
  • Ă«shtĂ« shtuar opsioni «-fharden-control-flow-redundancy» pĂ«r tĂ« shtuar nĂ« fund tĂ« funksioneve kodin pĂ«r identifikimin e disa formave tĂ« sjelljes sĂ« paqartĂ«, tĂ« cilat mund tĂ« çojnĂ« nĂ« shkeljen e rendit normal tĂ« ekzekutimit (control flow) si rezultat i aplikimeve tĂ« eksploitiveve qĂ« ndryshojnĂ« treguesit e ruajtur nĂ« memorie pĂ«r funksionet dhe kalojnĂ« kontrollin nĂ« mes tĂ« funksioneve.
  • Ă«shtĂ« shtuar njĂ« atribut i ri tipash «hardbool», qĂ« lejon pĂ«rcaktimin e vlerave tĂ« asociuara me atributet true dhe false, pĂ«r tĂ« vĂ«shtirĂ«suar disa lloje sulmesh.
  • Ă«shtĂ« shtuar njĂ« atribut i ri tipash strub pĂ«r menaxhimin e zerozimit tĂ« kadrove tĂ« stack me tĂ« dhĂ«na funksionesh dhe variablash pas daljes nga funksioni ose pas ndodhisĂ« sĂ« njĂ« pĂ«rjashtimi.
  • Ă«shtĂ« shtuar opsioni -finline-stringops pĂ«r tĂ« pĂ«rfshirĂ« inline-shkĂ«putjen e funksioneve memcmp, memcpy, memmove dhe memset, edhe kur kjo nuk Ă«shtĂ« e nevojshme pĂ«r optimizim.
  • Ă«shtĂ« shtuar njĂ« atribut i ri funksionesh null_terminated_string_arg(PARAM_IDX) pĂ«r tĂ« shĂ«nuar parametrat qĂ« duhet tĂ« interpretohen si vargje qĂ« pĂ«rfundojnĂ« me simbolin zero.
  • NĂ« vektorizues Ă«shtĂ« zbatuar mbĂ«shtetje pĂ«r vektorizimin e cikleve qĂ« pĂ«rmbajnĂ« shprehje «break».
  • Ă«shtĂ« shtuar mbĂ«shtetje fillestare pĂ«r versionin paraprak tĂ« specifikimit OpenMP 6.0 (Open Multi-Processing) dhe Ă«shtĂ« vazhduar realizimi i standardeve OpenMP 5.0, 5.1 dhe 5.2, qĂ« pĂ«rcaktojnĂ« API dhe mĂ«nyrat e aplikimit 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Ă« pĂ«rmirĂ«suar realizimi i specifikimeve tĂ« programimit paralel OpenACC 2.7 dhe 3.2, qĂ« pĂ«rcaktojnĂ« mjete pĂ«r vendosjen (offloading) tĂ« operacioneve nĂ« GPU dhe procesorĂ« tĂ« specializuar, si NVIDIA PTX.
  • PĂ«r C, C++ dhe Objective-C Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r zgjerimet «__has_feature» dhe «__has_extension», qĂ« pĂ«rdoren nĂ« Clang.
  • JanĂ« zbatuar mundĂ«sitĂ« e pĂ«rcaktuara nĂ« standardin e ardhshĂ«m C23, siç janĂ« tipet «_BitInt (N)» dhe «unsigned _BitInt (N)». Strukturat, bashkĂ«sitĂ« dhe enumerimet Ă«shtĂ« lejuar tĂ« pĂ«r definihen mĂ« shumĂ« se njĂ« herĂ« nĂ« njĂ« zonĂ« tĂ« dukshme me tĂ« njĂ«jtin pĂ«rmbajtje dhe etiketĂ« tĂ« pĂ«rsĂ«ritur. ËshtĂ« shtuar mbĂ«shtetje pĂ«r skedarin e titujve stdckdint.h. PĂ«rfshirja e mbĂ«shtetjes pĂ«r elementĂ«t C23 Ă«shtĂ« propozuar me flamuj «-std=c23», «-std=gnu23» dhe «-Wc11-c23-compat».
  • PĂ«r gjuhĂ«n C Ă«shtĂ« shtuar shprehja «#pragma GCC novector», qĂ« çaktivizon vektorizimin e cikleve tĂ« anotuara.
  • JanĂ« shtuar mundĂ«si qĂ« lidhen me standardin C++23. ËshtĂ« shtuar mbĂ«shtetje pĂ«r mekanizmin «Deducing this», qĂ« lejon pĂ«rdorimin nĂ« template tĂ« parametrave me atributin «this» dhe u jep mundĂ«sinĂ« funksioneve tĂ« klasĂ«s tĂ« dinĂ« kategorinĂ« e shprehjes (pĂ«r shembull, nĂ«se Ă«shtĂ« konstant), pĂ«r tĂ« cilĂ«n kjo funksion Ă«shtĂ« thirrur. ËshtĂ« realizuar njĂ« kĂ«rkesĂ«, sipas sĂ« cilĂ«s tĂ« gjitha funksionet qĂ« thĂ«rrasin funksione me atributin consteval gjithashtu bĂ«hen consteval, pra ekzekutohen gjatĂ« kompilimit. JanĂ« zbutur disa kĂ«rkesa pĂ«r «constexpr».
  • JanĂ« shtuar funksione tĂ« lidhura me standardin e ri C++2c (C++26). PĂ«r shembull, Ă«shtĂ« mundĂ«suar pĂ«rdorimi i literalĂ«ve string nĂ« kontekste ku ata nuk pĂ«rdoren pĂ«r inicializimin e njĂ« vargu karakteresh dhe nuk i pĂ«rkasin kodit pĂ«rfundimtar, por vetĂ«m pĂ«rdoren gjatĂ« kompilimit pĂ«r mesazhe diagnostike dhe parapĂ«rpunim. ËshtĂ« mundĂ«suar pĂ«rdorimi i disa variablave mbushĂ«s me emrin „_” nĂ« njĂ« ambient tĂ« vetĂ«m. Ekzekutimi i konvertimeve implicit tĂ« vlerave tĂ« enumeruara nĂ« llogaritje aritmetike Ă«shtĂ« shpallur i skaduar.
  • NĂ« libstdc++ Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«r standardet C++20, C++23 dhe C++26.
  • NĂ« kompilerin pĂ«r gjuhĂ«n Fortran Ă«shtĂ« nisur puna pĂ«r mbĂ«shtetje tĂ« standardit Fortran 2023 (-std=f2023).
  • ËshtĂ« shpallur e skaduar mbĂ«shtetje pĂ«r zgjerimin GCC, qĂ« lejon caktimin e njĂ« elementi fleksibĂ«l tĂ« vargut (varg me madhĂ«si tĂ« pacaktuar, pĂ«r shembull, „int b[]”) jo nĂ« fund tĂ« strukturĂ«s (Flexible Array Members). Vargu me madhĂ«si tĂ« pacaktuar do tĂ« mund tĂ« pĂ«rdoret vetĂ«m nĂ« fund tĂ« strukturĂ«s.
  • NĂ« backend pĂ«r arkitekturĂ«n AArch64 Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r CPU Ampere-1B (ampere1b), Arm Cortex-A520 (cortex-a520), Arm Cortex-A720 (cortex-a720), Arm Cortex-X4 (cortex-x4) dhe Microsoft Cobalt-100 (cobalt-100). PĂ«r pĂ«rdorim nĂ« opsionet „-mcpu=” dhe „-mtune=” janĂ« shtuar identifikues tĂ« rinj tĂ« CPU generic, generic-armv8-a dhe generic-armv9-a. ËshtĂ« realizuar mbĂ«shtetje pĂ«r zgjerimet Arm SME dhe SME2 (Streaming Matrix Extensions). Optimizime specifike pĂ«r arkitekturĂ«n AArch64 janĂ« realizuar.
  • NĂ« backend pĂ«r arkitekturĂ«n ARM Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r CPU Cortex-M52 (cortex-m52 nĂ« opsionet „-mcpu=” dhe „-mtune=”).
  • NĂ« backend pĂ«r gjenerimin e kodit pĂ«r GPU AMD Radeon (GCN) Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r GPU AMD Radeon gfx90c (GCN5), gfx1030, gfx1036 (RDNA2), gfx1100 dhe gfx1103 (RDNA3). Performanca pĂ«r pajisjet AMD tĂ« serive MI100 dhe MI200 Ă«shtĂ« pĂ«rmirĂ«suar. Arkitektura e pajisjeve gfx900 (Vega) Ă«shtĂ« aktivizuar si standard.
  • NĂ« backend pĂ«r arkitekturĂ«n x86 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimet e arkitekturĂ«s sĂ« setit tĂ« komandave Intel AVX10.1, Intel APX (pĂ«r pjesĂ«risht), Intel AVX-VNNI-INT16, Intel SHA512, Intel SM3, Intel SM4, Intel USER_MSR.

    ËshtĂ« shtuar mbĂ«shtetje pĂ«r CPU AMD tĂ« bazuar nĂ« bĂ«rthamat Zen 5 (-march=znver5), si dhe pĂ«r procesorĂ« Intel Clearwater Forest (-march=clearwaterforest), Arrow Lake (-march=arrowlake), Arrow Lake S (-march=arrowlake-s), Lunar Lake (-march=lunarlake) dhe Panther Lake (-march=pantherlake). ËshtĂ« shtuar opsioni „-m[no-]evex512” pĂ«r tĂ« menaxhuar angazhimin e vektorĂ«ve 512-bitĂ« (ndryshe aktivizohet me mbĂ«shtetje AVX512F). MbĂ«shtetje pĂ«r CPU Intel Xeon Phi Ă«shtĂ« shpallur e skaduar.

  • JanĂ« zgjeruar mundĂ«sitĂ« e backend pĂ«r platformat LoongArch, AVR dhe RISC-V.
  • JanĂ« zgjeruar mundĂ«sitĂ« e daljes sĂ« diagnostikĂ«s nĂ« formatin SARIF, i bazuar nĂ« JSON. Formati SARIF mund tĂ« pĂ«rdoret pĂ«r tĂ« marrĂ« rezultate tĂ« analizĂ«s statike (GCC -fanalyzer), si dhe pĂ«r tĂ« marrĂ« informacion pĂ«r paralajmĂ«rimet dhe gabimet.
  • MbĂ«shtetje pĂ«r arkitekturat e objektivave ia64 dhe nios2, qĂ« pĂ«rdoren nĂ« procesorĂ«t Intel Itanium dhe Nios II, Ă«shtĂ« shpallur e skaduar dhe do tĂ« hiqet nĂ« versionin e ardhshĂ«m tĂ« GCC.

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