Pagpagawas sa GCC 14 compiler suite

Pagkahuman sa usa ka tuig nga pag-uswag, gipagawas ang libre nga GCC 14.1 compiler suite, ang una nga hinungdanon nga pagpagawas sa bag-ong sanga sa GCC 14.x. Ubos sa bag-ong iskema sa pag-numero sa pagpagawas, ang bersyon 14.0 gigamit sa panahon sa pag-uswag, ug sa wala pa ang pagpagawas sa GCC 14.1, ang sanga sa GCC 15.0 na-forked na, diin ang sunod nga hinungdanon nga pagpagawas sa GCC 15.1 maporma.

Panguna nga mga pagbag-o:

  • Ang mga posibilidad alang sa static nga pagtuki sa code sa C nga pinulongan, nga magamit pinaagi sa "-fanalyzer" nga kapilian, gipalapdan pag-ayo (static nga pagtuki alang sa C ++ nga pinulongan wala pa madala sa tukma nga porma). Ang pag-analisar sa mga operasyon nga adunay mga kuwerdas ug ang pagsusi alang sa presensya sa usa ka pisi nga nagtapos sa null nga karakter gipalig-on. Gidugang ang bag-ong pasidaan nga "-Wanalyzer-infinite-loop" aron makit-an ang walay katapusan nga mga loop. Gidugang ang usa ka serye sa "-Wanalyzer-tainted-*" nga mga pasidaan aron mahibal-an ang mga problema sa pag-validate sa input. Ang "-Wanalyzer-out-of-bounds" nga pasidaan gipauswag aron mahibal-an ang mga pag-awas sa buffer, pananglitan, ang abilidad sa pagpakita sa usa ka tsart nga naghulagway sa estado nga nagpadulong sa pag-awas gidugang.
    Pagpagawas sa GCC 14 compiler suite
  • Gidugang ang usa ka bag-ong kapilian sa pagtukod nga "-enable-host-pie" alang sa pagtukod sa compiler executable file sa PIE (Position Independent Executable) mode, ingon man usa ka kapilian nga "-enable-host-bind-now" alang sa pagbugkos sa mga kapilian "-Wl , -z, karon."
  • Gidugang ang bag-ong kapilian nga "-fhardened" nga naglakip sa mga bandila aron mapalambo ang seguridad (-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,karon -fstack-protector -strong -fstack-clash-protection -fcf-protection=puno).
  • Gidugang ang "-fharden-control-flow-redundancy" nga kapilian aron idugang sa katapusan sa mga function sa code aron mahibal-an ang pipila ka mga porma sa wala mahibal-an nga pamatasan nga mahimo’g mosangput sa pagkontrol sa dagan tungod sa mga pagpahimulos nga nagbag-o sa gitipig nga mga pointer sa function sa memorya ug pagbalhin sa kontrol sa tunga. sa mga gimbuhaton.
  • Gidugang ang usa ka bag-ong "hardbool" nga tipo nga hiyas nga nagtugot kanimo sa pag-override sa mga kantidad nga adunay kalabotan sa tinuod ug bakak nga mga hiyas aron mahimo nga labi ka lisud ang pipila nga mga matang sa pag-atake.
  • Gidugang ang usa ka bag-ong strub type attribute aron makontrol ang paghawan sa mga stack frame nga adunay function ug variable data pagkahuman sa usa ka function exit o usa ka eksepsiyon ang ilabay.
  • Gidugang nga kapilian -finline-stringops aron mahimo ang inline nga pagpalapad sa memcmp, memcpy, memmove ug memset nga mga gimbuhaton, bisan kung dili kinahanglan alang sa pag-optimize.
  • Gidugang ang usa ka bag-ong function attribute null_terminated_string_arg(PARAM_IDX) aron markahan ang mga parameter nga kinahanglan isipon nga null-terminated strings.
  • Gisuportahan sa vectorizer ang vectorization sa mga loop nga adunay mga ekspresyon nga "break".
  • Gidugang ang inisyal nga suporta alang sa preliminary nga bersyon sa OpenMP 6.0 (Open Multi-Processing) nga detalye ug padayon nga pagpatuman sa OpenMP 5.0, 5.1 ug 5.2 nga mga sumbanan, nga naghubit sa mga API ug mga pamaagi sa pagpadapat sa parallel nga mga pamaagi sa programming sa multi-core ug hybrid (CPU+ GPU/DSP) nga mga sistema nga adunay shared memory ug blocks vectorization (SIMD).
  • Gipauswag nga pagpatuman sa OpenACC 2.7 ug 3.2 parallel programming specifications, nga naghubit sa mga himan alang sa offloading nga mga operasyon sa GPUs ug mga espesyal nga processor sama sa NVIDIA PTX.
  • Para sa C, C++ ug Objective-C, gipatuman ang suporta sa "__has_feature" ug "__has_extension" nga gigamit sa Clang.
  • Gipatuman ang mga feature sa umaabot nga C-standard nga C23, sama sa mga tipo nga “_BitInt (N)” ug “unsigned _BitInt (N))”. Gitugotan ang mga istruktura, unyon, ug enumerasyon nga mahubit labaw pa sa kausa sa parehas nga sakup, makita nga adunay parehas nga sulud ug gibalikbalik nga tag. Gidugang nga suporta alang sa stdckdint.h header file. Ang mga bandera nga "-std=c23", "-std=gnu23" ug "-Wc23-c11-compat" gisugyot aron mahimo ang suporta sa mga elemento sa C23.
  • Alang sa C nga pinulongan, ang ekspresyon nga "#pragma GCC novector" gidugang, nga nagpugong sa vectorization sa annotated loops.
  • Gidugang nga mga bahin nga may kalabutan sa C++ 23 nga sumbanan. Gidugang nga suporta alang sa mekanismo nga "Deducing this", nga nagtugot kanimo sa paggamit sa mga parameter nga adunay "kini" nga hiyas sa template ug nagpaposible nga mahibal-an gikan sa usa ka function sa klase ang kategorya sa ekspresyon (pananglitan, kung kini usa ka kanunay ) diin kini nga function gitawag. Usa ka kinahanglanon ang gipatuman, sumala sa diin ang tanan nga mga gimbuhaton nga nagtawag sa mga gimbuhaton nga adunay consteval attribute nahimo usab nga consteval, i.e. gipatuman sa panahon sa pag-compile. Gi-relax ang pipila ka kinahanglanon para sa "constexpr".
  • Gidugang nga mga bahin nga may kalabotan sa umaabot nga sumbanan sa C++2c (C++26). Pananglitan, posible nga gamiton ang mga literal nga string sa konteksto diin wala kini gigamit sa pag-initialize sa array sa karakter ug dili mahuman sa resulta nga code, apan gigamit lamang sa oras sa pag-compile para sa diagnostic nga mga mensahe ug preprocessing. Gidugang ang abilidad sa paggamit sa daghang mga variable sa placeholder nga adunay ngalan nga "_" sa usa ka scope. Ang implicit nga mga pagkakabig sa mga enumerated values ​​sa mga kalkulasyon sa aritmetika wala na gigamit.
  • Ang libstdc++ nakapauswag sa suporta alang sa C++20, C++23 ug C++26 nga mga sumbanan.
  • Sa Fortran compiler, nagsugod na ang trabaho sa pagsuporta sa Fortran 2023 standard (-std=f2023).
  • Suporta alang sa usa ka GCC extension nga nagtugot kanimo sa pagpiho sa usa ka flexible array element (usa ka han-ay sa dili matino nga gidak-on, sama sa "int b[]") nga dili sa katapusan sa usa ka istruktura (Flexible Array Members) wala na gigamit. Ang usa ka han-ay sa dili tino nga gidak-on mahimo ra magamit sa katapusan sa istruktura.
  • Ang backend alang sa AArch64 nga arkitektura nagsuporta sa CPU Ampere-1B (ampere1b), Arm Cortex-A520 (cortex-a520), Arm Cortex-A720 (cortex-a720), Arm Cortex-X4 (cortex-x4) ug Microsoft Cobalt-100 ( kobalt-100). Ang bag-ong generic nga mga identifier sa CPU, generic-armv8-a ug generic-armv9-a, gidugang para magamit sa mga opsyon nga "-mcpu=" ug "-mtune=". Gidugang nga suporta alang sa Arm SME ug SME2 (Streaming Matrix Extension). Gipatuman ang AArch64 nga arkitektura nga piho nga pag-optimize.
  • Sa backend alang sa arkitektura sa ARM, ang suporta alang sa Cortex-M52 nga mga CPU gidugang (cortex-m52 sa "-mcpu=" ug "-mtune=" mga kapilian).
  • Ang code generation backend para sa AMD Radeon GPUs (GCN) nagsuporta sa AMD Radeon gfx90c (GCN5), gfx1030, gfx1036 (RDNA2), gfx1100 ug gfx1103 (RDNA3) GPUs. Mas maayo nga performance para sa AMD MI100 ug MI200 series device. Pinaagi sa default, ang gfx900 (Vega) nga arkitektura sa aparato gi-aktibo.
  • Suporta para sa Intel AVX86, Intel APX (partial), Intel AVX-VNNI-INT10.1, Intel SHA16, Intel SM512, Intel SM3, Intel USER_MSR instruction set architecture extensions gidugang sa x4 architecture backend.

    Gidugang nga suporta alang sa AMD CPU base sa Zen 5 core (-march=znver5), ingon man Intel Clearwater Forest (-march=clearwaterforest), Arrow Lake (-march=arrowlake), Arrow Lake S (-march=arrowlake-s ) mga processor, Lunar Lake (-march=lunarlake) ug Panther Lake (-march=pantherlake). Gidugang ang "-m[no-]evex512" nga kapilian aron makontrol ang paggamit sa 512-bit nga mga vector (gipagana pinaagi sa default kung nagsuporta sa AVX512F. Ang suporta sa Intel Xeon Phi CPU wala na gigamit.

  • Ang mga kapabilidad sa backend alang sa LoongArch, AVR ug RISC-V nga mga plataporma gipalapdan.
  • Ang mga kapabilidad sa diagnostic output sa SARIF format, base sa JSON, gipalapdan. Ang format sa SARIF mahimong magamit aron makakuha og static nga mga resulta sa pag-analisa (GCC -fanalyzer), ingon man aron makakuha og kasayuran sa pasidaan ug sayup.
  • Ang suporta alang sa ia64 ug nios2 nga target nga mga arkitektura nga gigamit sa Intel Itanium ug Nios II nga mga processor wala na gigamit ug tangtangon sa sunod nga pagpagawas sa GCC.

Source: opennet.ru

Pagpalit kasaligan nga pag-host alang sa mga site nga adunay proteksyon sa DDoS, mga server sa VPS VDS 🔥 Pagpalit og kasaligang website hosting nga adunay proteksyon sa DDoS, VPS VDS servers | ProHoster