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

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

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

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

مکيه جدت:

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

    مڪمل انڊيڪس ڊائون لوڊ ڪرڻ جي ڪري دير ٿيڻ کي گهٽائڻ لاءِ، اسپارس بدران انڊيڪس تائين رسائي حاصل ڪرڻ جي Git استعمال ڪندي HTTPS تي سڌو ڊائون لوڊ ڪرڻ صرف ضروري انڊيڪس ڊيٽا کي شامل ڪري ٿو، هڪ خاص منصوبي جي انحصار کي ڍڪيندي. هڪ نئين خدمت، index.crates.io، استعمال ڪيو ويندو آهي انڊيڪس ڊيٽا مهيا ڪرڻ لاءِ. ڊفالٽ طور، نئون پروٽوڪول رٿابندي ڪئي وئي آھي استعمال ٿيڻ لاءِ Rust 1.70 برانچ، ۽ ان کان اڳ، ان کي چالو ڪرڻ لاءِ، توھان سيٽ ڪري سگھوٿا ماحوليات جي متغير "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" يا "[registries" ۾ 'protocol =' پيٽرول شامل ڪريو. crates-io]" .cargo/config.toml فائل جو سيڪشن 'sparse'.

  • شامل ڪيو ويو “پن!” ميڪرو، جيڪو توهان کي اجازت ڏئي ٿو هڪ Pin<&mut T> ڍانچي کي ايڪسپريس “T” مان ان جي حالت جي مقامي پننگ سان (بڪس::پن جي برعڪس، اهو ڍير تي ميموري مختص نٿو ڪري، پر پابند آهي. اسٽيڪ سطح تي).
  • هڪ ڊفالٽ ميموري مختص ڪرڻ جي غلطي سنڀاليندڙ تجويز ڪيو ويو آهي، استعمال ڪيو ويو جڏهن معياري مختص پيڪيج استعمال ڪندي. ايپليڪيشنون جيڪي صرف alloc کي فعال ڪن ٿيون (بغير std) هاڻي "panic!" هينڊلر سڏين ٿيون جڏهن ميموري مختص ڪرڻ ناڪام ٿئي ٿي، جنهن کي اختياري طور تي "#[panic_handler]" استعمال ڪندي روڪي سگهجي ٿو. ايس ٽي ڊي لائبريري استعمال ڪندي پروگرام غلطي جي معلومات کي stderr ۽ حادثي ۾ ڇپائڻ جاري رکندو.
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • {core,std}::pin::pin!
    • impl کان لاءِ {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut PathBuf لاءِ
  • "const" وصف، جيڪو مستقل جي بدران ڪنهن به حوالي سان استعمال ڪرڻ جي امڪان کي طئي ڪري ٿو، VecDeque::new فنڪشن ۾ استعمال ٿيندو آهي.
  • Android پليٽ فارم تي ڪم ڪرڻ لاء، گهٽ ۾ گهٽ NDK r25 (API 19) هاڻي گهربل آهي، يعني. گھٽ ۾ گھٽ سپورٽ ٿيل Android ورزن 4.4 (KitKat) تائين وڌايو ويو آھي.
  • سپورٽ جو ٽيون سطح سوني پلے اسٽيشن ويٽا پليٽ فارم لاءِ لاڳو ڪيو ويو آهي (armv7-sony-vita-newlibeabihf). ٽئين سطح ۾ بنيادي مدد شامل آهي، پر خودڪار ٽيسٽنگ کان سواءِ، سرڪاري تعميرات کي شايع ڪرڻ، يا چيڪ ڪرڻ ته ڇا ڪوڊ ٺاهي سگهجي ٿو.

جو ذريعو: opennet.ru

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