Rust 1.61 پروگرامنگ ٻولي رليز

رسٽ 1.61 عام مقصدي پروگرامنگ ٻولي جو رليز، جيڪو Mozilla پروجيڪٽ پاران قائم ڪيو ويو، پر ھاڻي ترقي يافته غير منافع بخش تنظيم Rust Foundation جي سرپرستي ھيٺ، شايع ڪيو ويو آھي. ٻولي ميموري جي حفاظت تي ڌيان ڏئي ٿي ۽ گاربيج ڪليڪٽر ۽ رن ٽائم جي استعمال کان پاسو ڪندي اعليٰ نوڪري جي برابري حاصل ڪرڻ جا وسيلا مهيا ڪري ٿي (رن ٽائم کي معياري لائبريري جي بنيادي شروعات ۽ سار سنڀال لاءِ گھٽ ڪيو ويو آهي).

رسٽ جي ميموري هينڊلنگ جا طريقا ڊولپر کي غلطين کان بچائيندا آهن جڏهن پوائنٽرز کي هٿي وٺرائيندا آهن ۽ انهن مسئلن کان بچائيندا آهن جيڪي گهٽ-سطح جي ميموري هينڊلنگ جي ڪري پيدا ٿيندا آهن، جهڙوڪ ميموري ايريا کي آزاد ٿيڻ کان پوءِ رسائي حاصل ڪرڻ، نول پوائنٽرز کي رد ڪرڻ، بفر اووررن وغيره وغيره. لائبريرين کي ورهائڻ، تعميرات مهيا ڪرڻ ۽ انحصار کي منظم ڪرڻ، پروجيڪٽ ڪارگو پيڪيج مينيجر کي ترقي ڪري ٿو. crates.io مخزن لائبريرين جي ميزباني لاءِ سپورٽ ڪئي وئي آهي.

ميموري حفاظت فراهم ڪئي وئي آهي زنگ واري وقت تي ريفرنس چيڪنگ ذريعي، اعتراض جي ملڪيت جي ٽريڪ رکڻ، اعتراض جي زندگين جي ٽريڪ رکڻ (اسڪوپس)، ۽ ڪوڊ جي عمل جي دوران ميموري رسائي جي صحيحيت جو جائزو وٺڻ. زنگ انٽيجر اوور فلوز جي خلاف پڻ تحفظ فراهم ڪري ٿو، استعمال ڪرڻ کان اڳ متغير قدرن جي لازمي شروعات جي ضرورت آهي، معياري لائبريري ۾ غلطين کي بهتر نموني سان سنڀاليندو آهي، ڊفالٽ طور ناقابل قابل حوالن ۽ متغيرن جي تصور کي لاڳو ڪري ٿو، منطقي غلطين کي گھٽائڻ لاءِ مضبوط جامد ٽائپنگ پيش ڪري ٿو.

مکيه جدت:

  • اهو ممڪن آهي ته توهان جي پنهنجي واپسي جي ڪوڊ جي وضاحت ڪرڻ لاء مکيه فنڪشن مان. اصل ۾، زنگ جو مکيه فنڪشن صرف "()" (يونٽ) جو قسم واپس ڪري سگهي ٿو، جيڪو هميشه هڪ ڪامياب نڪرڻ واري صورتحال کي ظاهر ڪري ٿو جيستائين ڊولپر واضح طور تي "process::exit(code)" فنڪشن کي سڏيو. Rust 1.26 ۾، بنيادي فنڪشن ۾ غير مستحڪم ختم ٿيڻ واري خاصيت کي استعمال ڪندي، "Ok" ۽ "Err" کي واپس ڪرڻ ممڪن هو، C پروگرامن ۾ EXIT_SUCCESS ۽ EXIT_FAILURE ڪوڊ سان لاڳاپيل. Rust 1.61 ۾، ٽرمينيشن جي خاصيت کي مستحڪم ڪيو ويو آهي، ۽ هڪ مخصوص واپسي ڪوڊ جي نمائندگي ڪرڻ لاءِ هڪ الڳ ExitCode جو قسم تجويز ڪيو ويو آهي، جيڪو پليٽ فارم جي مخصوص واپسي جي قسمن کي ختم ڪري ٿو ٻنهي اڳواٽ بيان ڪيل ثابتيون مهيا ڪندي ڪاميابي ۽ ناڪامي، ۽ طريقي کان ڪسٽم ريٽرن ڪوڊ واپس ڪرڻ لاء. std::process::ExitCode استعمال ڪريو؛ fn main() -> ExitCode { if !check_foo() { واپسي ExitCode::from(8); } Exit Code::SUCCESS }
  • "const fn" جي اظهار کي استعمال ڪندي وضاحت ڪيل افعال جي اضافي صلاحيتون مستحڪم ڪيون ويون آهن، جن کي نه رڳو باقاعده فنڪشن سڏيو ويندو، پر مستقل جي بدران ڪنهن به حوالي سان استعمال ڪيو ويندو. اهي فنڪشن ڳڻيا ويندا آهن مرتب وقت تي، نه رن ٽائم تي، تنهن ڪري اهي ڪجهه پابندين سان مشروط آهن، جيئن ته صرف مستقل کان پڙهڻ جي صلاحيت. نئين ورزن ۾، بنيادي عملن سان فنڪشن پوائنٽرز جي اجازت ڏني وئي آهي ڪانسٽ افعال جي اندر (پائنٽر ٺاهڻ، پاس ڪرڻ ۽ ڪاسٽ ڪرڻ جي اجازت آهي، پر پوائنٽر ذريعي فنڪشن کي ڪال نه ڪرڻ)؛ ڪانسٽ افعال جي عام پيرا ميٽرن لاءِ خاص حدون جيئن ته T: ڪاپي؛ متحرڪ طور تي پهچائڻ جا خاصيتون (ڊائن جي خاصيت)؛ impl خاص قسم جي فنڪشن دليلن ۽ واپسي جي قيمتن لاء.
  • اسٽريم کي سنڀاليندو آهي Stdin، Stdout ۽ Stderr std::io ۾ هاڻي هڪ جامد لائف ٽائم ("'static") آهي جڏهن لاڪ ڪيو ويو آهي، اجازت ڏئي ٿو تعميرات جهڙوڪ "let out = std::io::stdout().lock();" هڪ هينڊل حاصل ڪرڻ ۽ هڪ اظهار ۾ هڪ تالا ترتيب ڏيڻ سان.
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • پن::static_mut
    • پن::static_ref
    • Vec::retain_mut
    • VecDeque ::retain_mut
    • ڪرسر لاءِ لکو<[u8; ن]>
    • std::os::unix::net::SocketAddr::from_pathname
    • std::process::ExitCode
    • std::process::ختم ٿيڻ
    • std::thread::JoinHandle::is_finished
  • "const" وصف، جيڪو مستقل جي بدران ڪنهن به حوالي سان استعمال ڪرڻ جي امڪان کي طئي ڪري ٿو، افعال ۾ استعمال ٿيندو آهي:
    • <*const T>::offset ۽ <*mut T>::offset
    • <*const T>::wrapping_offset ۽ <*mut T>::wrapping_offset
    • <*const T>::add ۽ <*mut T>::add
    • <*const T>::sub ۽ <*mut T>::sub
    • <*const T>::wrapping_add ۽ <*mut T>::wrapping_add
    • <*const T>::wrapping_sub ۽ <*mut T>::wrapping_sub
    • <[T]>::as_mut_ptr
    • <[T]>::as_ptr_range
    • <[T]>::as_mut_ptr_range

اضافي طور تي، توهان نوٽ ڪري سگهو ٿا آرٽيڪل "زنگ: هڪ نازڪ ريٽروسپيڪيوٽو" زنگ جي ٻولي جي تاثرات جي خلاصي سان ان ۾ ڪوڊ جون 100 هزار لائينون لکڻ کان پوءِ ان ۾ فرم ويئر ۾ استعمال ٿيندڙ Xous microkernel آپريٽنگ سسٽم جي ترقي دوران. نقصانن ۾ شامل آھن سمجھڻ ۾ مشڪل نحو، نامڪمليت ۽ ٻوليءَ جي مسلسل ترقي، ورجائي قابل تعميرات جو فقدان، عام مسئلا Crates.io ۾ ڀروسي جي اعتماد سان، ۽ محفوظ ڪوڊ لکڻ لاءِ ھڪ خاص نظم برقرار رکڻ جي ضرورت. خاصيتون جيڪي اميدن کان وڌيڪ آهن انهن ۾ ريفيڪٽرنگ ڪوڊ جا اوزار شامل آهن ۽ تيز پروٽوٽائپنگ دوران شامل ڪيل ”هيڪس“ کي ٻيهر ڪم ڪرڻ.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو