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

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

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

مکيه جدت:

  • لائن فارميٽنگ بلاڪن ۾، اڳ ۾ موجود قابليت کي متبادل ڪرڻ جي قابليت کان علاوه واضح طور تي هڪ لڪير کان پوءِ نمبر ۽ نالي سان درج ٿيل متغيرن کي متبادل ڪرڻ جي صلاحيت "{identifier}" کي لڪير ۾ شامل ڪندي لاڳو ڪيو ويو آهي. مثال طور: // اڳواٽ سپورٽ ڪيل تعميرات: println!("Hello, {}!", get_person()); println!("هيلو، {0}!", get_person()); println!("هيلو، {شخص}!"، شخص = get_person())؛ // ھاڻي توھان بيان ڪري سگھو ٿا let person = get_person()؛ println!("هيلو، {شخص}!")؛

    سڃاڻپ ڪندڙ پڻ سڌو سنئون فارميٽنگ اختيارن ۾ بيان ڪري سگھجن ٿيون. let (with, precision) = get_format()؛ (نالو، سکور) ۾ get_scores() { println!("{name}: {score:width$.precision$}"); }

    نئون متبادل سڀني ميڪرو ۾ ڪم ڪري ٿو جيڪي اسٽرنگ فارميٽ جي تعريف کي سپورٽ ڪن ٿا، سواءِ “panic!” macro جي. 2015 ۽ 2018 ۾ Rust ٻولي جي نسخن ۾، جنهن ۾ panic!("{ident}") کي باقاعده اسٽرنگ طور سمجهيو ويندو آهي (Rust 2021 ۾ متبادل ڪم ڪندو آهي).

  • ونڊوز پليٽ فارم تي std::process::Command ڍانچي جو رويو تبديل ڪيو ويو آهي ته جيئن حڪمن تي عمل ڪرڻ وقت، حفاظتي سببن جي ڪري، اهو هاڻي موجوده ڊاريڪٽري ۾ قابل عمل فائلن کي نه ڳولي. موجوده ڊاريڪٽري کي خارج ڪيو ويو آھي ڇاڪاڻ ته اھو استعمال ٿي سگھي ٿو بدسلوڪي ڪوڊ تي عمل ڪرڻ لاءِ جيڪڏھن پروگرام ھلندا آھن غير معتبر ڊاريڪٽريز (CVE-2021-3013). نئين قابل عمل ڳولڻ واري منطق ۾ شامل آهي Rust ڊاريڪٽري، ايپليڪيشن ڊاريڪٽري، ونڊوز سسٽم ڊاريڪٽري، ۽ PATH ماحول جي متغير ۾ بيان ڪيل ڊائريڪٽريون.
  • معياري لئبرري "#[must_use]" نشان لڳل فنڪشنن جي تعداد کي وڌايو آھي انتباہ جاري ڪرڻ لاءِ جيڪڏھن واپسي جي قيمت کي نظرانداز ڪيو وڃي، جيڪو غلطين جي نشاندهي ڪرڻ ۾ مدد ڪري ٿو جيڪو فرض ڪري ٿو ڪو فنڪشن نئين قدر واپس ڪرڻ بجاءِ قدر تبديل ڪندو.
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • Metadata::is_symlink
    • رستو::is_symlink
    • {integer}::saturating_div
    • اختيار:: unwrap_unchecked
    • نتيجو::unwrap_unchecked
    • نتيجو::unwrap_err_unchecked
  • "const" وصف، جيڪو مستقل جي بدران ڪنهن به حوالي سان استعمال ڪرڻ جي امڪان کي طئي ڪري ٿو، افعال ۾ استعمال ٿيندو آهي:
    • مدت::نئون
    • مدت:: checked_add
    • مدت:: saturating_add
    • مدت:: checked_sub
    • مدت:: saturating_sub
    • مدت::checked_mul
    • مدت:: saturating_mul
    • مدت::checked_div
  • اجازت ڏني وئي "*const T" پوائنٽرز جي "const" جي حوالي سان.
  • ڪارگو پيڪيج مئنيجر ۾، rust_version فيلڊ کي شامل ڪيو ويو آھي پيڪيج ميٽاداٽ ۾، ۽ "--message-format" اختيار "cargo install" حڪم ۾ شامل ڪيو ويو آھي.
  • مرتب ڪندڙ CFI (ڪنٽرول فلو انٽيگريٽي) تحفظ واري ميڪانيزم لاءِ سپورٽ لاڳو ڪري ٿو، جيڪو هر اڻ سڌي طرح ڪال کان اڳ چيڪن کي شامل ڪري ٿو ته جيئن اڻ وضاحت ٿيل رويي جي ڪجهه شڪلن کي معلوم ڪرڻ لاءِ جيڪو ممڪن طور تي عام عمل جي حڪم جي خلاف ورزي جو سبب بڻجي سگهي (ڪنٽرول فلو) جي نتيجي ۾. ڪارناما جو استعمال جيڪي ڪمن تي ياداشت ۾ محفوظ ڪيل پوائنٽر کي تبديل ڪن ٿا.
  • مرتب ڪندڙ LLVM ڪوريج جي مقابلي واري فارميٽ جي ورزن 5 ۽ 6 لاءِ سپورٽ شامل ڪئي آهي، ٽيسٽ دوران ڪوڊ ڪوريج جو جائزو وٺڻ لاءِ استعمال ڪيو ويو.
  • ڪمپيلر ۾، LLVM جي گھٽ ۾ گھٽ ورزن لاءِ گھربل LLVM 12 تائين وڌايو ويو آھي.
  • x86_64-unknown-none پليٽ فارم لاءِ سپورٽ جي ٽئين سطح تي عمل ڪيو ويو آهي. ٽئين سطح ۾ بنيادي مدد شامل آهي، پر خودڪار ٽيسٽنگ کان سواءِ، سرڪاري تعميرات کي شايع ڪرڻ، يا چيڪ ڪرڻ ته ڇا ڪوڊ ٺاهي سگهجي ٿو.

اضافي طور تي، اسان Microsoft پاران شايع ٿيل اشاعت کي نوٽ ڪري سگھون ٿا Rust for Windows 0.30 لائبريريون، جيڪي توهان کي اجازت ڏين ٿيون Rust ٻولي استعمال ڪرڻ لاءِ Windows OS لاءِ ايپليڪيشنون ٺاهڻ لاءِ. سيٽ ۾ ٻه ڪريٽ پيڪيجز شامل آهن (ونڊوز ۽ ونڊوز سي ايس)، جنهن جي ذريعي توهان رسٽ پروگرامن ۾ Win API تائين رسائي ڪري سگهو ٿا. API سپورٽ لاءِ ڪوڊ متحرڪ طور تي پيدا ڪيو ويو آھي ميٽا ڊيٽا مان جيڪو API بيان ڪري ٿو، جيڪو توھان کي مدد لاڳو ڪرڻ جي اجازت ڏئي ٿو نه رڳو موجوده Win API ڪالن لاءِ، پر انھن ڪالن لاءِ جيڪي مستقبل ۾ ظاهر ٿيندا. نئون ورزن UWP (يونيورسل ونڊوز پليٽ فارم) ٽارگيٽ پليٽ فارم لاءِ سپورٽ شامل ڪري ٿو ۽ هينڊل ۽ ڊيبگ قسمن کي لاڳو ڪري ٿو.

جو ذريعو: opennet.ru

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