မေလ ၃ ရက်နေ့တွင်၊ 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
- လုပ်ဆောင်ချက်ကို ထည့်သွင်းထားသည်။ gcc_jit_context_add_driver_option.
အခြား
ဗိသုကာ-နှင့် OS-တိကျသောပြောင်းလဲမှုများစွာ။
source: linux.org.ru