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

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

Go ၏ syntax သည် Python ဘာသာစကားမှ ချေးယူထားသော အချို့သော C language ၏ အကျွမ်းတဝင်ရှိသော ဒြပ်စင်များအပေါ် အခြေခံထားသည်။ ဘာသာစကားသည် အလွန်တိုတောင်းသော်လည်း ကုဒ်သည် ဖတ်ရှုနားလည်ရန် လွယ်ကူသည်။ Go ကုဒ်ကို virtual machine ကိုအသုံးမပြုဘဲ မူရင်းအတိုင်းလည်ပတ်သည့် stand-alone binary executables များအဖြစ် စုစည်းထားသည် (profileing၊ debugging နှင့် အခြားသော runtime problem detection subsystems များအဖြစ် ပေါင်းစပ်ထားသည်။ runtime အစိတ်အပိုင်းများ) သည် သင့်အား C ပရိုဂရမ်များနှင့် နှိုင်းယှဉ်နိုင်သော စွမ်းဆောင်ရည်ကို ရရှိရန် ခွင့်ပြုသည်။

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

အဓိက တီထွင်ဆန်းသစ်မှုများGo 1.15 ထုတ်ဝေမှုတွင် မိတ်ဆက်ခဲ့သည်-

  • ချိတ်ဆက်ကိရိယာ၏လုပ်ဆောင်ချက်ကို လည်ပတ်မှုအမြန်နှုန်းတိုးမြှင့်ခြင်းနှင့် မှတ်ဉာဏ်သုံးစွဲမှုကို လျှော့ချခြင်းနှင့် ကုဒ်ထိန်းသိမ်းမှုတို့ကို ရိုးရှင်းစေခြင်း၏ ဦးတည်ချက်နှစ်ခုစလုံးတွင် သိသိသာသာ တိုးတက်ကောင်းမွန်လာခဲ့သည်။ ELF လည်ပတ်နိုင်သော ဖိုင်ဖော်မတ် (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) ကို အသုံးပြု၍ လည်ပတ်မှုစနစ်များတွင် စမ်းသပ်သောအခါ၊ ပုံမှန် Go အပလီကေးရှင်းကြီးများ၏ 20% ပိုမြန်လာပြီး မှတ်ဉာဏ်သုံးစွဲမှုကို ပျမ်းမျှ 30% လျှော့ချခဲ့သည်။ အလုပ်၏အပြိုင်လုပ်ဆောင်မှုအဆင့်ကို တိုးမြင့်ရန် အရာဝတ္ထုဖိုင်ဖော်မတ်အသစ်သို့ ပြောင်းကာ အတွင်းပိုင်းအဆင့်များကို ပြန်လည်လုပ်ဆောင်ခြင်းဖြင့် ထုတ်လုပ်မှုစွမ်းအားကို မြှင့်တင်နိုင်ခဲ့သည်။ မူရင်းလင့်ခ်ကို ယခု linux/amd64 နှင့် "-buildmode=pie" ရှိ "-buildmode=pie" ရှိ linux/amd64 နှင့် linux/armXNUMX စနစ်များတွင် ပုံမှန်အားဖြင့် အသုံးပြုနေပြီဖြစ်ပြီး C linker ကိုအသုံးပြုရန်မလိုအပ်တော့ပါ။
  • runtime တွင်၊ CPU cores အများအပြားရှိသော စနစ်များပေါ်ရှိ အရာဝတ္တုငယ်များ ဖြန့်ဖြူးမှုကို သိသာထင်ရှားစွာ မြှင့်တင်ထားပြီး latency ကို လျှော့ချထားသည်။ ပျက်ကွက်မှုများတွင်၊ လိပ်စာကိုပြသမည့်အစား ကိန်းဂဏာန်းနှင့် စာတန်းအမျိုးအစားတန်ဖိုးများကို ပြသသည်။ Go အပလီကေးရှင်းသို့ SIGSEGV၊ SIGBUS နှင့် SIGFPE အချက်ပြမှုများကို ပေးပို့သောအခါ၊ os/signal. ကိုင်တွယ်သူအား အကြောင်းကြားခြင်းမရှိဘဲ၊ အပလီကေးရှင်းသည် stack trace output တစ်ခုဖြင့် ထွက်ပါမည် (ယခင်က အပြုအမူသည် ခန့်မှန်း၍မရပါ)။
  • အမှိုက်စုဆောင်းသူအတွက် မက်တာဒေတာအချို့ပါဝင်မှုကို ရပ်တန့်ကာ အသုံးမပြုသော မက်တာဒေတာကို ပိုမိုပြင်းထန်စွာ သန့်ရှင်းရေးပြုလုပ်ခြင်းဖြင့် ထုတ်လုပ်နိုင်သော စီစဥ်နိုင်သောဖိုင်များ၏ အရွယ်အစားကို ပျမ်းမျှ 5% လျှော့ချရန် compiler ကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ထားသည်။
  • Spectre အတန်းအစားတိုက်ခိုက်မှုများကိုကာကွယ်ရန်အတွက် "-spectre" အလံကို compiler နှင့် assembler တွင်ထည့်သွင်းထားသည် (ပရိုဂရမ်အများစုအတွက် ၎င်းကိုမလိုအပ်ပါ၊ ရွေးချယ်မှုကိုဖွင့်ခြင်းသည်သာ မျှတနိုင်သည် အချို့သော ကိစ္စများသည် အလွန်တိကျသည်။).
  • X.509 အသိအမှတ်ပြုလက်မှတ်များတွင်၊ ဘာသာရပ်ဆိုင်ရာ အစားထိုးအမည်များ အကွက်ပျောက်နေပါက လက်ခံသူအမည်အဖြစ် သဘောထားတော့မည် မဟုတ်ပါ။
  • GOPROXY ပတ်၀န်းကျင် variable ရှိ "go" အမိန့်သည် ယခုအခါ ကော်မာ သို့မဟုတ် "|" ဖြင့် ပိုင်းခြားထားသော ပရောက်စီများစွာကို စာရင်းပြုစုနိုင်ပါပြီ။ စာရင်းရှိ ပထမပရောက်စီသည် အမှားအယွင်း (404 သို့မဟုတ် 410) ကို ပြန်ပို့ပါက၊ ဒုတိယပရောက်စီမှတစ်ဆင့် ဆက်သွယ်ရန် ကြိုးပမ်းမှုတစ်ခု စသည်တို့ကို ပြုလုပ်မည်ဖြစ်သည်။
  • "x" သည် rune သို့မဟုတ် byte မှလွဲ၍ အခြား integer type ဖြစ်ပါက vet utility သည် string(x) မှပြောင်းရန်ကြိုးစားခြင်းနှင့်ပတ်သက်၍ သတိပေးချက်တစ်ခုထပ်ဖြည့်ထားသည်။
  • GNU assembler syntax ကို disassembling လုပ်ခြင်းကို ပံ့ပိုးရန် "-gnu" အလံကို objdump utility တွင် ထည့်သွင်းထားသည်။
  • ပက်ကေ့ခ်ျအသစ် ထပ်ထည့်လိုက်ပါတယ်။ အချိန်/tzdataဒေတာဘေ့စ်တစ်ခုအား အချိန်ဇုန်ဒေတာနှင့် ပရိုဂရမ်ထဲသို့ ပေါင်းစပ်နိုင်စေမည့်၊
  • အရင်းအမြစ် စာသားများနှင့် စာရွက်စာတမ်းများမှ ဖယ်ရှားခဲ့သည်။ whitelist/blacklist နှင့် master/slave ဟူသော စကားစုများကို ယခု "ခွင့်ပြုစာရင်း"၊ "ပိတ်ဆို့စာရင်း"၊ "လုပ်ငန်းစဉ်"၊ "pty" "proc" နှင့် "control" တို့ဖြင့် အစားထိုးထားသည်။
  • စံစာကြည့်တိုက်အတွက် အသေးစား တိုးတက်မှုများစွာကို ပြုလုပ်ထားပါသည်။
  • GOARCH=arm နှင့် GOARCH=arm6.7 မုဒ်များတွင် OpenBSD 64 အတွက် ပံ့ပိုးမှု ထပ်လောင်းပါ (ယခင်က GOARCH=386 နှင့် GOARCH=amd64 ကိုသာ ပံ့ပိုးထားသည်)။
  • 64-bit RISC-V ပလပ်ဖောင်း (GOOS=linux၊ GOARCH=riscv64) ၏ ဖွံ့ဖြိုးတိုးတက်မှုကို ဆက်လက်လုပ်ဆောင်ခဲ့သည်။
  • 32-bit x86 စနစ်များအတွက်၊ နောက်ထွက်ရှိမှုတွင် အနိမ့်ဆုံးစနစ်လိုအပ်ချက်များကို မြှင့်တင်ပါမည် - SSE2 ပါသည့် ပရိုဆက်ဆာများကိုသာ ဆက်လက်ပံ့ပိုးပေးပါမည်။ GOARCH=386 မုဒ်တွင် တည်ဆောက်ရန်အတွက် အနည်းဆုံး Intel Pentium 4 (2000 တွင်ထွက်ရှိ) သို့မဟုတ် AMD Opteron/Athlon 64 (2003 တွင်ထွက်ရှိ) လိုအပ်ပါသည်။

source: opennet.ru

မှတ်ချက် Add