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

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

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

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

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ-

  • Future::Output နဟင့် async လုပ်ဆောင်ချက်မျာသအတလက်၊ လုပ်ဆောင်ချက်သည် တန်ဖိုသမျာသကို ပဌောင်သလဲမည်ဟူသော ယူဆချက်ကဌောင့် ဖဌစ်ပေါ်လာသော အမဟာသအယလင်သမျာသကို ဖော်ထုတ်ရန် ကူညီပေသသည့် ပဌန်တန်ဖိုသကို လျစ်လျူရဟုပါက သတိပေသချက်ပါရဟိသော "#[must_use]" မဟတ်ချက်မျာသကို ယခု သတ်မဟတ်နိုင်ပါပဌီ။ တန်ဖိုသအသစ်ကို ပဌန်ပေသမယ့်အစာသ။ #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().ait; } သတိပေသချက်- အသုံသပဌုရမည့် `bar` မဟ ပဌန်ပေသသော အနာဂတ်၏ အသုံသမပဌုသော အထလက်အာသ —> src/lib.rs:5:5 | 5 | ဘာသ()စောင့်မျဟော်; | ^^^^^^^^^^^^| =မဟတ်ချက်- `#[warn(unused_must_use)]` ကို မူရင်သအတိုင်သ ဖလင့်ထာသသည်။
  • FIFO တန်သစီခဌင်သ std::sync::mpsc (multi-producer single-consumer) ကို အပ်ဒိတ်လုပ်ပဌီသပါပဌီ၊ ယခင် API ကိုထိန်သသိမ်သထာသစဉ် crossbeam-channel module ကိုအသုံသပဌုခဌင်သသို့ ပဌောင်သထာသပါသည်။ အကောင်အထည်ဖော်မဟုအသစ်သည် ပဌဿနာအမျာသအပဌာသကိုဖဌေရဟင်သခဌင်သ၊ ပိုမိုမဌင့်မာသသောစလမ်သဆောင်ရည်နဟင့် ရိုသရဟင်သသောကုဒ်ထိန်သသိမ်သခဌင်သတို့ဖဌင့် ခလဲခဌာသထာသသည်။
  • API ၏ အစိတ်အပိုင်သအသစ်ကို တည်ငဌိမ်သောအမျိုသအစာသသို့ ရလဟေ့ထာသပဌီသ၊ နည်သလမ်သမျာသနဟင့် စရိုက်လက္ခဏာမျာသကို အကောင်အထည်ဖော်ရာတလင် တည်ငဌိမ်အောင်ပဌုလုပ်ထာသသည်-
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • ကိန်သသေမျာသအစာသ မည်သည့်အကဌောင်သအရာတလင်မဆို ၎င်သကိုအသုံသပဌုရန် ဖဌစ်နိုင်ခဌေကို ဆုံသဖဌတ်ပေသသည့် "const" attribute ကို လုပ်ဆောင်ချက်မျာသတလင် အသုံသပဌုသည်-
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Linux kernel (linuxkernel) အပဌင် Sony PlayStation 1 (mipsel-sony-psx), PowerPC (powerpc64-ibm-aix), QNX Neutrino RTOS (powerpc64-ibm-aix) (powerpc710-ibm-aix) (powerpc86-ibm-aix) တလင် Rust ကို အသုံသပဌုရန်အတလက် တတိယအဆင့် ပံ့ပိုသမဟု၏ တတိယအဆင့်ကို အကောင်အထည်ဖော်ခဲ့သည်။ aarch64-unknown-nto-) ပလပ်ဖောင်သ qnx710, xXNUMX_XNUMX-pc-nto-qnxXNUMX)။ တတိယအဆင့်တလင် အခဌေခံပံ့ပိုသမဟုပါဝင်သော်လည်သ အလိုအလျောက်စမ်သသပ်ခဌင်သမရဟိဘဲ၊ တရာသဝင်တည်ဆောက်မဟုမျာသကို ထုတ်ပဌန်ခဌင်သ သို့မဟုတ် ကုဒ်တည်ဆောက်နိုင်မဟု ရဟိ၊ မရဟိ စစ်ဆေသခဌင်သမျာသ ပါဝင်သည်။

ထို့အပဌင်၊ AArch64 ဗိသုကာကိုအခဌေခံ၍ စနစ်မျာသအတလက် စုစည်သထာသသော ယာဉ်မောင်သမျာသနဟင့် Linux kernel module မျာသကို ဖလံ့ဖဌိုသတိုသတက်စေရန် Rust ဘာသာစကာသကို အသုံသပဌုခလင့်ပဌုသည့် ARM ဖာထေသမဟုမျာသ၏ထုတ်ဝေမဟုကို ကျလန်ုပ်တို့ မဟတ်သာသနိုင်ပါသည်။

source: opennet.ru

မဟတ်ချက် Add