Te tukunga o te huinga whakahiato GCC 13

I muri i te tau o te whakawhanaketanga, kua tukuna te tukunga o te huinga whakahiato GCC 13.1 kore utu, ko te tukunga nui tuatahi i roto i te peka GCC 13.x hou. I raro i te kaupapa nama tuku hou, i whakamahia te putanga 13.0 i te wa o te whakawhanaketanga, a i mua tata i te tukunga o te GCC 13.1, kua wehe kee te peka GCC 14.0, no reira ka puta te tukunga nui o GCC 14.1.

Nga huringa matua:

  • I mauhia e te GCC tetahi waahanga o mua mo te hanga kaupapa i roto i te reo kaupapa Modula-2. Ka tautokohia te waehere hanga whare e rite ana ki nga reo PIM2, PIM3, me PIM4, me te paerewa ISO kua whakaaetia mo taua reo.
  • Ko tetahi o mua me te whakatinanatanga o te whakahiato reo Rust i whakaritea e te kaupapa gccrs (GCC Rust) kua taapirihia ki te rakau puna GCC. I te tirohanga o naianei, kua tohua te forntend hei whakamatautau me te monokia ma te taunoa. I te wa e reri ana te pito o mua (e tumanakohia ana i te tukunga e whai ake nei), ka taea te whakamahi i te kete taputapu GCC paerewa hei whakahiato i nga kaupapa Rust me te kore e hiahia ki te whakauru i te rustc compiler i hangaia ma te whakamahi i nga whanaketanga LLVM.
  • Hono-i-Step Optimization (LTO) he taapiri tautoko mo te tūmau mahi (tumau mahi) e tiakina ana e te kaupapa hanga GNU ki te arotau i nga mahi hanga whakarara puta noa i nga miro maha. I roto i te GCC, ka whakamahia te tumau mahi ki te whakarara i nga mahi i te wa e arotau ana a LTO i roto i te horopaki o te hotaka katoa (WPA, Whole-program Analysis). Ko nga paipa kua whakaingoatia (--jobserver-style=fifo) ka whakamahia taunoa hei korero ki te kaituku mahi.
  • Ko te kaitirotiro pateko (-fanalyzer) e tuku ana i nga arowhai tātaritanga hou e 20, tae atu ki te "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- mutunga kore -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Ko te kaha ki te whakaputa diagnostics i roto i te whakatakotoranga SARIF i runga i te JSON kua whakatinanahia. Ka taea te whakamahi i te whakatakotoranga hou ki te tiki hua tātaritanga pateko (GCC -fanalyzer), me te whiwhi korero mo nga whakatupato me nga hapa. Ka oti te whakaahei ma te kowhiringa "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", i reira ko nga whiringa me te "json" ka puta he putanga ki roto i te momo GCC-motuhake o te hōputu JSON .
  • I whakatinanahia etahi ahuatanga kua tautuhia i roto i te paerewa C23 C, penei i te nullptr tamau mo te tautuhi i nga tohu tohu kore, he maamaa ake te whakamahi i nga rarangi me te maha rereke o nga tautohetohe (variadic), te whakawhānui ake i nga kaha o nga enums, te huanga noreturn, ka taea te whakamahi constexpr me te auto i te wa e tautuhi ana i nga mea, te momo me te momo_kaore i rite, nga kupu matua hou e whakahāngai ana, alignof, bool, teka, static_assert, thread_local me te pono, ka taea nga reurangi kau mo te arawhiti.
  • I whakatinanahia etahi ahuatanga kua tautuhia i roto i te paerewa C++23, penei i te kaha ki te whakatakoto tohu ki te mutunga o nga kupu whakahiato, te hototahi ki te momo char8_t, te #warning preprocessor directive, i whakataa e (\u{}, \o{} , \x{}), me te whakaingoatia ('\N{LATIN CAPITAL LETTER A}') nga raupapa mawhiti, static operator(), static operator[], riterite i roto i nga korero, haunga etahi here mo te whakamahi constexpr, tautoko mo UTF-8 i roto i nga tuhinga puna.
  • Kua pai ake a libstdc++ i te tautoko whakamatautau mo nga paerewa C++20 me C++23, penei i te taapiri i te tautoko kōnae pane. me te std::hōputu, ngā āheinga kōnae pane whakaroa , etahi atu momo ira maangi kua taapirihia, kua whakatinanahia nga konae pane Na .
  • Kua taapirihia nga huanga mahi hou ki te tuhi ka tukuna he kaiwhakaahua konae ki te taurangi tauoti: "__huanga__((fd_arg(N)))", "__huanga__((fd_arg_read(N)))", me "__huanga__((fd_arg_write(N)) )) ". Ka taea te whakamahi i nga huanga kua tohua i roto i te kaitirotiro pateko (-fanalyzer) ki te kite i nga mahi he me nga kaiwhakaahua konae.
  • He huanga hou "__attribute__((assume(EXPR)))" kua taapirihia, ka taea e koe te kii ki te kaitoi he pono te korero, a ka taea e te kaitoi te whakamahi i tenei meka me te kore e arotake i te korero.
  • Kua taapirihia te haki "-fstrict-flex-arrays=[taumata]" hei kowhiri i te whanonga i te wa e tukatuka ana i tetahi huānga huānga ngawari i roto i nga hanganga (Nga Mema Huanga Hangarau, he huinga o te rahi kore mutunga i te mutunga o te hanganga, hei tauira, "int b[] ").
  • Kua taapirihia te haki "-Wenum-int-mismatch" ki te whakaputa whakatupato mena he koretake i waenga i te momo tatau me te momo tauoti.
  • Ko te pito-mua o Fortran he tautoko katoa mo te whakaotinga.
  • Ko te tautoko mo nga mahi me nga momo (generics) kua taapirihia ki te pito o mua mo te reo Go, me te hototahi ki nga kohinga mo te reo Go 1.18 kua whakapumau.
  • Ka tautokohia e te tuara AArch64 te CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), me Arm Neoverse V2 (neoverse -v2) . Ko te tautoko mo nga tohenga "armv9.1-a", "armv9.2-a", me "armv9.3-a" kua taapirihia ki te whiringa "-march=". He tautoko taapiri mo FEAT_LRCPC, FEAT_CSSC me FEAT_LSE2 toronga tukatuka.
  • Ko te tautoko mo te STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c), me Arm Cortex-M85 (cortex-m85) CPU kua taapirihia ki te tuara hoahoanga ARM.
  • Ko te tautoko mo te Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, me nga tukatuka AMD Zen 86 (znver4) kua taapirihia ki te x4 backend. Ko te AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, me te AMX-COMPLEX kua whakatinanahia nga toronga hoahoanga hoahoanga i whakaarohia i roto i nga tukatuka Intel. Mo C me C++ i runga i nga punaha whai SSE2, ka tukuna te momo __bf16.
  • Ko te whakangao waehere tuara mo AMD Radeon GPUs (GCN) ka whakatinana i te kaha ki te whakamahi i nga kaiwhakatere AMD Instinct MI200 hei whakapai ake i te mahi OpenMP/OpenACC. He pai ake te vectorization ma te whakamahi i nga tohutohu SIMD.
  • Kua tino whakawhänuihia nga kaha ki muri mo te papaaho LoongArch.
  • He tautoko taapiri mo te CPU T-Head's XuanTie C906 (thead-c906) i te RISC-V backend. I whakatinanahia te tautoko mo nga kaikawe vector kua tautuhia i roto i te RISC-V Vector Extension Intrinsic 0.11 whakaingoatanga. He tautoko taapiri mo nga taapiri 30 RISC-V.
  • I te wa e whakaputa ana i nga taonga tiritahi me te whiringa "-shared", kaore e taapirihia te waehere whakaoho i muri i te taapiri i te taiao tohu maanu mena ka whakahohehia nga arotautanga "-Ofast", "-ffast-math", "-funsafe-math-optimizations" ranei. .
  • Ka whakatinanahia te tautoko mo te whakatakotoranga patuiro DWARF i roto i te tata ki nga whirihoranga katoa.
  • He taapiri "-gz=zstd" ki te kopiri i nga korero patuiro ma te whakamahi i te Zstandard algorithm. Kua tangohia te tautoko mo te aratau whakamohiotanga korero patuiro "-gz=zlib-gnu".
  • Ko te tautoko tuatahi mo OpenMP 5.2 (Open Multi-Processing) kua taapirihia me te whakatinana i nga paerewa OpenMP 5.0 me 5.1 kei te haere tonu, te tautuhi i nga API me nga tikanga mo te tono tikanga whakarara i runga i nga punaha maha-matua me te ranu (CPU + GPU / DSP) me te te tiritiri mahara me nga waeine vectorization (SIMD).
  • Ko te tautoko kua whakakorehia mo te whakatakotoranga rokiroki korero patuiro STABS tuku iho (whakahohea me nga whiringa -gstabs me -gxcoff), i hangaia i nga tau 1980 ka whakamahia ki te dbx patuiro.
  • Ko te tautoko kua whakakorehia mo te Solaris 11.3 (ka tangohia te waehere hei tautoko i tenei turanga i roto i te tukunga a muri ake nei).

Source: opennet.ru

Tāpiri i te kōrero