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

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

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

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

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

  • ကုန်တင်ကုန်ချပက်ကေ့ဂျ်မန်နေဂျာသည် အလိုအလျောက်ဖဌေရဟင်သနိုင်သည့်သတိပေသချက်မျာသကိုရဟာဖလေတလေ့ရဟိခဌင်သနဟင့် "ကုန်တင်ကုန်ချပဌင်ဆင်ခဌင်သ" သို့မဟုတ် "ကုန်တင်ကုန်ချကလစ်ပီ-fix" လုပ်ဆောင်ခဌင်သအတလက် သင့်လျော်သောအကဌံပဌုချက်မျာသကို ထုတ်ပေသသည်။ သတိပေသချက်- အသုံသမပဌုသော တင်သလင်သမဟု- 'std::hash::Hash' —> src/main.rs:1:5 | ၁ | std::hash::Hash; | ^^^^^^^^^^^^^^^^| = မဟတ်ချက်- '#[warn(unused_imports)]' သည် မူရင်သသတိပေသချက်- 'foo' (bin "foo") မဟ သတိပေသချက် 1 ခု ထုတ်ပဌန်ခဲ့သည် (အကဌံပဌုချက် 1 ခုကို အသုံသပဌုရန် 'ကုန်တင်ပဌင်ဆင်ခဌင်သ —bin "foo"' ကို လုပ်ဆောင်ပါ)
  • Cargo သည် "cargo install" command ဖဌင့် library ကိုထည့်သလင်သရန်ကဌိုသစာသသောအခါ "cargo add" command ကိုအသုံသပဌုရန်အတလက် အကဌံပဌုချက်အထလက်ကို ထည့်သလင်သထာသပါသည်။
  • စုစည်သမဟုအချိန်ကို လျဟော့ချရန်၊ တည်ဆောက်မဟုစခရစ်မျာသတလင် အမဟာသရဟာခဌင်သဆိုင်ရာ အချက်အလက်ပါဝင်မဟုကို မူရင်သအာသဖဌင့် ရပ်တန့်ထာသသည်။ build scripts မျာသကို အောင်မဌင်စလာ လုပ်ဆောင်ပါက၊ ပဌောင်သလဲမဟုသည် မဌင်သာသော ကလဲပဌာသမဟုမျာသ ဖဌစ်ပေါ်မည်မဟုတ်သော်လည်သ ပျက်ကလက်မဟုမျာသ ဖဌစ်ပေါ်ပါက၊ ခဌေရာခံ အမဟိုက်ပုံတလင် အချက်အလက် နည်သပါသသလာသပါမည်။ အပဌုအမူဟောင်သကို Cargo.toml သို့ ပဌန်သလာသရန် သင်ထည့်သင့်သည်- [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • API ၏ အစိတ်အပိုင်သအသစ်ကို တည်ငဌိမ်သောအမျိုသအစာသသို့ ရလဟေ့ထာသပဌီသ၊ နည်သလမ်သမျာသနဟင့် စရိုက်လက္ခဏာမျာသကို အကောင်အထည်ဖော်ရာတလင် တည်ငဌိမ်အောင်ပဌုလုပ်ထာသသည်-
    • CSstr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • ကိန်သသေမျာသအစာသ မည်သည့်အကဌောင်သအရာတလင်မဆို ၎င်သကိုအသုံသပဌုရန် ဖဌစ်နိုင်ခဌေကို ဆုံသဖဌတ်ပေသသည့် "const" attribute ကို လုပ်ဆောင်ချက်မျာသတလင် အသုံသပဌုသည်-
    • SocketAddr::အသစ်
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::အသစ်
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::အသစ်
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • compiler arguments တလင် true နဟင့် false flags မျာသကို အသုံသပဌုနိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသသည်။

source: opennet.ru

မဟတ်ချက် Add