GCC 13 compiler suite ကို ဖဌန့်ချိသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟု တစ်နဟစ်အကဌာတလင်၊ အခမဲ့ GCC 13.1 compiler suite ကို ထုတ်ဝေခဲ့ပဌီသ၊ GCC 13.x ဌာနခလဲအသစ်တလင် ပထမဆုံသ သိသာထင်ရဟာသသော ဖဌန့်ချိမဟုဖဌစ်သည်။ အသစ်ထလက်ရဟိထာသသော နံပါတ်တပ်ခဌင်သအစီအစဉ်အောက်တလင်၊ ဗာသရဟင်သ 13.0 ကို ဖလံ့ဖဌိုသတိုသတက်မဟုကာလအတလင်သ အသုံသပဌုခဲ့ပဌီသ GCC 13.1 မထလက်ရဟိမီ မကဌာမီတလင်၊ GCC 14.0 ဌာနခလဲကို ခလဲထုတ်ထာသပဌီသဖဌစ်ပဌီသ၊ လာမည့် GCC 14.1 ၏ နောက်ထူသခဌာသချက်ဖဌစ်သော ဖဌန့်ချိမဟုကို ဖလဲ့စည်သမည်ဖဌစ်သည်။

အဓိကပဌောင်သလဲမဟုမျာသ-

  • GCC သည် Modula-2 ပရိုဂရမ်သမင်သဘာသာစကာသဖဌင့် ပရိုဂရမ်တည်ဆောက်ခဌင်သအတလက် ရဟေ့တန်သကို လက်ခံခဲ့သည်။ ၎င်သသည် PIM2၊ PIM3 နဟင့် PIM4 ဒေသိယစကာသမျာသအပဌင် ထိုဘာသာစကာသအတလက် လက်ခံထာသသော ISO စံနဟုန်သမျာသနဟင့် ကိုက်ညီသည့် တည်ဆောက်ကုဒ်မျာသကို ပံ့ပိုသပေသပါသည်။
  • gccrs ပရောဂျက် (GCC Rust) မဟ ပဌင်ဆင်ထာသသော Rust ဘာသာစကာသ compiler ကို အကောင်အထည်ဖော်ခဌင်သဖဌင့် ရဟေ့တန်သကို GCC အရင်သအမဌစ်သစ်ပင်သို့ ပေါင်သထည့်ထာသသည်။ လက်ရဟိမဌင်ကလင်သတလင်၊ forntend ကို စမ်သသပ်သူအဖဌစ် သတ်မဟတ်ပဌီသ ပုံမဟန်အာသဖဌင့် ပိတ်ထာသသည်။ frontend အဆင်သင့်ဖဌစ်ပဌီ (နောက်ထလက်ရဟိမည့်ထလက်ရဟိမည့်မျဟော်လင့်ချက်မျာသ)၊ LLVM တိုသတက်မဟုမျာသကို အသုံသပဌု၍ တည်ဆောက်ထာသသော rustc compiler ကို ထည့်သလင်သရန်မလိုအပ်ဘဲ Rust ပရိုဂရမ်မျာသကို စုစည်သရန်အတလက် စံ GCC ကိရိယာအစုံကို အသုံသပဌုနိုင်ပါသည်။
  • Link-in-Step Optimization (LTO) သည် GNU မဟ ထိန်သသိမ်သထာသသော အလုပ်ဆာဗာ (jobserver) အတလက် ပံ့ပိုသမဟု ထပ်လောင်သပေသသည် ။ GCC တလင်၊ ပရိုဂရမ်တစ်ခုလုံသ (WPA၊ Whole-program ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ) ၏အခဌေအနေတလင် LTO ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်နေစဉ်အတလင်သ အလုပ်အပဌိုင်လုပ်ဆောင်ရန်အတလက် jobserver ကိုအသုံသပဌုသည်။ အမည်ပေသထာသသောပိုက်မျာသ (--jobserver-style=fifo) ကို jobserver နဟင့် အပဌန်အလဟန်တုံ့ပဌန်ရန်အတလက် မူရင်သအာသဖဌင့် အသုံသပဌုပါသည်။
  • static analyzer (-fanalyzer) သည် "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- အဆုံသမရဟိအပါအဝင် ရောဂါရဟာဖလေစစ်ဆေသမဟုအသစ် 20 ခုကို ပံ့ပိုသပေသသည် -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak"။
  • JSON ကိုအခဌေခံ၍ SARIF ဖော်မတ်တလင် အဖဌေရဟာခဌင်သအာသ ထုတ်နိုင်စလမ်သကို အကောင်အထည်ဖော်ခဲ့သည်။ ဖော်မတ်အသစ်ကို တည်ငဌိမ်သောခလဲခဌမ်သစိတ်ဖဌာမဟုရလဒ်မျာသ (GCC -fanalyzer) ရရဟိရန်အပဌင် သတိပေသချက်မျာသနဟင့် အမဟာသအယလင်သမျာသဆိုင်ရာ အချက်အလက်မျာသကို ရယူရန်လည်သ အသုံသပဌုနိုင်ပါသည်။ "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file"၊ ရလေသချယ်စရာမျာသ "json" နဟင့် "json" ပါသော ရလေသချယ်မဟုမျာသသည် JSON ဖော်မတ်၏ GCC သီသသန့်မျိုသကလဲတစ်ခုတလင် အထလက်ရလဒ် ထလက်ပေါ်လာသည့် ရလေသချယ်မဟုဖဌင့် ဖလင့်ထာသခဌင်သဖဌစ်သည်။ .
  • C23 C စံနဟုန်သတလင် သတ်မဟတ်ထာသသော အချို့သောအင်္ဂါရပ်မျာသဖဌစ်သည့် null pointers မျာသကို သတ်မဟတ်ရန်အတလက် nullptr constant ကို အကောင်အထည်ဖော်ခဌင်သဖဌင့်၊ ပဌောင်သလဲနိုင်သော အငဌင်သအခုံအရေအတလက် (variadic)၊ enums မျာသ၏ လုပ်ဆောင်နိုင်စလမ်သမျာသကို တိုသချဲ့ခဌင်သ၊ noreturn attribute ဖဌင့် စာရင်သမျာသကို အသုံသပဌုရလလယ်ကူစေခဌင်သ၊ အရာဝတ္တုမျာသ၊ အမျိုသအစာသနဟင့် typeof_unqual၊ သော့ချက်စာလုံသအသစ် alignas၊ alignof၊ bool၊ false၊ static_assert၊ thread_local နဟင့် true ကို သတ်မဟတ်သောအခါတလင် အလိုအလျောက်နဟင့် အလိုအလျောက်၊ အစပဌုခဌင်သတလင် ကလင်သစလလတ်မျာသကို ခလင့်ပဌုပါ။
  • C++23 စံနဟုန်သတလင် သတ်မဟတ်ထာသသော အင်္ဂါရပ်အချို့ကို ပေါင်သစပ်ဖော်ပဌချက်မျာသ၏အဆုံသတလင် အမဟတ်အသာသမျာသထာသရဟိနိုင်မဟု၊ char8_t အမျိုသအစာသနဟင့် လိုက်ဖက်ညီမဟု၊ (\u{}, \o{} ဖဌင့် ပိုင်သခဌာသထာသသော #သတိပေသချက် ကဌိုတင်ပရိုဆက်ဆာညလဟန်ကဌာသချက်၊ , \x{}), နဟင့် ('\N{LATIN CAPITAL LETTER A}') ဟု အမည်ပေသထာသသည့် အစီအစဥ်မျာသ၊ static operator()၊ static operator[]၊ expressions အတလင်သ တန်သတူညီမျဟရေသ အော်ပရေတာ၊ constexpr အသုံသပဌုမဟုအပေါ် ကန့်သတ်ချက်အချို့မဟ ခဌလင်သချက်၊ ပံ့ပိုသမဟု အရင်သအမဌစ်စာသာသမျာသတလင် UTF-8 အတလက်။
  • libstdc++ သည် ခေါင်သစီသဖိုင်ပံ့ပိုသမဟုပေါင်သထည့်ခဌင်သကဲ့သို့သော C++20 နဟင့် C++23 စံနဟုန်သမျာသအတလက် စမ်သသပ်မဟုဆိုင်ရာ ပံ့ပိုသမဟုကို မဌဟင့်တင်ထာသသည် နဟင့် std::format၊ တိုသချဲ့ header file စလမ်သရည် ၊ နောက်ထပ် floating point အမျိုသအစာသမျာသကို ထည့်သလင်သထာသပဌီသ၊ ခေါင်သစီသဖိုင်မျာသကို အကောင်အထည်ဖော်ထာသသည်။ နဟင့် .
  • ဖိုင်ဖော်ပဌချက်ပေသသူသည် ကိန်သပဌည့်ပဌောင်သသည့်ပုံစံဖဌင့် ပေသပို့ထာသသည်- "__attribute__((fd_arg(N)))), "__attribute__((fd_arg_read(N)))" နဟင့် "__attribute__((fd_arg_write(N))" ) ) “ ။ သတ်မဟတ်ထာသသော attribute မျာသကို ဖိုင်ဖော်ပဌချက်ပေသသူမျာသနဟင့် မဟာသယလင်သနေသော အလုပ်မျာသကို ရဟာဖလေရန် static analyzer (-fanalyzer) တလင် အသုံသပဌုနိုင်ပါသည်။
  • ရည်ညလဟန်သချက်အသစ် "__attribute__((ယူဆ(EXPR)))" ကို ပေါင်သထည့်ထာသပဌီသ၊ ၎င်သသည် ကလန်ပဌူတာအာသ စကာသရပ်မဟန်ကဌောင်သနဟင့် စုစည်သသူသည် စကာသရပ်ကို အကဲဖဌတ်ခဌင်သမပဌုဘဲ ကအချက်ကို အသုံသပဌုနိုင်သည်။
  • ဖလဲ့စည်သတည်ဆောက်ပုံမျာသတလင် ပဌောင်သလလယ်ပဌင်လလယ်ရဟိသော အခင်သအကျင်သဒဌပ်စင်ကို လုပ်ဆောင်သည့်အခါ အပဌုအမူကိုရလေသချယ်ရန် "-fstrict-flex-arrays=[level]" အလံကို ပေါင်သထည့်ခဲ့သည် (Flexible Array Members၊ ဖလဲ့စည်သပုံ၏အဆုံသတလင် အကန့်အသတ်မရဟိအရလယ်အစာသတစ်ခု၊ ဥပမာ၊ "int b[] ” ) ။
  • စာရင်သပေသသလင်သထာသသော အမျိုသအစာသနဟင့် ကိန်သပဌည့်အမျိုသအစာသကဌာသ မကိုက်ညီပါက သတိပေသချက်မျာသကို ထုတ်ပဌန်ရန် "-Wenum-int-mismatch" အလံကို ထည့်သလင်သထာသသည်။
  • Fortran ၏ ရဟေ့ဆုံသတလင် အပဌီသသတ် အပဌီသသတ်ရန် အပဌည့်အဝ ပံ့ပိုသမဟု ရဟိသည်။
  • ယေဘူယျလုပ်ဆောင်ချက်မျာသနဟင့် အမျိုသအစာသမျာသ (generics) ကို Go ဘာသာစကာသအတလက် ရဟေ့တန်သသို့ ပေါင်သထည့်ထာသပဌီသ Go 1.18 ဘာသာစကာသအတလက် ပက်ကေ့ဂျ်မျာသနဟင့် လိုက်ဖက်မဟုရဟိသည်ကို အာမခံပါသည်။
  • AArch64 backend သည် CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), နဟင့် Arm Neoverse V2 (neoverse -v2) . "armv9.1-a", "armv9.2-a" နဟင့် "armv9.3-a" အကဌောင်သပဌချက်မျာသအတလက် ပံ့ပိုသမဟုအာသ "-march=" ရလေသချယ်မဟုတလင် ထည့်သလင်သထာသသည်။ FEAT_LRCPC၊ FEAT_CSSC နဟင့် FEAT_LSE2 ပရိုဆက်ဆာ တိုသချဲ့မဟုမျာသ အတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်။
  • STAR-MC1 (star-mc1)၊ Arm Cortex-X1C (cortex-x1c) နဟင့် Arm Cortex-M85 (cortex-m85) CPU မျာသကို ARM ဗိသုကာနောက်ကလယ်တလင် ထည့်သလင်သထာသသည်။
  • Intel Raptor Lake၊ Meteor Lake၊ Sierra Forest၊ Grand Ridge၊ Emerald Rapids၊ Granite Rapids နဟင့် AMD Zen 86 (znver4) ပရိုဆက်ဆာမျာသအတလက် ပံ့ပိုသမဟုအာသ x4 နောက်ခံတလင် ထည့်သလင်သထာသပါသည်။ AVX-IFMA၊ AVX-VNNI-INT8၊ AVX-NE-CONVERT၊ CMPccXADD၊ AMX-FP16၊ PREFETCHI၊ RAO-INT နဟင့် AMX-COMPLEX ညလဟန်ကဌာသချက်အစုံသည် Intel ပရိုဆက်ဆာမျာသတလင် အဆိုပဌုထာသသော ဗိသုကာအဆက်ဆက်မျာသကို အကောင်အထည်ဖော်ပဌီသဖဌစ်သည်။ SSE2 ပါသော စနစ်မျာသတလင် C နဟင့် C++ အတလက် __bf16 အမျိုသအစာသကို ပေသထာသသည်။
  • AMD Radeon GPUs (GCN) အတလက် ကုဒ်မျိုသဆက် နောက်ကလယ်မဟသည် OpenMP/OpenACC စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန် AMD Instinct MI200 အရဟိန်မဌဟင့်စက်မျာသကို အသုံသပဌုနိုင်သည့် စလမ်သရည်ကို ဖော်ဆောင်ပေသပါသည်။ SIMD ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌု၍ ပိုမိုကောင်သမလန်သော vectorization ပဌုလုပ်ခဌင်သ။
  • LoongArch ပလပ်ဖောင်သအတလက် နောက်ခံစလမ်သဆောင်ရည်မျာသကို သိသာစလာ တိုသချဲ့ထာသသည်။
  • RISC-V နောက်ခံတလင် CPU T-Head ၏ XuanTie C906 (thead-c906) အတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်။ RISC-V Vector Extension Intrinsic 0.11 သတ်မဟတ်ချက်တလင် သတ်မဟတ်ထာသသော vector handlers မျာသအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်။ 30 RISC-V သတ်မဟတ်ချက် တိုသချဲ့မဟုမျာသ အတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
  • "-shared" ရလေသချယ်မဟုဖဌင့် မျဟဝေထာသသော အရာဝတ္ထုမျာသကို ထုတ်လုပ်သည့်အခါ "-Ofast"၊ "-ffast-math" သို့မဟုတ် "-funsafe-math-optimizations" ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်မဟုမျာသကို ဖလင့်ထာသပါက floating point ပတ်ဝန်သကျင်ကို ထည့်သလင်သပဌီသနောက် startup code ကို ထပ်ထည့်မည်မဟုတ်တော့ပါ။ .
  • DWARF အမဟာသရဟာပဌင်ခဌင်သဖော်မတ်အတလက် ပံ့ပိုသမဟုအာသ ဖလဲ့စည်သမဟုအာသလုံသနီသပါသတလင် အကောင်အထည်ဖော်ထာသသည်။
  • Zstandard အယ်လဂိုရီသမ်ကို အသုံသပဌု၍ အမဟာသရဟာပဌင်ခဌင်သဆိုင်ရာ အချက်အလက်ကို ချုံ့ရန် "-gz=zstd" ရလေသချယ်ခလင့်ကို ထည့်သလင်သခဲ့သည်။ ကန့်ကလက်ထာသသော အမဟာသအယလင်သအချက်အလက်ချုံ့မုဒ် "-gz=zlib-gnu" အတလက် ပံ့ပိုသမဟုကို ဖယ်ရဟာသခဲ့သည်။
  • OpenMP 5.2 (Open Multi-Processing) အတလက် ကနညသပံ့ပိုသမဟုကို ထည့်သလင်သထာသပဌီသ OpenMP 5.0 နဟင့် 5.1 စံနဟုန်သမျာသကို ဆက်လက်အကောင်အထည်ဖော်ခဲ့ပဌီသ Multi-core နဟင့် hybrid (CPU + GPU / DSP) စနစ်မျာသတလင် အပဌိုင်ပရိုဂရမ်သမင်သနည်သလမ်သမျာသကို အသုံသပဌုရန်အတလက် APIs နဟင့် နည်သလမ်သမျာသကို သတ်မဟတ်ခဌင်သ မျဟဝေထာသသော memory နဟင့် vectorization ယူနစ် (SIMD)။
  • အမလေအနဟစ် အမဟာသအယလင်သ အချက်အလက်မျာသ သိုလဟောင်မဟု ဖော်မတ် "STABS" အတလက် ပံ့ပိုသမဟု (-gstabs နဟင့် -gxcoff ရလေသချယ်မဟုမျာသဖဌင့် ဖလင့်ထာသသည်)၊ 1980 ခုနဟစ်မျာသတလင် ဖန်တီသပဌီသ dbx အမဟာသရဟာတလင် အသုံသပဌုသည့် ပံ့ပိုသမဟုအာသ ရပ်ဆိုင်သလိုက်ပါသည်။
  • Solaris 11.3 အတလက် ကန့်ကလတ်ထာသသော ပံ့ပိုသမဟု (ကပလပ်ဖောင်သကို ပံ့ပိုသရန် ကုဒ်ကို နောင်ထလက်ရဟိမဟုတလင် ဖယ်ရဟာသပါမည်)။

source: opennet.ru

မဟတ်ချက် Add