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

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

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

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

مکيه جدت:

  • Future::Output سان async افعال لاءِ، ھاڻي "#[must_use]" تشريح بيان ڪرڻ ممڪن آھي جنھن ۾ ھڪ ڊيڄاريندڙ شامل آھي جيڪڏھن واپسي جي قدر کي نظرانداز ڪيو وڃي، جيڪو ان فڪر جي ڪري پيدا ٿيل غلطين جي نشاندهي ڪرڻ ۾ مدد ڪري ٿو ته فنڪشن قدرن کي تبديل ڪندو. هڪ نئين قيمت واپس ڪرڻ بدران. #[لازمي_استعمال] async fn bar() -> u32 {0 } async fn ڪالر () { bar().await; } ڊيڄاريندڙ: مستقبل جو اڻ استعمال ٿيل ٻاھر واپس آيو `بار` جيڪو استعمال ڪيو وڃي --> src/lib.rs:5:5 | 5 | بار ().انتظار؛ | ^^^^^^^^^^^ | = نوٽ: `#[warn(unused_must_use)]` ڊفالٽ طور تي
  • FIFO queues std::sync::mpsc (ملٽي پروڊيوسر سنگل ڪنزيومر) جو نفاذ اپڊيٽ ڪيو ويو آهي، جيڪو اڳئين API کي برقرار رکڻ دوران ڪراس بيم چينل ماڊل استعمال ڪرڻ لاءِ تبديل ڪيو ويو آهي. نئين عمل درآمد ڪيترن ئي مسئلن کي حل ڪرڻ، اعلي ڪارڪردگي ۽ آسان ڪوڊ جي سار سنڀال جي ذريعي فرق ڪيو ويو آهي.
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • غير زيرو يو*::ilog2
    • غير زيرو يو*::ilog10
    • غير زيرو*::BITS
  • "const" وصف، جيڪو مستقل جي بدران ڪنهن به حوالي سان استعمال ڪرڻ جي امڪان کي طئي ڪري ٿو، افعال ۾ استعمال ٿيندو آهي:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • لينڪس ڪنيل (linuxkernel) ۾ Rust استعمال ڪرڻ لاءِ ٽئين سطح جي سپورٽ لاڳو ڪئي وئي آهي، انهي سان گڏ سوني PlayStation 1 (mipsel-sony-psx)، پاور پي سي سان AIX (powerpc64-ibm-aix)، QNX نيوٽرينو RTOS ( aarch64-unknown-nto-) پليٽ فارمز qnx710, x86_64-pc-nto-qnx710). ٽئين سطح ۾ بنيادي مدد شامل آهي، پر خودڪار ٽيسٽنگ کان سواءِ، سرڪاري تعميرات کي شايع ڪرڻ، يا چيڪ ڪرڻ ته ڇا ڪوڊ ٺاهي سگهجي ٿو.

اضافي طور تي، اسان پيچس جي ARM پاران اشاعت کي نوٽ ڪري سگهون ٿا جيڪي AArch64 آرڪيٽيڪچر جي بنياد تي سسٽم لاء گڏ ڪيل ڊرائيور ۽ لينڪس ڪنيل ماڊلز کي ترقي ڪرڻ لاء Rust ٻولي جي استعمال جي اجازت ڏين ٿا.

جو ذريعو: opennet.ru

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