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

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

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

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

مکيه جدت:

  • std::thread::scope API شامل ڪيو ويو آهي، جيڪو اسڪوپ ٿيل موضوعن جي تخليق جي اجازت ڏئي ٿو. اڳ ۾ موجود موضوعن جي برعڪس، نئون std::thread::scope API غير جامد ڊيٽا جي قرض وٺڻ جي اجازت ڏئي ٿو، جڏهن ته ڪلاسيڪل std::thread::spawn API استعمال ڪندي ٺاهيل موضوعن کي سڀني پاس ٿيل دليلن جي مالڪي ڪرڻي پوندي هئي ۽ قرض ورتل متغير حاصل نه ڪري سگهيا هئا. std::thread::scope API ضمانت ڏئي ٿو ته ڪو به پيدا ٿيل موضوع ڊيٽا واپس ڪرڻ کان اڳ ختم ٿي ويندو، قرض ورتل ميڪانيزم لاءِ گهربل سطح جي حفاظت فراهم ڪندي.
  • نوان فائل ڊسڪريپٽر بائنڊنگ قسم، BorrowedFd ۽ OwnedFd، تجويز ڪيا ويا آهن، جيڪي قرض وٺڻ ۽ ملڪيت فراهم ڪن ٿا. قسمن کي "#[repr(transparent)]" سان نشان لڳايو ويو آهي، انهن کي ملڪيت سان گڏ ٻاهرين C بائنڊنگ ۾ سڌو سنئون استعمال ڪرڻ جي اجازت ڏئي ٿو.
  • ليزي_اسٽيٽڪ پيڪيجز استعمال ڪرڻ کان سواءِ عالمي جامد ميوٽڪس، آر ڊبليو لاڪ، ۽ ڪنڊوار قدر ٺاهڻ لاءِ مسلسل تناظر ۾ ڪنڊوار::نئون، ميوٽڪس::نئون، ۽ آر ڊبليو لاڪ::نئون کي ڪال ڪرڻ جي صلاحيت فراهم ڪئي.
  • fn foo قسم جي ڪمن لاءِ (ويليو: T، f: impl ڪاپي) نحو جهڙوڪ "foo:: جي اجازت آهي (3، 3)”، واضح طور تي عام قسم جي نشاندهي ڪري ٿو.
  • متغير قرض وٺڻ جي مسئلن کي ڳولڻ لاءِ NLL (غير لڪسيڪل لائف ٽائيم) ٽيڪنڪ ڏانهن منتقلي مڪمل ٿي چڪي آهي. NLL عملدرآمد جي وهڪري گراف ۾ پوائنٽرن جي هڪ سيٽ جي سطح تي اڪائونٽنگ انجام ڏئي ٿو، جيڪو قرض چيڪ ڪندڙ جي معيار کي بهتر بڻائي ٿو ۽ ڪجهه قسمن جي صحيح ڪوڊ جي عملدرآمد جي اجازت ڏئي ٿو جيڪي اڳ ۾ غلطيون پيدا ڪندا هئا. پراڻي ميڪانيزم لاءِ سپورٽ، جيڪو لڪسيڪل لائف ٽائيم بائنڊنگ استعمال ڪندو هو، هاڻي مڪمل طور تي rustc مان هٽايو ويو آهي، ۽ نئين NLL جو استعمال عالمي طور تي لاڳو ڪيو ويو آهي.
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • صف::from_fn
    • دٻو::پن ۾
    • بائنري هيپ:: ڪوشش ڪريو_رزرو
    • بائنري هيپ:: صحيح_محفوظ_ڪرڻ جي ڪوشش ڪريو
    • او ايس اسٽرنگ:: ڪوشش_رزرو
    • او ايس اسٽرنگ:: صحيح_محفوظ_ڪرڻ جي ڪوشش ڪريو
    • رستو بف:: ڪوشش_رزرو
    • رستو بف:: صحيح_محفوظ_ڪرڻ جي ڪوشش ڪريو
    • رستو::ڪوشش_موجود آهي
    • حوالو:: فلٽر_نقشو
    • ريفمٽ::فلٽر_ميپ
    • غير خالي::<[T]>::لين
    • ملڪيت:: ڪلون_انٽو
    • Ipv6Addr::to_ipv4_mapped
    • يونڪس::آئو::اي ايس ايف ڊي
    • يونڪس::io:: قرض ورتو ايف ڊي<'fd>
    • يونڪس::آئو::اونڊ ايف ڊي
    • ونڊوز::io::AsHandle
    • ونڊوز::io:: قرض ورتو هينڊل

      جو ذريعو: opennet.ru

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