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

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

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

مکيه جدت:

  • ڪارگو پيڪيج مئنيجر کي نقل جي غلطين ۽ ڊيڄاريندڙن کي ضم ڪرڻ جي صلاحيت آهي جيڪا تعمير دوران ٿئي ٿي. جڏهن حڪمن تي عمل ڪرڻ جهڙوڪ "ڪارگو ٽيسٽ" ۽ "ڪارگو چيڪ --آل-ٽارگيٽس" جنهن جي نتيجي ۾ هڪ پيڪيج جي ڪيترن ئي تعميرن جي نتيجي ۾ مختلف پيٽرولن سان، استعمال ڪندڙ کي هاڻي ڏيکاريو ويو آهي هڪ ورهاست واري مسئلي جي واقعن جو خلاصو ڏيکاريو وڃي، بدران. گھڻا ساڳيا ڊيڄاريندڙ جڏھن ساڳي شيء کي بار بار ٺاھيو. $cargo +1.55.0 چيڪ ڪريو —all-targets Checking foo v0.1.0 خبردار: فنڪشن ڪڏهن به استعمال نه ڪيو ويو آهي: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = نوٽ: '#[warn(dead_code)]' تي ڊفالٽ ڊيڄاريندڙ: 'foo' (lib) ٺاهيل 1 ڊيڄاريندڙ ڊيڄاريندڙ: 'foo' (lib test) 1 ڊيڄاريندڙ (1 نقل) ختم ٿيل dev [unoptimized + debuginfo] ٽارگيٽ (s) 0.84 سيڪنڊن ۾
  • معياري لائبريري ۾ فلوٽنگ پوائنٽ پارسنگ ڪوڊ کي تيز ۽ وڌيڪ صحيح Eisel-Lemire الورورٿم استعمال ڪرڻ لاءِ منتقل ڪيو ويو آهي، جنهن ڪيترن ئي انگن اکرن سان گول ڪرڻ ۽ انگن کي پارس ڪرڻ سان گڏ ڪجهه اڳ ۾ ئي ڏٺل مسئلا حل ڪيا آهن.
  • ٽيمپليٽس ۾ غير بند ٿيل حدن کي بيان ڪرڻ جي صلاحيت کي مستحڪم ڪيو ويو آهي (“X..” هڪ حد جي طور تي تفسير ڪئي وئي آهي جيڪا قيمت X سان شروع ٿئي ٿي ۽ انٽيجر قسم جي وڌ ۾ وڌ قيمت سان ختم ٿئي ٿي): x کي u32 { 0 => println سان ملايو! ("صفر!")، 1.. => println!("مثبت نمبر!"), }
  • توسيع ٿيل غلطي جي مختلف قسمن جو احاطو ڪيو ويو std::io::ErrorKind (غلطين کي درجه بندي ۾ درجه بندي ڪري ٿو جهڙوڪ NotFound ۽ WouldBlock). اڳي، غلطيون جيڪي موجوده ڀاڱن ۾ مناسب نه هونديون هيون، ErrorKind::Other درجا، جيڪي ٽئين پارٽي جي ڪوڊ ۾ غلطين لاءِ پڻ استعمال ٿينديون هيون. ھاڻي ھڪڙو الڳ اندروني ڪيٽيگري آھي ErrorKind::غلطين لاءِ اڻ درج ٿيل آھي جيڪي موجوده ڪيٽيگريز ۾ مناسب نه آھن، ۽ ErrorKind::ٻي ڪيٽيگري صرف انھن غلطين تائين محدود آھي جيڪي معياري لائبريريءَ ۾ نه ٿيون ٿين (معياري لئبرريءَ جا ڪم جيڪي io::Error واپس ڪن ٿا. هاڻي استعمال نه ڪريو ErrorKind:: زمرو ٻيو).
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • پابند::ڪلون
    • ڊرين::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • ٿي سگهي ٿوUninit ::assume_init_mut
    • ٿي سگهي ٿوUninit ::assume_init_ref
    • ٿي سگهي ٿو يونينٽ::لکيو
    • صف::نقشو
    • آپريشن::ڪنٽرول فلو
    • x86::_bittest
    • x86::_bittestand complement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • "const" وصف، جيڪو مستقل جي بدران ڪنهن به حوالي سان استعمال ڪرڻ جي امڪان کي طئي ڪري ٿو، استعمال ڪيو ويندو آهي str::from_utf8_unchecked طريقي سان.
  • پاورpc64le-unknown-freebsd پليٽ فارم لاءِ ٽئين سطح جي سپورٽ لاڳو ڪئي وئي آهي. ٽئين سطح ۾ بنيادي مدد شامل آهي، پر خودڪار ٽيسٽنگ کان سواءِ، سرڪاري تعميرات کي شايع ڪرڻ، يا چيڪ ڪرڻ ته ڇا ڪوڊ ٺاهي سگهجي ٿو.

جو ذريعو: opennet.ru

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