Rust 1.60 د پروګرام کولو ژبې خپرول

د Rust 1.60 عمومي هدف پروګرام کولو ژبې خپرول، چې د موزیلا پروژې لخوا تاسیس شوی، مګر اوس د خپلواک غیر انتفاعي موسسې Rust Foundation تر څارنې لاندې رامینځته شوی، خپور شوی. ژبه د حافظې خوندیتوب باندې تمرکز کوي او د لوړې دندې موازي کولو لپاره وسیلې چمتو کوي پداسې حال کې چې د کثافاتو راټولونکي او رن ټایم کارولو څخه مخنیوی کوي (د چلولو وخت د معیاري کتابتون لومړني پیل او ساتنې ته کم شوی).

د زنګ د حافظې اداره کولو میتودونه پرمخ وړونکي د خطا څخه ژغوري کله چې د پوائنټرونو مینځل کیږي او د هغو ستونزو په وړاندې ساتنه کوي چې د ټیټې کچې حافظې اداره کولو له امله رامینځته کیږي ، لکه د حافظې ساحې ته لاسرسی وروسته له دې چې خلاص شو ، د نول پوائنټرونو ته اشاره کول ، د بفر اوورونونه او نور. د کتابتونونو توزیع کولو، جوړونه چمتو کول او د انحصارونو اداره کول، پروژه د کارګو پیکج مدیر ته وده ورکوي. د crates.io ذخیره د کتابتونونو کوربه کولو لپاره ملاتړ کیږي.

د حافظې خوندیتوب د تالیف په وخت کې په زنګ کې د حوالې چیک کولو له لارې چمتو کیږي ، د شیانو ملکیت تعقیب ساتل ، د څیز ژوند وخت (سکوپس) ساتل ، او د کوډ اجرا کولو پرمهال د حافظې لاسرسي سموالي ارزول. زنګ د انټیجر د زیاتیدو پروړاندې محافظت هم چمتو کوي ، د کارونې دمخه د متغیر ارزښتونو لازمي ابتکار ته اړتیا لري ، په معیاري کتابتون کې خطاګانې په ښه توګه اداره کوي ، د ډیفالټ لخوا د بدلیدونکي حوالې او متغیر مفهوم پلي کوي ، د منطقي غلطیو کمولو لپاره قوي جامد ټایپ وړاندیز کوي.

اصلي نوښتونه:

  • د rustc کمپیلر د پوښښ ډیټا رامینځته کولو لپاره د LLVM پراساس یو مستحکم سیسټم لري چې د ازموینې پرمهال د کوډ پوښښ ارزولو لپاره کارول کیږي. د غونډې په جریان کې د پوښښ ډیټا فعالولو لپاره، تاسو باید د "-Cinstrument-coverage" بیرغ وکاروئ، د بیلګې په توګه، د "RUSTFLAGS="-C وسیلې پوښښ" کارګو جوړونې کمانډ سره مجلس پیل کړئ. وروسته له دې چې په دې ډول ترتیب شوي د اجرا وړ فایل چلولو وروسته، د default.profraw فایل به په اوسني ډایرکټر کې خوندي شي، د پروسس کولو لپاره چې تاسو کولی شئ د llvm-tools-preview برخې څخه د llvm-profdata یوټیلیټ وکاروئ. د llvm-profdata لخوا پروسس شوي محصول بیا llvm-cov ته لیږدول کیدی شي ترڅو د تشریح شوي کوډ پوښښ راپور رامینځته کړي. د سرچینې کوډ سره د لینک په اړه معلومات د اجرا وړ فایل څخه اخیستل شوي چې معاینه کیږي، کوم چې د پوښښ شمیرونکو او کوډ ترمنځ د ارتباط په اړه اړین معلومات شامل دي. ۱| 1|fn اصلي() {1| ۱| println!("سلام، نړۍ!"); 2| 1|}
  • د کارګو کڅوړې مدیر کې ، د "-timegs" بیرغ لپاره ملاتړ مستحکم شوی ، پدې کې د جوړیدو پرمختګ او د هر مرحلې اجرا کولو وخت په اړه د مفصل راپور تولید شامل دي. راپور ممکن د مجلس پروسې د فعالیت د ښه کولو لپاره ګټور وي.
  • د کارګو بسته مدیر د شرطي تالیف میکانیزم او د اختیاري انحصارونو انتخاب لپاره یو نوی ترکیب وړاندیز کوي ، د Cargo.toml فایل کې د [خصوصاتو] برخې کې د نومول شوي ملکیتونو لیست لیست کولو سره تنظیم شوی او د بسته بندۍ پرمهال د ملکیتونو فعالولو سره فعال شوی. د "--ځانګړتیاو" بیرغ په کارولو سره. نوې نسخه په جلا نوم ځایونو او ضعیف انحصارونو کې د انحصار لپاره ملاتړ اضافه کوي.

    په لومړي حالت کې، دا ممکنه ده چې د "[خصوصیات]" برخې کې دننه د "dep:" مخکینۍ سره عناصر وکاروئ ترڅو په ښکاره ډول د اختیاري انحصار سره اړیکه ونیسي پرته لدې چې د دې انحصار د ځانګړتیا په توګه څرګند کړي. په دوهم حالت کې، د "؟" نښه سره د نښه کولو ملاتړ اضافه شوی. ("package-name?/feature-name") اختیاري انحصارونه چې یوازې باید پکې شامل شي که چیرې ځینې نور ملکیتونه ورکړل شوي اختیاري انحصار پکې شامل وي. د مثال په توګه، په لاندې مثال کې، د serde ملکیت فعالول به د "serde" انحصار فعال کړي، په بیله بیا د "rgb" انحصار لپاره د "serde" ملکیت، مګر یوازې هغه وخت چې د "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>
    • arch::is_aarch64_feature_tetected!
  • د ملاتړ دریمه کچه د mips64-openwrt-linux-musl* او armv7-unknown-linux-uclibceabi (softfloat) پلیټ فارمونو لپاره پلي شوې. په دریمه کچه کې بنسټیز ملاتړ شامل دی، مګر د اتوماتیک ازموینې پرته، د رسمي ودانیو خپرول، یا دا ګوري چې آیا کوډ جوړیدلی شي.
  • کمپیلر د LLVM 14 کارولو لپاره بدل شوی.

سربیره پردې، تاسو کولی شئ یادونه وکړئ:

  • د rustc_codegen_gcc بیکینډ په کارولو سره د rustc کمپیلر بوټسټراپ کولو لپاره ملاتړ اضافه شوی ، کوم چې تاسو ته اجازه درکوي د GCC پروژې څخه libgccjit کتابتون په rustc کې د کوډ جنریټر په توګه وکاروئ ، کوم چې rustc ته اجازه ورکوي چې په GCC کې موجود معماریو او اصلاحونو لپاره ملاتړ چمتو کړي. د کمپیلر ترویج پدې معنی دی چې په rustc کې د GCC میشته کوډ جنریټر کارولو وړتیا د rustc کمپیلر پخپله رامینځته کولو لپاره. په عملي اړخ کې، دا ب featureه تاسو ته اجازه درکوي د معمارۍ لپاره د زنګ برنامې رامینځته کړئ چې دمخه په rustc کې ملاتړ نه و.
  • د uutils coreutils 0.0.13 Toolkit خوشې کول شتون لري، په کوم کې چې د GNU Coreutils کڅوړې یو انالوګ، په Rust ژبه کې بیا لیکل شوی، رامینځته کیږي. Coreutils د سل څخه زیاتو اسانتیاو سره راځي، پشمول د ترتیب، بلی، chmod، chown، chroot، cp، نیټه، dd، echo، کوربه نوم، id، ln، او ls. د پروژې هدف د کراس پلیټ فارم بدیل پلي کول د Coreutils رامینځته کول دي چې د وینډوز ، ریډوکس او فوچیا پلیټ فارمونو کې د چلولو وړ دي ، او همدارنګه د GPL کاپي لیفټ جواز پرځای د MIT جواز لاندې توزیع کول دي.

    نوې نسخه د ډیری اسانتیاوو پلي کول ښه کړي، پشمول د Cp، dd، df، split او tr یوټیلیټیز د GNU پروژې څخه د دوی همکارانو سره د پام وړ ښه مطابقت. آنلاین اسناد چمتو شوي. د کلپ پارسر د کمانډ لاین دلیلونو تحلیل کولو لپاره کارول کیږي، کوم چې د "--help" بیرغ لپاره محصول ښه کړی او د اوږدې کمانډونو لنډیزونو لپاره یې ملاتړ اضافه کړی (د مثال په توګه، تاسو کولی شئ د "ls -color" پرځای "ls -col" مشخص کړئ. ").

سرچینه: opennet.ru

Add a comment