Sgaoileadh an t-sreath compiler GCC 13

Às deidh bliadhna de leasachadh, chaidh an t-sreath compiler an-asgaidh GCC 13.1 a leigeil ma sgaoil, a ’chiad fhoillseachadh cudromach anns a’ mheur ùr GCC 13.x. A rèir an sgeama àireamhan fuasglaidh ùr, chaidh dreach 13.0 a chleachdadh sa phròiseas leasachaidh, agus goirid mus deach GCC 13.1 a leigeil ma sgaoil, bha meur GCC 14.0 air a dhol a-mach mar-thà, às an deidheadh ​​an ath fhoillseachadh mòr, GCC 14.1, a chruthachadh.

Atharraichean mòra:

  • Tha GCC a’ toirt a-steach aghaidh airson prògraman a chur ri chèile ann an cànan prògramadh Modula-2. Thathas a’ toirt taic do cho-chruinneachadh còd a rèir dualchainntean PIM2, PIM3 agus PIM4, a bharrachd air an inbhe ISO ris an deach gabhail airson cànan sònraichte.
  • Chaidh ceann-aghaidh le buileachadh den inneal-tionndaidh cànain Rust a chaidh ullachadh leis a’ phròiseact gccrs (GCC Rust) a chur ri craobh stòr GCC. Anns an fhoirm a th' ann an-dràsta, tha an deireadh air adhart air a chomharrachadh mar dheuchainneach agus ciorramach gu bunaiteach. Aon uair ‘s gu bheil an aghaidh deiseil (an dùil san ath fhoillseachadh), faodar na h-innealan àbhaisteach GCC a chleachdadh gus prògraman a chuir ri chèile anns a’ chànan Rust gun fheum air an inneal-cruinneachaidh rustc a chuir a-steach, a chaidh a thogail a ’cleachdadh leasachaidhean LLVM.
  • Tha an einnsean Link Time Optimization (LTO) air taic a chuir ris an neach-frithealaidh obrach le taic bhon phròiseact dèanamh GNU gus an coileanadh as fheàrr a dhèanamh de thogalaichean co-shìnte thar ioma snàithlean. Ann an GCC, thathas a’ cleachdadh frithealaiche obrach gus obair a cho-thaobhadh rè optimization LTO ann an co-theacsa a’ phrògraim gu lèir (WPA, Mion-sgrùdadh prògram slàn). Gus eadar-obrachadh le frithealaiche-obrach, bidh pìoban ainmichte air an cleachdadh gu bunaiteach (-jobserver-style=fifo).
  • Bidh an anailisiche statach (-fanalyzer) a ’tabhann 20 sgrùdadh sgrùdaidh ùr, a’ toirt a-steach “-Wanalyzer-out-of-bounds”, “-Wanalyzer-allocation-size”, “-Wanalyzer-deref-before-check”, “-Wanalyzer- infinite -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Chaidh an comas air diagnosachd a chuir a-mach ann an cruth SARIF, stèidhichte air JSON, a chuir an gnìomh. Faodar an cruth ùr a chleachdadh gus toraidhean anailis statach fhaighinn (GCC -fanalyzer), a bharrachd air fiosrachadh rabhaidh is mearachd fhaighinn. Tha an comas air a dhèanamh leis an roghainn "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", far a bheil roghainnean le "json" a' ciallachadh toradh ann an caochladh GCC-sònraichte den fhòrmat JSON .
  • Chuir e an gnìomh cuid de fheartan a tha air am mìneachadh ann an inbhe C23 C, leithid an seasmhach nullptr airson a bhith a’ mìneachadh comharran null, a’ sìmpleachadh cleachdadh liostaichean caochlaideach, a’ leudachadh comasan àireamhachd, am feart noreturn, a’ ceadachadh constexpr agus auto a chleachdadh nuair a thathar a’ mìneachadh nithean, an seòrsa agus typeof_unqual, prìomh fhaclan ùra a’ co-thaobhadh, co-thaobhadh, bool, meallta, static_assert, thread_local agus fìor, a’ leigeil le bragan falamh a bhith air an sònrachadh aig àm tòiseachaidh.
  • Chuir sinn an gnìomh cuid de fheartan a tha air am mìneachadh ann an inbhe C ++23, leithid an comas comharran a chuir aig deireadh abairtean toinnte, co-chòrdalachd leis an t-seòrsa char8_t, an stiùireadh #warning preprocessor, delimited (\u{}, \o{}, \x{}) agus air ainmeachadh ('\N{LITIR LITIR LITIR A}') sreathan teicheadh, gnìomhaiche statach(), gnìomhaiche statach[], gnìomhaiche co-ionannachd taobh a-staigh abairtean, cuir às do chuid de chuingealachaidhean air cleachdadh consstexpr, taic do UTF -8 ann an teacsaichean tùsail.
  • tha libstdc ++ air taic deuchainneach a leasachadh airson inbhean C ++20 agus C ++23, mar eisimpleir, a’ cur taic faidhle cinn agus std :: cruth, comasan faidhle bann-cinn leudaichte , seòrsaichean puing-fleòdraidh a bharrachd air an cur ris, faidhlichean cinn air an cur an gnìomh Agus .
  • Chaidh buadhan gnìomh ùr a chur ris airson sgrìobhainn gu bheil tuairisgeul faidhle air a thoirt seachad ann an caochladair iomlan: “__attribute__((fd_arg(N)))), “__attribute__((fd_arg_read(N)))" agus "__attribute__((fd_arg_write(N))) )" Faodar na buadhan ainmichte a chleachdadh ann an anailisiche statach (-fanalyzer) gus obrachadh ceàrr a lorg le tuairisgeulan faidhle.
  • Chuir sinn feart ùr ris “__attribute__((sume(EXPR)))), leis an urrainn dhut innse don neach-cruinneachaidh gu bheil an abairt fìor agus faodaidh an neach-cruinneachaidh an fhìrinn seo a chleachdadh gun a bhith a’ measadh an abairt.
  • Chaidh bratach “-fstrict-flex-arrays = [level]” a chur ris gus giùlan a thaghadh nuair a bhios tu a’ làimhseachadh eileamaidean rèite sùbailte ann an structaran (Buill Array Sùbailte, sreath de mheud neo-chinnteach aig deireadh structair, mar eisimpleir, "int b[]" ).
  • Chaidh a’ bhratach “-Wenum-int-mismatch” a chur ris gus rabhadh a thoirt ma tha mì-chothromachadh eadar seòrsa enum agus seòrsa integer.
  • Tha an aghaidh airson cànan Fortran a’ toirt làn thaic do chrìochnachadh.
  • Anns a’ cheann aghaidh airson a’ chànan Go, chaidh taic airson gnìomhan agus seòrsaichean coitcheann (gineadach) a chur ris, agus chaidh dèanamh cinnteach gu bheil co-chòrdalachd le pacaidean airson cànan Go 1.18.
  • Tha an backend airson ailtireachd AArch64 a’ toirt taic do CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) agus Arm Neoverse V2 (neoverse). -v2). Chuir sinn taic ris an roghainn "-march="" airson argamaidean "armv9.1-a", "armv9.2-a" agus "armv9.3-a". Taic a bharrachd airson leudachadh pròiseasar FEAT_LRCPC, FEAT_CSSC agus FEAT_LSE2.
  • Chaidh taic airson CPU STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) agus Arm Cortex-M85 (cortex-m85) a chur ris an deireadh-sheachdain airson ailtireachd ARM.
  • Tha an backend airson ailtireachd x86 a’ cur taic ri Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, pròiseasairean Granite Rapids, a bharrachd air pròiseasairean AMD Zen 4 (znver4). Chaidh an leudachadh ailtireachd seata stiùiridh AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT agus AMX-COMPLEX, a chaidh a mholadh ann am pròiseasairean Intel, a chuir an gnìomh. Airson cànanan C agus C++ air siostaman SSE2, tha an seòrsa __bf16 air a thoirt seachad.
  • Tha an backend gineadh còd airson AMD Radeon GPUs (GCN) a’ toirt a-steach comas luathadairean AMD Instinct MI200 a chleachdadh gus coileanadh OpenMP / OpenACC a leasachadh. Vectorization nas fheàrr a’ cleachdadh stiùireadh SIMD.
  • Chaidh na comasan backend airson àrd-ùrlar LoongArch a leudachadh gu mòr.
  • Anns an deireadh-sheachdain airson ailtireachd RISC-V, chaidh taic airson CPU XuanTie C906 (thead-c906) an T-Head a chur ris. Chaidh taic airson pròiseasairean vector a tha air am mìneachadh ann an sònrachadh RISC-V Vector Extension Intrinsic 0.11 a chuir an gnìomh. Taic a bharrachd airson leudachadh 30 air an t-sònrachadh RISC-V.
  • Bidh a bhith a’ gineadh nithean co-roinnte leis an roghainn -shared a’ stad a’ cur còd tòiseachaidh às deidh dhut àrainneachd fleòdraidh a chur ris ma tha na -Ofast, -ffast-math, no -funsafe-math-optimizations air an comasachadh.
  • Tha taic airson cruth deasbaid DWARF air a bhuileachadh anns cha mhòr a h-uile cruth.
  • Roghainn air a chur ris “-gz=zstd” gus fiosrachadh dì-bhugachaidh a dhlùthadh a’ cleachdadh an algairim Zstandard. Chaidh stad a chuir air taic don mhodh dì-bhugachaidh dìleab "-gz=zlib-gnu".
  • Chuir sinn taic tùsail ris airson OpenMP 5.2 (Ioma-phròiseasadh Fosgailte) agus buileachadh leantainneach air inbhean OpenMP 5.0 agus 5.1, a tha a’ mìneachadh APIan agus dòighean airson dòighean prògramadh co-shìnte a chuir an sàs air siostaman ioma-cridhe agus tar-chinealach (CPU + GPU / DSP) le cuimhne co-roinnte. agus aonadan vectorization (SIMD).
  • Chaidh stad a chuir air taic airson cruth stòraidh fiosrachaidh dì-bhugachaidh dìleab “STABS” (air a chomasachadh leis na roghainnean -gstabs agus -gxcoff), a chaidh a chruthachadh anns na 1980n agus a chaidh a chleachdadh anns an dì-bhugadair dbx.
  • Cha deach taic airson Solaris 11.3 a mholadh (thèid còd gus taic a thoirt don àrd-ùrlar seo a thoirt air falbh ann am brath san àm ri teachd).

Source: fosgailtenet.ru

Cuir beachd ann