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

မဟတ်ချက် Add