Go ပရိုဂရမ်သမင်သဘာသာစကာသ 1.18 ကိုဖဌန့်ချိသည်။

Go 1.18 ပရိုဂရမ်သမင်သဘာသာစကာသ၏ ထလက်ရဟိမဟုကို တင်ပဌထာသပဌီသ၊ အသိုင်သအဝိုင်သ၏ပါဝင်မဟုဖဌင့် Google မဟ တီထလင်ထာသသည့် ပေါင်သစပ်ဘာသာစကာသမျာသ၏ စလမ်သဆောင်ရည်မဌင့်မာသမဟုကို ပေါင်သစပ်ထာသသော ဇာတ်ညလဟန်သရေသဘာသာစကာသမျာသ၏ အာသသာချက်မျာသဖဌစ်သည့် ကုဒ်ရေသသာသရလလယ်ကူခဌင်သ ဖလံ့ဖဌိုသတိုသတက်မဟု အရဟိန်အဟုန်နဟင့် အမဟာသအယလင်သ ကာကလယ်မဟု။ ပရောဂျက်ကုဒ်ကို BSD လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။

Go ၏ syntax သည် Python ဘာသာစကာသမဟ ချေသယူထာသသော အချို့သော C language ၏ အကျလမ်သတဝင်ရဟိသော ဒဌပ်စင်မျာသအပေါ် အခဌေခံထာသသည်။ ဘာသာစကာသသည် အလလန်တိုတောင်သသော်လည်သ ကုဒ်သည် ဖတ်ရဟုနာသလည်ရန် လလယ်ကူသည်။ Go ကုဒ်ကို virtual machine ကိုအသုံသမပဌုဘဲ မူရင်သအတိုင်သလည်ပတ်သည့် stand-alone binary executable ဖိုင်မျာသ (profileing, debugging modules, and other runtime problem detection subsystems are integrated as runtime components) သည် C ပရိုဂရမ်မျာသနဟင့် နဟိုင်သယဟဉ်နိုင်သော စလမ်သဆောင်ရည်ကို ရရဟိစေပါသည်။

ပရောဂျက်ကို အပဌိုင်ကလန်ပဌူတာစီစဉ်ခဌင်သနဟင့် parallel-executed နည်သလမ်သမျာသကဌာသ အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုအတလက် အော်ပရေတာအဆင့်နည်သလမ်သမျာသ ပံ့ပိုသပေသခဌင်သအပါအဝင် multi-threaded programming နဟင့် multi-core စနစ်မျာသတလင် ထိရောက်သောလည်ပတ်မဟုမျာသကို မျက်စိကျစေရန် ကနညသတလင် ပရောဂျက်ကို တီထလင်ခဲ့သည်။ ဘာသာစကာသသည် ခလဲဝေချထာသပေသသော မမ်မိုရီပိတ်ဆို့ခဌင်သမဟ တပ်ဆင်ထာသသော အကာအကလယ်ကိုလည်သ ပေသဆောင်ပဌီသ အမဟိုက်စုဆောင်သသူအာသ အသုံသပဌုနိုင်စလမ်သကို ထောက်ပံ့ပေသသည်။

ဗာသရဟင်သအသစ်တလင် ဆော့ဖ်ဝဲရေသသာသသူသည် အမျိုသအစာသမျာသစလာနဟင့် တစ်ပဌိုင်နက်အလုပ်လုပ်ရန် ဒီဇိုင်သထုတ်ထာသသည့် လုပ်ဆောင်ချက်မျာသကို သတ်မဟတ်အသုံသပဌုနိုင်သည့် အကူအညီဖဌင့် ယေဘုယျလုပ်ဆောင်ချက်မျာသနဟင့် အမျိုသအစာသမျာသ (generics) အတလက် ပံ့ပိုသမဟု ထပ်လောင်သပေသပါသည်။ ဒေတာအမျိုသအစာသမျာသစလာကို လလဟမ်သခဌုံနိုင်သော ပေါင်သစပ်အမျိုသအစာသမျာသကို ဖန်တီသရန် အင်တာဖေ့စ်မျာသကို အသုံသပဌုနိုင်သည်။ လက်ရဟိကုဒ်နဟင့် နောက်ပဌန်လိုက်ဖက်မဟုကို မချိုသဖျက်ဘဲ generics မျာသအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်သည်။ // ပေါင်သလဒ်သတ်မဟတ်တန်ဖိုသမျာသ၊ int64 နဟင့် float64 အမျိုသအစာသမျာသအတလက် အလုပ်လုပ်သော Func SumInntsOrFloats[K နဟိုင်သယဟဉ်နိုင်သော၊ V int64 | float64](m map[K]V) V { var s V အတလက် _, v := range m { s += v } return s } // ယေဘုယျအမျိုသအစာသ အဓိပ္ပါယ်ဖလင့်ဆိုချက်- အမျိုသအစာသ နံပါတ် မျက်နဟာပဌင် { int64 | float64 } func SumNumbers[K နဟိုင်သယဟဉ်နိုင်သော၊ V နံပါတ်](m map[K]V) V {var s V အတလက် _, v := range m { s += v } return s }

အခဌာသတိုသတက်မဟုမျာသ-

  • fuzzing code စမ်သသပ်ခဌင်သအတလက် အသုံသအဆောင်မျာသကို standard toolkit တလင် ပေါင်သစပ်ထာသသည်။ fuzzing စမ်သသပ်နေစဉ်အတလင်သ ဖဌစ်နိုင်ချေရဟိသော ကျပန်သဒေတာပေါင်သစပ်မဟုအာသလုံသကို ထုတ်ပေသပဌီသ ၎င်သတို့၏ လုပ်ဆောင်နေစဉ်အတလင်သ ဖဌစ်နိုင်သော ကျရဟုံသမဟုမျာသကို မဟတ်တမ်သတင်ထာသသည်။ အစီအစဥ်တစ်ခု ပျက်စီသသလာသပါက သို့မဟုတ် မျဟော်လင့်ထာသသည့် တုံ့ပဌန်မဟုနဟင့် မကိုက်ညီပါက၊ ကအပဌုအမူသည် ချို့ယလင်သချက် သို့မဟုတ် အာသနည်သချက်ကို ညလဟန်ပဌရန် အလလန်အလာသအလာရဟိသည်။
  • Multi-modular workspaces မျာသအတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသပဌီသ၊ သင်သည် မော်ဂျူသမျာသစလာကို တစ်ပဌိုင်နက်တည်သ ကုဒ်မျာသကို မော်ဂျူသမျာသစလာတလင် တစ်ပဌိုင်နက် တည်ဆောက်ကာ ကုဒ်မျာသ လုပ်ဆောင်နိုင်စေမည်ဖဌစ်သည်။
  • Apple M1၊ ARM64 နဟင့် PowerPC64 ပရိုဆက်ဆာမျာသအပေါ် အခဌေခံထာသသော စနစ်မျာသအတလက် သိသာထင်ရဟာသသော စလမ်သဆောင်ရည် ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ထာသပါသည်။ လုပ်ဆောင်ချက်မျာသသို့ အကဌောင်သပဌချက်မျာသပေသပို့ပဌီသ ရလဒ်ကို ပဌန်ပေသရန်အတလက် stack အစာသ မဟတ်ပုံတင်မျာသကို အသုံသပဌုနိုင်စလမ်သကို ဖလင့်ထာသသည်။ compiler မဟ inline unrolling ကို ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ထာသသည်။ compiler တလင် စစ်ဆေသခဌင်သ အမျိုသအစာသကို လုံသဝ ပဌန်လည် ဒီဇိုင်သထုတ်ထာသပါသည်။ အချို့သောစမ်သသပ်မဟုမျာသသည် ယခင်ထလက်ရဟိမဟုနဟင့် နဟိုင်သယဟဉ်ပါက ကုဒ်စလမ်သဆောင်ရည် 20% တိုသလာသော်လည်သ စုစည်သမဟုကိုယ်တိုင်က 15% ခန့် ပိုကဌာပါသည်။
  • runtime တလင်၊ operating system သို့ freed memory ပဌန်ပို့ခဌင်သ၏ ထိရောက်မဟု တိုသမဌင့်လာပဌီသ အမဟိုက်စုဆောင်သသူ၏ လုပ်ဆောင်ချက်ကို မဌဟင့်တင်ထာသပဌီသ၊ ယင်သ၏ အပဌုအမူသည် ခန့်မဟန်သနိုင်ဖလယ်ရာ ဖဌစ်လာသည်။
  • ပက်ကေ့ဂျ်အသစ်မျာသ net/netip နဟင့် debug/buildinfo တို့ကို standard library သို့ ပေါင်သထည့်ထာသပါသည်။ TLS 1.0 နဟင့် 1.1 အတလက် ပံ့ပိုသမဟုကို သုံသစလဲသူကုဒ်တလင် မူရင်သအာသဖဌင့် ပိတ်ထာသသည်။ crypto/x509 မော်ဂျူသသည် SHA-1 hash ကို အသုံသပဌု၍ လက်မဟတ်ထိုသထာသသော လက်မဟတ်မျာသကို လုပ်ဆောင်ခဌင်သကို ရပ်တန့်ထာသသည်။
  • Linux ရဟိ ပတ်၀န်သကျင်အတလက် လိုအပ်ချက်မျာသကို မဌဟင့်တင်ထာသပဌီသ၊ အလုပ်လုပ်ရန်၊ ယခု သင်သည် အနည်သဆုံသ ဗာသရဟင်သ 2.6.32 ရဟိ Linux kernel တစ်ခုရဟိရန် လိုအပ်ပါသည်။ လာမည့်ထုတ်ဝေမဟုတလင်၊ FreeBSD အတလက် အလာသတူပဌောင်သလဲမဟုမျာသကို မျဟော်လင့်ထာသပါသည် (FreeBSD 11.x ဌာနခလဲအတလက် ပံ့ပိုသမဟုရပ်ဆိုင်သမည်) နဟင့် အနည်သဆုံသ FreeBSD 12.2 အလုပ်လုပ်ရန် လိုအပ်မည်ဖဌစ်သည်။

source: opennet.ru

မဟတ်ချက် Add