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

Mozilla ပရောဂျက်မှ တည်ထောင်ထားသော Rust 1.68 အထွေထွေ-ရည်ရွယ်ချက် ပရိုဂရမ်းမင်းဘာသာစကားကို ထုတ်ဝေခဲ့သော်လည်း ယခုအခါ လွတ်လပ်သော အကျိုးအမြတ်မယူသော အဖွဲ့အစည်း Rust Foundation ၏ ပံ့ပိုးကူညီမှုဖြင့် ထုတ်ဝေလိုက်ပါသည်။ ဘာသာစကားသည် မှတ်ဉာဏ်ဘေးကင်းရေးကို အာရုံစိုက်ပြီး အမှိုက်စုဆောင်းသူနှင့် runtime ကိုအသုံးပြုခြင်းကို ရှောင်ကြဉ်နေစဉ်တွင် မြင့်မားသောအလုပ်အပြိုင်ရရှိရန် နည်းလမ်းများကို ပံ့ပိုးပေးသည် (runtime ကို အခြေခံအစပျိုးခြင်းနှင့် စံစာကြည့်တိုက်ကို ပြုပြင်ထိန်းသိမ်းမှုသို့ လျှော့ချထားသည်)။

Rust ၏ မမ်မိုရီ ကိုင်တွယ်မှုနည်းလမ်းများသည် ညွှန်မှတ်များကို အသုံးချသည့်အခါ ဆော့ဖ်ဝဲရေးသားသူကို အမှားအယွင်းများမှ ကယ်တင်ပြီး အဆင့်နိမ့်မှတ်ဉာဏ် ကိုင်တွယ်မှုတွင် ဖြစ်ပေါ်လာသည့် ပြဿနာများကို ကာကွယ်ရန်၊ ၎င်းကို လွတ်ပြီးသည့်နောက် မမ်မိုရီဧရိယာသို့ ဝင်ရောက်ခြင်း၊ null pointers များကို ဆိုင်းငံ့ထားခြင်း၊ ကြားခံများ ကျော်လွန်ခြင်းများစသည်ဖြင့် ဖြစ်ပေါ်လာသော ပြဿနာများကို ကာကွယ်ပေးပါသည်။ စာကြည့်တိုက်များကို ဖြန့်ဝေရန်၊ တည်ဆောက်မှုများနှင့် မှီခိုအားထားမှုများကို စီမံရန်၊ ပရောဂျက်သည် Cargo package manager ကို တီထွင်သည်။ crates.io repository ကို hosting libraries များအတွက် ပံ့ပိုးထားပါသည်။

ကိုးကားစစ်ဆေးခြင်း၊ အရာဝတ္တုပိုင်ဆိုင်မှုကိုခြေရာခံခြင်း၊ အရာဝတ္တုသက်တမ်းကိုခြေရာခံခြင်း (scopes) ကိုခြေရာခံခြင်းနှင့် ကုဒ်လုပ်ဆောင်နေစဉ်အတွင်း မမ်မိုရီဝင်ရောက်ခြင်း၏မှန်ကန်မှုကို အကဲဖြတ်ခြင်းများမှတစ်ဆင့် Memory safety ကို Rust တွင် ပံ့ပိုးပေးပါသည်။ Rust သည် ကိန်းပြည့်ပြည့်လျှံမှုများကို အကာအကွယ်ပေးသည်၊ အသုံးမပြုမီ ပြောင်းလဲနိုင်သောတန်ဖိုးများကို မဖြစ်မနေစတင်လုပ်ဆောင်ရန် လိုအပ်သည်၊ စံဒစ်ဂျစ်တိုက်တွင် ပိုမိုကောင်းမွန်သော အမှားများကို ကိုင်တွယ်ရန်၊ ပုံသေအားဖြင့် မပြောင်းလဲနိုင်သော ကိုးကားချက်များနှင့် ကိန်းရှင်များ၏ သဘောတရားကို ကျင့်သုံးသည်၊ ယုတ္တိအမှားများကို အနည်းဆုံးဖြစ်စေရန် ခိုင်လုံသောအငြိမ်စာရိုက်ခြင်းကို ပံ့ပိုးပေးပါသည်။

အဓိက တီထွင်ဆန်းသစ်မှုများ-

  • Cargo package manager နှင့် crates.io repository တို့သည် repository တွင်ရှိသော packages များအားလုံး၏ရရှိနိုင်သောဗားရှင်းများကိုထင်ဟပ်သည့်အညွှန်းတစ်ခုဖြင့်အလုပ်လုပ်ပုံအသစ်ကိုသတ်မှတ်ပေးသည့် Sparse protocol အတွက် တည်ငြိမ်အောင်ပံ့ပိုးပေးပါသည်။ ပရိုတိုကောအသစ်သည် သင့်အား crates.io နှင့်အလုပ်လုပ်ခြင်း၏အရှိန်ကိုသိသိသာသာတိုးစေပြီး repository အတွင်းရှိပက်ကေ့ဂျ်အရေအတွက်များပိုမိုကြီးထွားလာခြင်းဖြင့် scaling ပြဿနာများကိုဖြေရှင်းနိုင်စေပါသည်။

    အညွှန်းအပြည့်အစုံကို ဒေါင်းလုဒ်လုပ်ခြင်းကြောင့် ကြန့်ကြာမှုများကို လျှော့ချရန်၊ Sparse သည် ပရောဂျက်တစ်ခု၏ မှီခိုမှုကို ကာမိစေရန် Git ကို အသုံးပြု၍ အညွှန်းကို ဝင်ရောက်ခြင်းအစား လိုအပ်သော အညွှန်းကိန်းဒေတာကိုသာ HTTPS မှ တိုက်ရိုက်ဒေါင်းလုဒ်လုပ်ခြင်းတွင် ပါဝင်ပါသည်။ အညွှန်းဒေတာကို ပေးဆောင်ရန် ဝန်ဆောင်မှုအသစ်တစ်ခုဖြစ်သည့် index.crates.io ကို အသုံးပြုသည်။ ပုံမှန်အားဖြင့်၊ ပရိုတိုကောအသစ်ကို Rust 1.70 ဌာနခွဲတွင် အသုံးပြုရန် စီစဉ်ထားပြီး ၎င်းကိုဖွင့်ရန်၊ သင်သည် ပတ်ဝန်းကျင်ပြောင်းလဲမှု "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" သို့မဟုတ် 'protocol =' ကန့်သတ်ဘောင်ကို "[registries. crates-io]" အပိုင်း .cargo/config.toml ဖိုင် 'ကျဲ'။

  • “ပင်နံပါတ်!” မက်ခရိုကို ထည့်သွင်းထားသည်၊ ၎င်းသည် သင့်အား ၎င်း၏ပြည်နယ်၏ ဒေသအလိုက် ပင်ထိုးခြင်းဖြင့် Pin <&mut T> ဖွဲ့စည်းပုံကို ဖန်တီးနိုင်စေမည့် (Box::pin နှင့် မတူဘဲ၊ ၎င်းသည် အမှိုက်ပုံပေါ်တွင် မှတ်ဉာဏ်ကို ခွဲဝေပေးမည်မဟုတ်သော်လည်း ချည်နှောင်ထားသည်။ stack အဆင့်မှာ)။
  • ပုံမှန်မှတ်ဉာဏ် ခွဲဝေမှု အမှားအယွင်း ကိုင်တွယ်ဖြေရှင်းသူအား အဆိုပြုထားပြီး၊ စံခွဲဝေမှု ပက်ကေ့ဂျ်ကို အသုံးပြုသောအခါတွင် အသုံးပြုသည်။ မှတ်ဉာဏ်ခွဲဝေမှု မအောင်မြင်သောအခါ alloc (std မပါသော) ကိုသာ ဖွင့်ထားသည့် အပလီကေးရှင်းများသည် “#[panic_handler]” ကို အသုံးပြု၍ ကြားဖြတ်ဟန့်တားနိုင်သည့်အရာအား “ထိတ်လန့်ခြင်း!” ကိုင်တွယ်သူကို ခေါ်ပါမည်။ std စာကြည့်တိုက်ကို အသုံးပြုသည့် ပရိုဂရမ်များသည် stderr နှင့် ပျက်စီးစေရန် အမှားအယွင်းအချက်အလက်များကို ဆက်လက်ပုံနှိပ်နေမည်ဖြစ်ပါသည်။
  • API ၏ အစိတ်အပိုင်းအသစ်ကို တည်ငြိမ်သောအမျိုးအစားသို့ ရွှေ့ထားပြီး၊ နည်းလမ်းများနှင့် စရိုက်လက္ခဏာများကို အကောင်အထည်ဖော်ရာတွင် တည်ငြိမ်အောင်ပြုလုပ်ထားသည်-
    • {core,std}::pin::pin!
    • impl From {f32,f64} အတွက်
    • std::လမ်းကြောင်း::MAIN_SEPARATOR_STR
    • PathBuf အတွက် DerefMut
  • ကိန်းသေများအစား မည်သည့်အကြောင်းအရာတွင်မဆို အသုံးပြုရန် ဖြစ်နိုင်ခြေကို ဆုံးဖြတ်ပေးသည့် "const" attribute ကို VecDeque::new function တွင် အသုံးပြုပါသည်။
  • ပလက်ဖောင်းပေါ်မှာ အလုပ်လုပ်ဖို့ Android အနည်းဆုံး NDK r25 (API 19) လိုအပ်ပါသည်၊ ဆိုလိုသည်မှာ အနည်းဆုံး ပံ့ပိုးပေးထားသော ဗားရှင်းဖြစ်သည်။ Android 4.4 (KitKat) သို့ အဆင့်မြှင့်တင်ထားသည်။
  • တတိယအဆင့် ပံ့ပိုးမှုအား Sony PlayStation Vita ပလပ်ဖောင်း (armv7-sony-vita-newlibeabihf) အတွက် အကောင်အထည်ဖော်ခဲ့သည်။ တတိယအဆင့်တွင် အခြေခံပံ့ပိုးမှုပါဝင်သော်လည်း အလိုအလျောက်စမ်းသပ်ခြင်းမရှိဘဲ၊ တရားဝင်တည်ဆောက်မှုများကို ထုတ်ပြန်ခြင်း သို့မဟုတ် ကုဒ်ကိုတည်ဆောက်နိုင်သည်ရှိမရှိ စစ်ဆေးခြင်းမပြုဘဲဖြစ်သည်။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster