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

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

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

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

مکيه جدت:

  • ڊفالٽ پروگرام ڪريش هينڊلر (گھٻرائي) پاران جاري ڪيل پيغامن جي فارميٽ کي نئين سر ترتيب ڏنو ويو آهي. متن ۾ بيان ڪيو ويو آهي "پريشان!" macro ھاڻي اقتباس جي نشانين کان سواءِ ھڪڙي الڳ لڪير تي ڏيکاريو ويو آھي، پيغام کي پڙھڻ آسان بڻائي ٿو ۽ مونجھاري کي ختم ڪري ٿو جڏھن nested quotes موجود آھن يا گھڻن لائنن ۾ ورهايل آھن. fn main() { let file = "ferris.txt"؛ panic!("او نه! {فائل:؟} نه مليو!"); } اتي ڌاڳو ’مئن‘ تي گھٻرائجي ويو ’اڙي نه! "ferris.txt" نه مليو!', src/main.rs:3:5 ٿريڊ 'main' src/main.rs:3:5: او نه! "ferris.txt" نه مليو!

    پيغامن جو آئوٽ پُٽ ڏيکاريو ويو آهي جڏهن “assert_eq” ۽ “assert_ne” ميڪرو شروع ڪيا ويا آهن پڻ ٻيهر ڪم ڪيو ويو آهي. fn main() { assert_eq!("🦀", "🐟", "ferris is not fish"); } اتي ٿلهو هو 'main' گھٻرائجي ويو 'Assertion Failed: `(left== right)` left: `"🦀"`, right: `"🐟"`: ferris is not a fish', src/main.rs: 2 :5 ٿريڊ 'main' src/main.rs:2:5 تي گھٻرائجي ويو: assertion `left== right` ناڪام ٿيو: ferris is not a fish left: “🦀” right: “🐟”

  • RFC 3184 جي مطابق، سڌي طرح thread-local (thread_local) LocalKey اسٽوريج ڪيز کي ترتيب ڏيڻ جي صلاحيت شامل ڪئي وئي آهي > ۽ LocalKey > استعمال ڪرڻ جي ذريعي get(), set(), take() and replace() طريقن جي بدران، هڪ "with(|inner| ...)" بندش استعمال ڪرڻ جي بدران، جيڪو اضافي شروعاتي ڪوڊ انجام ڏيڻ جي ضرورت کي ختم ڪري ٿو. ڊفالٽ قدر جيڪي نون موضوعن لاءِ بيان ڪيا ويا آهن جڏهن ميڪرو استعمال ڪندي “thread_local!” thread_local! { جامد شيون: سيل > = سيل::نئون (Vec::new())؛ } fn f() { // was THINGS.with(|i| i.set(vec![32, 1, 2])); // ٿي ويو THINGS.set(vec![3, 1, 2]); // ... // let let v = THINGS.with(|i| i.take()); // ٿي ويو let v: Vec = THINGS.take(); }
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • غير دستخط ٿيل {integer}::div_ceil
    • غير دستخط ٿيل {integer}::next_multiple_of
    • غير دستخط ٿيل {integer}::checked_next_multiple_of
    • std::ffi::FromBytesUntilNulError
    • std::os::unix::fs::chown
    • std::os::unix::fs::fchown
    • std::os::unix::fs::lfchown
    • LocalKey:: >::حاصل
    • LocalKey:: >::سيٽ
    • LocalKey:: > :: وٺڻ
    • LocalKey:: >::بدلايو
    • LocalKey:: >::with_borrow
    • LocalKey:: >::with_borrow_mut
    • LocalKey:: >::سيٽ
    • LocalKey:: > :: وٺڻ
    • LocalKey:: >::بدلايو
  • "const" وصف، جيڪو مستقل جي بدران ڪنهن به حوالي سان استعمال ڪرڻ جي امڪان کي طئي ڪري ٿو، افعال ۾ استعمال ٿيندو آهي:
    • rc:: ڪمزور:: نئون
    • هم وقت:: ڪمزور:: نئون
    • NonNull ::as_ref
  • گڏ ڪرڻ وارو نسخو معلومات جي رڪارڊنگ مهيا ڪري ٿو “.comment” سيڪشن ۾، GCC ۽ Clang وانگر.
  • سپورٽ جي ٽئين سطح پليٽ فارمن لاءِ لاڳو ڪئي وئي آهي aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl ۽ x86_64-unknown-linux - اوهو. ٽئين سطح ۾ بنيادي مدد شامل آهي، پر خودڪار ٽيسٽنگ کان سواءِ، سرڪاري تعميرات کي شايع ڪرڻ، يا چيڪ ڪرڻ ته ڇا ڪوڊ ٺاهي سگهجي ٿو.
  • ھدف واري پليٽ فارم لاءِ سپورٽ جي ٻئي سطح wasm32-wasi-preview1-threads تي عمل ڪيو ويو آھي. سپورٽ جي ٻئي سطح ۾ اسيمبلي جي ضمانت شامل آهي.

جو ذريعو: opennet.ru

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