GCC 9.1

မေလ ၃ ရက်နေ့တွင်၊ GCC ၏ နဝမမြောက်ဗားရှင်းကို ပထမဆုံးအများပြည်သူသို့ ဖြန့်ချိခဲ့သည်- GCC 3။
၎င်းတွင် အဋ္ဌမအချက်နှင့် နှိုင်းယှဉ်ပါက သိသာထင်ရှားသော တိုးတက်မှုများနှင့် ထပ်တိုးမှုများ ပါဝင်သည်။
ဗားရှင်း။

အထွေထွေအပြောင်းအလဲများ

ရွေးစရာများ
  • အရွယ်အစားကို လက်ခံသည့် ကွန်မန်းများသည် အရွယ်အစားကို သတ်မှတ်ရန် 64-bit တန်ဖိုးများနှင့် နောက်ဆက်တွဲများကို ပံ့ပိုးပေးပါသည်။
  • ရွေးစရာ ထပ်ထည့်ထားသည်။ -flive-patchingဒိုင်းနမစ်၊ ကုဒ်အစားထိုးခြင်းအတွက် အပျက်သဘောဆောင်နိုင်ချေရှိသော ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများကို ထိန်းချုပ်ရန်၊
  • command shell တွင် အလိုအလျောက်ဖြည့်သွင်းမှုကို ပံ့ပိုးရန် --completion option ကို ထပ်ထည့်ထားသည်။
  • ယခု Compiler ရောဂါရှာဖွေခြင်းတွင် လိုင်းနံပါတ်များ ပါဝင်သည် (-fno-diagnostics-show-line-numbers) နှင့်
    အမျိုးအစား အချက်အလက် (fno-diagnostics-show-labels);
  • ရွေးစရာ ထပ်ထည့်ထားသည်။ -fdiagnostics-format=json ရောဂါရှာဖွေမှုများကို JSON ဖော်မတ်ဖြင့် ထုတ်ပေးရန်၊
  • ချိန်ညှိမှု သတ်မှတ်ခြင်းအတွက် ရွေးချယ်စရာများ (-falign-လုပ်ဆောင်ချက်များဥပမာ) ချိန်ညှိမှုရွေးချယ်စရာနှစ်ခုကို လက်ခံနိုင်ပါပြီ။
  • ဖိုင်များစာရင်းကို စစ်ထုတ်ရန်အတွက် ထပ်လောင်းရွေးချယ်စရာများ (-fprofile-filter-files, -fprofile-exclude-filesပရိုဖိုင်းဖြင့် တန်ဆာဆင်ထားသည့်)၊
  • ယခုအခါ AddressSanitizer သည် stack ပေါ်ရှိ variable များသို့ တရားမဝင်ဝင်ရောက်မှုများကိုဖမ်းယူရန် ပိုမိုသေးငယ်သော ချိန်ညှိမှုကို အသုံးပြုပါသည်။
  • မြောက်မြားစွာသော အထွက်နှုန်း တိုးတက်မှု -fopt-အချက်အလက်;
  • ရွေးစရာ ထပ်ထည့်ထားသည်။ -fsave-optimization-မှတ်တမ်း optimization အစီရင်ခံစာကို ဖိုင်တစ်ခုသို့ သိမ်းဆည်းရန်၊
  • ရွေးစရာ ထပ်ထည့်ထားသည်။ -fipa-stack-alignment и -fipa-ကိုးကား-လိပ်စာ.
အသစ်ထည့်သွင်းထားသောအင်္ဂါရပ်များ
ရည်ညွှန်းချက်အသစ်
အခြား

နှင့်ဆက်စပ်သော ကုဒ်ထုတ်လုပ်ခြင်းဆိုင်ရာ တိုးတက်မှုများစွာ-

  • ခလုတ်တည်ဆောက်မှုများ၏မျိုးဆက်;
  • လုပ်ထုံးလုပ်နည်းအချင်းချင်း ပိုမိုကောင်းမွန်အောင်၊
  • ပရိုဖိုင်းအချက်အလက်ပေါ်အခြေခံ၍ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း၊
  • စည်းဝေးပွဲအဆင့် (LTO);

ထို့အပြင် gcov ၏ အတွင်းပိုင်းဖော်မတ်သည် ယခုအခါ JSON ဖြစ်ပြီး ရွေးချယ်မှုအသစ်ဖြစ်သည်။ --ပူမှု-အရောင်များကိုသုံးပါ။ ကုဒ်များကို အသုံးပြုသည့်အကြိမ်ရေပေါ်မူတည်၍ အရောင်ခြယ်ခြင်း ပါဝင်သည်။

ဘာသာစကားများ

အရည်အသွေးနှင့် ပြည့်စုံမှုကို အကောင်အထည်ဖော်ခြင်း။ OpenACC C၊ C++ နှင့် Fortran ဘာသာစကားများသည် ဆက်လက်တိုးတက်နေပါသည်။

C နှင့်တူသောဘာသာစကားများ
  • OpenMP 5.0 အတွက် တစ်စိတ်တစ်ပိုင်း ပံ့ပိုးမှုကို အကောင်အထည် ဖော်ထားသည်။
  • လုပ်ဆောင်ချက်ကို ထည့်သွင်းထားသည်။ __builtin_convertvector;
  • ထပ်လောင်းသတိပေးချက် -Waddress-of-packed-အဖွဲ့ဝင်;
  • ရှိပြီးသားသတိပေးချက်အများအပြားအတွက် တိုးတက်မှုများ၊
  • မက်ခရိုသို့ မှားယွင်းသော အငြင်းအခုံအရေအတွက်ကို ဖြတ်သွားသောအခါ အမှားစာသားတွင် မက်ခရိုကိုယ်တိုင် ကြေငြာချက်ပါ၀င်သည် ။
  • စာစီစာရိုက် အမှားပြင်ဆင်ခြင်းဆိုင်ရာ အကြံပြုချက်များကို မြှင့်တင်မှုများ။
C
  • -std=c2x (အနာဂတ် C စံနှုန်း);
  • သတိပေးချက်အသစ် -Wabsolute-တန်ဖိုးabs() ကဲ့သို့ လုပ်ဆောင်ချက်များအတွက် မှားယွင်းသော အငြင်းအခုံ အမျိုးအစားကို ဖမ်းမိပါသည်။
C ++
  • သတိပေးချက်အသစ်များ -Wdeprecated-မိတ္တူ,
    -Winit-list-တစ်သက်တာ,
    - မလိုအပ်ဘဲ ပြောင်းရွှေ့ခြင်း။,
    -Wpessimizing-ရွှေ့,
    -Wclass-ကူးပြောင်းခြင်း။;
  • အနာဂတ်စံနှုန်းမှ အင်္ဂါရပ်အသစ်များကို အကောင်အထည်ဖော်ရန် အလုပ်က လုပ်ဆောင်နေပါသည်။ C++2a;
  • ယခုအခါ ရှေ့တန်းသည် သင့်အား ရောဂါရှာဖွေရေးတွင် ပိုမိုအသေးစိတ်အချက်အလက်များကို ပြသနိုင်စေမည့် အရင်းအမြစ်ကုဒ်ဒြပ်စင်များအကြောင်း ပိုမိုတိကျသောအချက်အလက်များကို သိမ်းဆည်းထားသည်။
  • ဝန်ပိုနေသော လုပ်ဆောင်ချက်များ၊ ဒွိအော်ပရေတာများ၊ လုပ်ဆောင်ချက်ခေါ်ဆိုမှုများနှင့် ဖော်မတ်စာတန်းများအတွက် ပိုမိုကောင်းမွန်သော စစ်ဆေးမှုများ၊
  • လူကြိုက်များသော အမှားအယွင်းများစွာ (ကွင်းကွင်း၊ အမည်ကွက်လပ်များ၊ စာစီစာရိုက် စသည်) အတွက် အချို့သော ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်မှ ပံ့ပိုးပေးသော အလိုအလျောက် ပြင်ဆင်မှုများကို ပေါင်းထည့်ထားသည်။
libstdc++
  • C++17 အကောင်အထည်ဖော်မှုသည် စမ်းသပ်မှုမဟုတ်တော့ပါ။
  • အပြိုင် algorithms များ ပေါင်းထည့်၊ ၊ တစ်၊ -lstdc++fs မလိုအပ်တော့ပါ။
  • C++2a အတွက် ပိုမိုကောင်းမွန်သော စမ်းသပ်မှု ပံ့ပိုးမှု ( ၊ , std::bind_front, etc.);
  • လမ်းကြောင်းများတွင် char မဟုတ်သော အက္ခရာများပါရှိသော Windows တွင် ဖိုင်စီးကြောင်းများဖွင့်ခြင်းအတွက် ပံ့ပိုးမှု။
  • ကနဦးထောက်ပံ့မှု Windows ပေါ်တွင်;
  • Networking TS အတွက် ကနဦး ပံ့ပိုးမှု။
D

D ဘာသာစကား ဗားရှင်း 2.076 ကို GCC တွင် ထည့်သွင်းထားသည်။

ကွမ်းခြံကုန်း
  • အပြိုင်အဆိုင် I/O အတွက် အပြည့်အဝပံ့ပိုးမှု။
  • MINLOC နှင့် MAXLOC အတွက် BACK အငြင်းအခုံကို အကောင်အထည်ဖော်ခဲ့သည်။
  • FINDLOC နှင့် IS_CONTIGOUS လုပ်ဆောင်ချက်များကို အကောင်အထည်ဖော်ခဲ့သည်။
  • ရှုပ်ထွေးသောကိန်းဂဏန်းများ၏ အစိတ်အပိုင်းများကို ဝင်ရောက်ခြင်းအတွက် အထားအသိုကို အကောင်အထည်ဖော်ခဲ့သည်- c%re နှင့် c%im;
  • အထားအသို str%len နှင့် a% kind ကို အကောင်အထည်ဖော်ထားသည်။
  • C ဖော်ပြချက်များနှင့် ISO_Fortran_binding.h ခေါင်းစီးကို အကောင်အထည်ဖော်ထားသည်။
  • အငြင်းအခုံများထဲမှ တစ်ခုသည် NaN ဖြစ်သောအခါ MAX နှင့် MIN လုပ်ဆောင်ချက်များ၏ ရလဒ်အတွက် လိုအပ်ချက်များကို ဖြေလျှော့ပေးခဲ့သည်။
  • ရွေးစရာ ထပ်ထည့်ထားသည်။ -fdec- ပါဝင်သည်။;
  • ညွန်ကြားချက် ထည့်သွင်းထားသည်။ BUILTIN.
libgccjit

အခြား

ဗိသုကာ-နှင့် OS-တိကျသောပြောင်းလဲမှုများစွာ။

source: linux.org.ru

မှတ်ချက် Add