Famoahana ny GCC 13 compiler suite

Taorian'ny taonan'ny fampandrosoana dia navoaka ny famoahana ny suite compiler GCC 13.1 maimaim-poana, ny famoahana manan-danja voalohany amin'ny sampana GCC 13.x vaovao. Eo ambanin'ny drafitra fanisana vaovao, ny dikan-teny 13.0 dia nampiasaina nandritra ny fampandrosoana, ary fotoana fohy talohan'ny famoahana ny GCC 13.1, dia efa nisaraka ny sampana GCC 14.0, izay hiforonan'ny famoahana manan-danja manaraka ny GCC 14.1.

Fiovana lehibe:

  • Ny GCC dia nandray ny lohatenin'ny fananganana programa amin'ny fiteny fandaharana Modula-2. Izy io dia manohana ny kaody fananganana izay mifanaraka amin'ny fitenim-paritra PIM2, PIM3, ary PIM4, ary koa ny fenitra ISO ekena ho an'io fiteny io.
  • Nampiana tao amin'ny hazo loharanon'ny GCC ny frontend miaraka amin'ny fampiharana ny compiler fiteny Rust nomanin'ny tetikasa gccrs (GCC Rust). Amin'ny fijery ankehitriny, ny forntend dia voamarika ho andrana ary kilemaina amin'ny alΓ lan'ny default. Raha vantany vao vonona ny frontend (antenaina amin'ny famoahana manaraka), ny kitapom-pitaovana GCC mahazatra dia azo ampiasaina hanangonana programa Rust tsy mila mametraka ny compiler rustc natsangana tamin'ny fampivoarana LLVM.
  • Link-in-Step Optimization (LTO) dia manampy fanohanana ho an'ny mpizara asa (jobserver) tazonin'ny GNU make tetik'asa hanatsarana ny fanatanterahana ny fananganana mifanitsy amin'ny kofehy maro. Ao amin'ny GCC, ny mpizara asa dia ampiasaina hampitoviana ny asa mandritra ny fanatsarana ny LTO amin'ny tontolon'ny programa manontolo (WPA, Famakafakana ny programa manontolo). Ny fantsona nomena anarana (--jobserver-style=fifo) dia ampiasaina amin'ny alΓ lan'ny fifandraisana amin'ny mpiasa.
  • Ny analyzer static (-fanalyzer) dia manolotra fisavana diagnostika vaovao 20, anisan'izany ny "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- tsy manam-petra. -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Ny fahafahana mamoaka diagnostika amin'ny endrika SARIF mifototra amin'ny JSON dia nampiharina. Ny endrika vaovao dia azo ampiasaina mba hahazoana valim-panadihadiana static (GCC -fanalyzer), ary koa hahazoana fampahalalana momba ny fampitandremana sy ny fahadisoana. Ny fampandehanana dia atao amin'ny safidy "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", izay ahitana safidy miaraka amin'ny "json" dia miteraka vokatra amin'ny endrika GCC manokana amin'ny endrika JSON. .
  • Nametraka endri-javatra sasany voafaritra ao amin'ny fenitra C23 C, toy ny nullptr constant amin'ny famaritana ny tondro tsy misy dikany, manamora ny fampiasana lisitra misy tohan-kevitra miovaova (variadic), manitatra ny fahafahan'ny enums, ny toetra noreturn, mamela ny fampiasana ny constexpr sy auto rehefa mamaritra zavatra, ny karazana sy typeof_unqual, teny fanalahidy vaovao alignas, alignof, bool, false, static_assert, thread_local ary marina, mamela fononteny foana amin'ny fanombohana.
  • Nampihatra ny endri-javatra sasany voafaritra ao amin'ny fenitra C++23, toy ny fahafahana mametraka marika eo amin'ny faran'ny fitenenana mitambatra, mifanaraka amin'ny karazana char8_t, ny toromarika #warning preprocessor, voafaritry ny (\u{}, \o{} , \x{}), ary nomena anarana ('\N{LATINA LETTER A}') filaharana fandosirana, static operator(), static operator[], equality operator ao anatin'ny fitenenana, ankoatra ny famerana sasany amin'ny fampiasana constexpr, fanohanana ho an'ny UTF-8 amin'ny lahatsoratra loharano.
  • Fanohanana andrana nohatsaraina ho an'ny fenitra C++20 sy C++23 ao amin'ny libstdc++, toy ny fanampiana ny fanohanan'ny rakitra lohapejy ary std::format, fahaiza-manao fisie lohapejy , nampiana karazana teboka mitsingevana fanampiny, napetraka ny rakitra lohapejy SY .
  • Nampiana toetran'asa vaovao ho an'ny antontan-taratasy fa misy mpamoritra rakitra iray alefa amin'ny fari-pitsipika integer: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))", ary "__attribute__((fd_arg_write(N)) )) ". Ireo toetra voatondro dia azo ampiasaina amin'ny mpanadihady static (-fanalyzer) hamantarana asa diso miaraka amin'ny mpamoritra rakitra.
  • Ny toetra vaovao "__attribute__((assume(EXPR)))" dia nampiana, izay ahafahanao milaza amin'ny mpamoron-kira fa marina ilay fitenenana ary afaka mampiasa an'io zava-misy io ny compiler raha tsy manombana ilay fitenenana.
  • Nampiana saina "-fstrict-flex-arrays=[ambaratonga]" hisafidianana fitondran-tena rehefa manodina singa mirindra amin'ny rafitra (Mpikambana ao amin'ny Array Flexible, karazana habe tsy voafaritra amin'ny faran'ny rafitra, ohatra, "int b[] ").
  • Nampiana saina "-Wenum-int-mismatch" hamoahana fampitandremana raha toa ka misy tsy fitoviana eo amin'ny karazana voatanisa sy ny karazana integer.
  • Ny faran'ny Fortran dia manana fanohanana feno amin'ny famaranana.
  • Ny fanohanana ho an'ny fiasa sy karazana (generics) dia nampiana teo anoloana ho an'ny fiteny Go, ary azo antoka ny fifanarahana amin'ny fonosana ho an'ny fiteny Go 1.18.
  • Ny backend AArch64 dia manohana ny CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), ary Arm Neoverse V2 (neoverse -v2) . Ny fanohanana ny tohan-kevitra "armv9.1-a", "armv9.2-a", ary "armv9.3-a" dia nampiana tamin'ny safidy "-march=". Fanohanana fanampiny ho an'ny fanitarana processeur FEAT_LRCPC, FEAT_CSSC ary FEAT_LSE2.
  • Ny fanohanana ny STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c), ary Arm Cortex-M85 (cortex-m85) CPU dia nampiana tao amin'ny backend architecture ARM.
  • Fanohanana ny Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, ary AMD Zen 86 (znver4) processeur dia nampiana tao amin'ny x4 backend. Ny AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, ary AMX-COMPLEX dia nampiharina ny fanitarana maritrano natolotry ny processeur Intel. Ho an'ny C sy C++ amin'ny rafitra misy SSE2 dia omena ny karazana __bf16.
  • Ny backend famokarana kaody ho an'ny AMD Radeon GPUs (GCN) dia mampihatra ny fahaizana mampiasa ny accelerators AMD Instinct MI200 hanatsarana ny fampisehoana OpenMP/OpenACC. Fanatsarana ny vectorization amin'ny fampiasana torolΓ lana SIMD.
  • Niitatra be ny fahaiza-manao backend ho an'ny sehatra LoongArch.
  • Fanampiana fanampiny ho an'ny CPU T-Head's XuanTie C906 (thead-c906) ao amin'ny backend RISC-V. Fanohanana natao ho an'ny mpitantana vΓ©ctor voafaritra ao amin'ny fanondroana RISC-V Vector Extension Intrinsic 0.11. Fanampiana fanampiny ho an'ny fanitarana fanondroana RISC-V 30.
  • Rehefa mamorona zavatra zaraina miaraka amin'ny safidy "-shared", dia tsy ampiana kaody fanombohana intsony rehefa avy nampiana tontolo mitsingevana raha toa ka mandeha ny fanatsarana "-Ofast", "-ffast-math", na "-funsafe-math-optimizations" .
  • Ny fanohanana ny endrika DWARF debugging dia ampiharina amin'ny ankamaroan'ny configurations rehetra.
  • Nampiana safidy "-gz=zstd" hanindry ny fampahalalana debug amin'ny alΓ lan'ny algorithm Zstandard. Fanohanana nesorina ho an'ny fomba famatrarana fampahalalana momba ny debug "-gz=zlib-gnu".
  • Ny fanohanana voalohany ny OpenMP 5.2 (Open Multi-Processing) dia nampiana ary nitohy ny fampiharana ny fenitra OpenMP 5.0 sy 5.1, mamaritra ny API sy ny fomba fampiharana ny fomba fandaharana parallΓ¨le amin'ny rafitra multi-core sy hybrid (CPU + GPU / DSP) miaraka amin'ny Mizara fahatsiarovana sy vectorization units (SIMD).
  • Natsahatra ny fanohanana ny endrika fitahirizana fampahalalana momba ny debug "STABS" (navoakan'ny safidy -gstabs sy -gxcoff), noforonina tamin'ny taona 1980 ary nampiasaina tamin'ny debugger dbx.
  • Fanohanana tsy ampiasaina amin'ny Solaris 11.3 (kaody hanohanana ity sehatra ity dia hesorina amin'ny famoahana ho avy).

Source: opennet.ru

Add a comment