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

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

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

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

  • ကုန်တင်ကုန်ချပက်ကေ့ဂျ်မန်နေဂျာသည် တည်ဆောက်မှုတစ်ခုအတွင်း ဖြစ်ပေါ်လာသည့် မိတ္တူအမှားများနှင့် သတိပေးချက်များကို ပေါင်းစည်းနိုင်စွမ်းရှိသည်။ ကွဲပြားသော ကန့်သတ်ဘောင်များပါသည့် ပက်ကေ့ခ်ျတစ်ခု၏ တည်ဆောက်မှုအများအပြားကို ဖြစ်ပေါ်စေသည့် "ကုန်တင်စမ်းသပ်မှု" နှင့် "ကုန်တင်စစ်ဆေးခြင်း --all-targets" ကဲ့သို့သော အမိန့်များကို အကောင်အထည်ဖော်သည့်အခါ၊ အသုံးပြုသူသည် ယခုပြသနေမည့်အစား ထပ်တလဲလဲ ပြဿနာဖြစ်ပွားမှု၏ အကျဉ်းချုပ်ကို ပြသထားပါသည်။ တူညီသောအရာကို ထပ်ခါတလဲလဲ တည်ဆောက်သောအခါ တူညီသောသတိပေးချက်များ အများအပြား။ဖိုင်။ $ cargo +1.55.0 check —all-targets စစ်ဆေးခြင်း foo v0.1.0 သတိပေးချက်- လုပ်ဆောင်ချက်ကို ဘယ်တော့မှ အသုံးမပြုပါ- 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^| = မှတ်ချက်- '#[warn(dead_code)]' သည် မူရင်းသတိပေးချက်- 'foo' (lib) မှ သတိပေးချက် 1 ခု ထုတ်ပေးသည်- 'foo' (lib စမ်းသပ်မှု) မှ သတိပေးချက် 1 ခု (မိတ္တူပွားမှု 1 ခု) ပြီးပါပြီ dev [unoptimized + debuginfo] ပစ်မှတ် (s) 0.84s တွင်
  • စံဒစ်ဂျစ်တိုက်ရှိ ရေပေါ်အမှတ်ခွဲခြမ်းစိတ်ဖြာမှုကုဒ်ကို ပိုမိုမြန်ဆန်ပြီး ပိုမိုတိကျသော Eisel-Lemire အယ်လဂိုရီသမ်ကို အသုံးပြုရန်အတွက် ရွှေ့ထားပြီး၊ ယခင်က တွေ့ရှိခဲ့သည့် ပြဿနာအချို့ကို ဂဏန်းအဝိုင်းနှင့် ခွဲခြမ်းစိတ်ဖြာခြင်းဆိုင်ရာ ဂဏန်းများကို ဖြေရှင်းပေးသည့် ပိုမိုမြန်ဆန်၍ တိကျသည်။
  • နမူနာပုံစံများတွင် မပိတ်ထားသော အပိုင်းအခြားများကို သတ်မှတ်နိုင်စွမ်းကို တည်ငြိမ်အောင်ပြုလုပ်ထားပြီး (“X..” ကို X တန်ဖိုးဖြင့် စတင်ကာ ကိန်းပြည့်အမျိုးအစား၏ အမြင့်ဆုံးတန်ဖိုးဖြင့် အဆုံးသတ်သည့် အပိုင်းအခြားအဖြစ် သတ်မှတ်နိုင်သည်): x အဖြစ် u32 { 0 => println! ("သုည!"), 1.. => println!("positive number!"), }
  • std::io::ErrorKind (အမှားများကို NotFound နှင့် WouldBlock ကဲ့သို့သော အမျိုးအစားများအဖြစ် အမျိုးအစားခွဲခြားသည်) ဖြင့် အကျုံးဝင်သော အမှားမျိုးကွဲများကို တိုးချဲ့ထားသည်။ ယခင်က၊ ရှိပြီးသားအမျိုးအစားများနှင့် ကိုက်ညီမှုမရှိသော အမှားများသည် ErrorKind::ပြင်ပကုဒ်တွင် အမှားအယွင်းများအတွက်လည်း အသုံးပြုထားသည့် အခြားအမျိုးအစားထဲသို့ ရောက်သွားပါသည်။ ယခုအခါတွင် သီးခြားအတွင်းပိုင်း ErrorKind::လက်ရှိအမျိုးအစားများနှင့် ကိုက်ညီမှုမရှိသော အမှားများအတွက် အမျိုးအစားခွဲမထားသော အမျိုးအစားတစ်ခုရှိပြီး ErrorKind::အခြားအမျိုးအစားကို စံစာကြည့်တိုက်တွင် မဖြစ်ပေါ်နိုင်သော အမှားများအတွက်သာ ကန့်သတ်ထားသည် (io ပြန်ပေးသည့် စံစာကြည့်တိုက်လုပ်ဆောင်ချက်များ ErrorKind:: အမျိုးအစား အခြား) ကို မသုံးတော့ပါ။
  • API ၏ အစိတ်အပိုင်းအသစ်ကို တည်ငြိမ်သောအမျိုးအစားသို့ ရွှေ့ထားပြီး၊ နည်းလမ်းများနှင့် စရိုက်လက္ခဏာများကို အကောင်အထည်ဖော်ရာတွင် တည်ငြိမ်အောင်ပြုလုပ်ထားသည်-
    • Bound::cloned
    • ရေဆင်း-:as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • Uninit::assume_init_mut
    • Uninit::assume_init_ref
    • Uninit::ရေးပါ။
    • array::မြေပုံ
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • ကိန်းသေများအစား မည်သည့်အကြောင်းအရာတွင်မဆို အသုံးပြုရန် ဖြစ်နိုင်ခြေကို ဆုံးဖြတ်ပေးသည့် “const” attribute ကို str::from_utf8_unchecked method တွင် အသုံးပြုသည်။
  • တတိယအဆင့် ပံ့ပိုးမှုအား powerpc64le-unknown-freebsd ပလပ်ဖောင်းအတွက် အကောင်အထည်ဖော်ခဲ့သည်။ တတိယအဆင့်တွင် အခြေခံပံ့ပိုးမှုပါဝင်သော်လည်း အလိုအလျောက်စမ်းသပ်ခြင်းမရှိဘဲ၊ တရားဝင်တည်ဆောက်မှုများကို ထုတ်ပြန်ခြင်း သို့မဟုတ် ကုဒ်ကိုတည်ဆောက်နိုင်သည်ရှိမရှိ စစ်ဆေးခြင်းမပြုဘဲဖြစ်သည်။

source: opennet.ru

မှတ်ချက် Add