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

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

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

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

مکيه جدت:

  • rustc ڪمپلر وٽ هڪ مستحڪم LLVM تي ٻڌل سسٽم آهي ڪوريج ڊيٽا پيدا ڪرڻ لاءِ جيڪو ٽيسٽ دوران ڪوڊ ڪوريج جو جائزو وٺڻ لاءِ استعمال ڪيو ويندو آهي. اسيمبليءَ دوران ڪوريج ڊيٽا کي فعال ڪرڻ لاءِ، توھان کي لازمي طور استعمال ڪرڻ گھرجي ”-Cinstrument-coverage“ جھنڊو، مثال طور، اسيمبليءَ کي ”RUSTFLAGS=“-C instrument-coverage“ cargo build“ ڪمانڊ سان شروع ڪرڻ. هن طريقي سان گڏ ڪيل executable فائل کي هلائڻ کان پوءِ، default.profraw فائل موجوده ڊاريڪٽري ۾ محفوظ ٿي ويندي، جنهن جي پروسيسنگ لاءِ توهان llvm-tools-preview جزو مان llvm-profdata يوٽيلٽي استعمال ڪري سگهو ٿا. llvm-profdata پاران پروسيس ٿيل آئوٽ وري llvm-cov ڏانهن منتقل ڪري سگهجي ٿو هڪ اينٽيٽڊ ڪوڊ ڪوريج رپورٽ ٺاهي. ماخذ ڪوڊ جي لنڪ جي باري ۾ معلومات ورتي وئي آهي ايگزيڪيوٽيبل فائل مان جاچ ڪئي پئي وڃي، جنهن ۾ ڪوريج ڪائونٽر ۽ ڪوڊ جي وچ ۾ ڪنيڪشن بابت ضروري ڊيٽا شامل آهي. 1| 1|fn مين() {2| 1| println!("هيلو، دنيا!")؛ 3| 1|}
  • ڪارگو پيڪيج مئنيجر ۾، "-timings" پرچم جي حمايت کي مستحڪم ڪيو ويو آهي، جنهن ۾ تعمير جي ترقي ۽ هر قدم جي عمل جي وقت تي تفصيلي رپورٽ جي پيداوار شامل آهي. رپورٽ اسيمبلي جي عمل جي ڪارڪردگي کي بهتر ڪرڻ لاء ڪارائتو ٿي سگهي ٿو.
  • ڪارگو پيڪيج مئنيجر مشروط تاليف ۽ اختياري انحصار جي چونڊ جي ميکانيزم لاءِ هڪ نئون نحو پيش ڪري ٿو، Cargo.toml فائل ۾ ترتيب ڏنل [خصوصيات] سيڪشن ۾ نامزد ڪيل ملڪيتن جي لسٽ کي ترتيب ڏيندي ۽ پيڪيج جي تعمير دوران ملڪيتن کي چالو ڪندي چالو ڪيو ويو. "--خصوصيت" پرچم استعمال ڪندي. نئون نسخو الڳ نالن جي جڳهن ۽ ڪمزور انحصار ۾ انحصار لاءِ مدد شامل ڪري ٿو.

    پهرين صورت ۾، اهو ممڪن آهي ته عنصرن کي اڳياڙي سان استعمال ڪيو وڃي "dep:" جي اندر "[خصوصيتون]" سيڪشن ۾ واضح طور تي هڪ اختياري انحصار سان ڳنڍڻ لاءِ واضح طور تي هن انحصار کي خصوصيت جي طور تي ظاهر ڪرڻ کان سواءِ. ٻي صورت ۾، "؟" نشاني سان نشان لڳائڻ جي حمايت شامل ڪئي وئي آھي. ("package-name?/feature-name") اختياري انحصار جيڪي صرف ان صورت ۾ شامل ٿيڻ گهرجن جڏهن ڪجهه ٻين ملڪيت ۾ ڏنل اختياري انحصار شامل هجي. مثال طور، ھيٺ ڏنل مثال ۾، serde ملڪيت کي چالو ڪرڻ سان "serde" انحصار کي چالو ڪيو ويندو، گڏوگڏ "serde" ملڪيت "rgb" انحصار لاء، پر صرف جيڪڏھن "rgb" انحصار کي چالو ڪيو ويو آھي ٻي جاء تي: [انحصار] serde = { ورجن = " 1.0.133"، اختياري = سچو } rgb = { ورجن = "0.8.25"، اختياري = سچو } [خصوصيت] serde = ["dep:serde"، "rgb?/serde"]

  • واڌاري جي تاليف لاءِ سپورٽ، جيڪا آخري رليز ۾ بند ڪئي وئي هئي، واپس ڪئي وئي آهي. ڪمپيلر بگ جنهن سبب فيچر کي غير فعال ڪيو ويو حل ڪيو ويو آهي.
  • مونوٽونڪ ٽائمنگ جي گارنٽي سان فوري ٽائمر مهيا ڪرڻ سان گڏ ڪجھ مسئلا حل ڪيا ويا، جيڪي سسٽم جي ننڊ واري موڊ ۾ خرچ ڪيل وقت کي حساب ۾ رکن ٿا. اڳي، OS API استعمال ڪيو ويندو هو جڏهن به ممڪن هجي ٽائمر کي هلائڻ لاءِ، جنهن ۾ مشڪلاتي حالتن کي نظر ۾ نه رکيو ويو جيڪي وقت جي هڪجهڙائي کي ٽوڙين، جهڙوڪ هارڊويئر مسئلا، ورچوئلائيزيشن جو استعمال، يا آپريٽنگ سسٽم ۾ غلطيون.
  • API جو هڪ نئون حصو مستحڪم جي درجي ۾ منتقل ڪيو ويو آهي، بشمول طريقن ۽ عملن جي خاصيتن کي مستحڪم ڪيو ويو آهي:
    • آرڪ::نئون_سائيڪل
    • Rc::new_cyclic
    • سلائس::EscapeAscii
    • <[u8]>::escape_ascii
    • u8::escape_ascii
    • Vec::spare_capacity_mut
    • ٿي سگهي ٿوUninit ::assume_init_drop
    • ٿي سگهي ٿوUninit::assume_init_read
    • i8::abs_diff
    • i16::abs_diff
    • i32::abs_diff
    • i64::abs_diff
    • i128::abs_diff
    • isize::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • استعمال ڪريو::abs_diff
    • io::ErrorKind لاءِ ڏيکاريو
    • کان ExitCode لاءِ
    • لاءِ نه! (قسم "ڪڏهن به نه")
    • _Op_Asign<$t>
    • آرڪ::is_aarch64_feature_detected!
  • mips64-openwrt-linux-musl* ۽ armv7-unknown-linux-uclibceabi (softfloat) پليٽ فارمن لاءِ سپورٽ جي ٽئين سطح تي عمل ڪيو ويو آهي. ٽئين سطح ۾ بنيادي مدد شامل آهي، پر خودڪار ٽيسٽنگ کان سواءِ، سرڪاري تعميرات کي شايع ڪرڻ، يا چيڪ ڪرڻ ته ڇا ڪوڊ ٺاهي سگهجي ٿو.
  • ڪمپلر کي LLVM 14 استعمال ڪرڻ لاءِ تبديل ڪيو ويو آھي.

اضافي طور تي، توهان نوٽ ڪري سگهو ٿا:

  • rustc_codegen_gcc backend استعمال ڪندي rustc compiler کي بوٽ اسٽريپ ڪرڻ لاءِ سپورٽ شامل ڪئي وئي، جيڪا توھان کي اجازت ڏئي ٿي libgccjit لائبريري GCC پروجيڪٽ مان rustc ۾ ڪوڊ جنريٽر جي طور تي، جيڪا rustc کي GCC ۾ موجود آرڪيٽيڪچرز ۽ اصلاحن لاءِ مدد مهيا ڪرڻ جي اجازت ڏئي ٿي. ڪمپيلر پروموشن جو مطلب آهي rustc ۾ GCC-based ڪوڊ جنريٽر استعمال ڪرڻ جي صلاحيت rustc compiler پاڻ کي ٺاهڻ لاءِ. عملي پاسي، هي خصوصيت توهان کي آرڪيٽيڪچر لاء مورچا پروگرام ٺاهڻ جي اجازت ڏئي ٿي جيڪا اڳ ۾ rustc ۾ سهڪار نه ڪئي وئي هئي.
  • uutils coreutils 0.0.13 ٽول ڪٽ جو رليز موجود آهي، جنهن جي اندر GNU Coreutils پيڪيج جو هڪ اينالاگ، Rust ٻولي ۾ ٻيهر لکيو ويو آهي، ترقي ڪئي پئي وڃي. Coreutils هڪ سو کان وڌيڪ افاديت سان گڏ اچي ٿو، جنهن ۾ ترتيب، ٻلي، chmod، chown، chroot، cp، تاريخ، dd، echo، hostname، id، ln، ۽ ls شامل آهن. پروجيڪٽ جو مقصد آهي هڪ ڪراس پليٽ فارم متبادل لاڳو ڪرڻ Coreutils، جيڪو ونڊوز، Redox ۽ Fuchsia پليٽ فارمن تي هلائڻ جي قابل آهي، انهي سان گڏ اجازت ڏيڻ واري MIT لائسنس تحت تقسيم ڪرڻ، GPL ڪاپي ليفٽ لائسنس جي بدران.

    نئين ورجن ڪيترن ئي يوٽيلٽيز تي عمل درآمد کي بهتر بڻايو آهي، جن ۾ سي پي، ڊي ڊي، ڊي ايف، اسپلٽ ۽ ٽر يوٽيلٽيز جي انهن جي هم منصبن سان گڏ GNU پروجيڪٽ جي بهتر مطابقت شامل آهي. آن لائين دستاويز مهيا ڪيا ويا. ڪليپ parser ڪمانڊ لائن دليلن کي پارس ڪرڻ لاءِ استعمال ڪيو ويندو آهي، جنهن "--help" پرچم جي پيداوار کي بهتر ڪيو آهي ۽ ڊگهي حڪمن جي مخفف لاءِ سپورٽ شامل ڪئي آهي (مثال طور، توهان وضاحت ڪري سگهو ٿا "ls -col" بدران "ls -color" ”).

جو ذريعو: opennet.ru

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