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

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

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

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

  • د لاین فارمیټینګ بلاکونو کې، د مخکینۍ موجود وړتیا سربیره چې د شمیر او نوم له مخې د یوې کرښې وروسته په واضح ډول لیست شوي متغیرات ځای په ځای کړي، د "{پیژندونکي}" بیان په اضافه کولو سره د خپل سري پیژندونکي ځای په ځای کولو وړتیا پلي کیږي. د مثال په توګه: // پخوانۍ ملاتړ شوي ساختمانونه: println!("Hello, {}!", get_person()); println!("سلام، {0}!", get_person()); println!("Hello, {person}!", person = get_person()); // اوس تاسو مشخص کولی شئ let person = get_person(); println!("سلام، {شخص}!");

    پیژندونکي هم په مستقیم ډول د فارمیټ کولو اختیارونو کې مشخص کیدی شي. اجازه راکړئ (چوک، دقیق) = ترلاسه کړئ بڼه ()؛ for (نوم، سکور) په get_scores() { println!("{name}: {score:width$.precision$}"); }

    نوی بدیل په ټولو میکروونو کې کار کوي چې د سټرینګ فارمیټ تعریف ملاتړ کوي ، د "ویرې!" میکرو استثنا سره. په 2015 او 2018 نسخو کې د زنګ ژبه، په کوم کې چې ویره!("{ident}") د منظم تار په توګه چلند کیږي (په Rust 2021 کې بدیل کار کوي).

  • د وینډوز پلیټ فارم کې د std::process::د کمانډ جوړښت چلند بدل شوی ترڅو د امرونو اجرا کولو پرمهال ، د امنیت دلایلو لپاره ، دا نور په اوسني لارښود کې د اجرا وړ فایلونو لپاره نه ګوري. اوسنی ډایرکټر خارج شوی ځکه چې دا د ناوړه کوډ اجرا کولو لپاره کارول کیدی شي که چیرې پروګرامونه په بې باوره لارښودونو کې چلیږي (CVE-2021-3013). د نوي اجرا وړ کشف منطق کې د زنګ لارښودونو لټون کول شامل دي ، د غوښتنلیک لارښود ، د وینډوز سیسټم لارښود ، او د PATH چاپیریال متغیر کې مشخص شوي لارښودونه.
  • معیاري کتابتون د "#[must_use]" په نښه شوي دندو شمیره پراخه کړې ترڅو خبرداری صادر کړي که چیرې د بیرته راستنیدو ارزښت له پامه غورځول شي ، کوم چې د داسې غلطیو پیژندلو کې مرسته کوي چې د دې انګیرنې له امله رامینځته کیږي چې فنکشن به د نوي ارزښت بیرته راستنیدو پرځای ارزښتونه بدل کړي.
  • د API یوه نوې برخه د ثبات کټګورۍ ته لیږدول شوې، په شمول د ځانګړتیاوو میتودونه او پلي کول ثبات شوي دي:
    • میټاډاټا::is_symlink
    • لاره::is_symlink
    • {integer}::saturating_div
    • اختیار::unwrap_uncheck شوی
    • پایله:: unwrap_uncheck
    • پایله:: unwrap_err_uncheck
  • د "const" خاصیت، کوم چې د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي، په دندو کې کارول کیږي:
    • موده::نوی
    • موده:: checked_add
    • موده:: saturating_add
    • موده:: checked_sub
    • موده:: saturating_sub
    • موده:: checked_mul
    • موده:: saturating_mul
    • موده:: checked_div
  • په "const" شرایطو کې د "*const T" پوائنټرونو د حوالې اجازه ورکړل شوې.
  • د کارګو پیکج مدیر کې، د rust_version ساحه د بسته بندۍ میټاډاټا کې اضافه شوې، او د "--message-format" اختیار د "cargo install" کمانډ کې اضافه شوی.
  • تالیف کونکی د CFI (کنټرول فلو بشپړتیا) محافظت میکانیزم لپاره ملاتړ پلي کوي ، کوم چې د هر غیر مستقیم تلیفون څخه دمخه چیکونه اضافه کوي ترڅو د غیر تعریف شوي چلند ځینې ډولونه کشف کړي چې ممکن د عادي اجرا کولو امر (کنټرول جریان) څخه د سرغړونې لامل شي. د استثمار کارول چې په دندو کې په حافظه کې زیرمه شوي اشارې بدلوي.
  • تالیف کونکي د LLVM پوښښ پرتله کولو فارمیټ 5 او 6 نسخو لپاره ملاتړ اضافه کړی ، چې د ازموینې پرمهال د کوډ پوښښ ارزولو لپاره کارول کیږي.
  • په کمپیلر کې، د LLVM لږترلږه نسخه اړتیاوې LLVM 12 ته پورته شوي.
  • د x86_64-unknown-none پلیټ فارم لپاره د ملاتړ دریمه کچه پلي شوې. په دریمه کچه کې بنسټیز ملاتړ شامل دی، مګر د اتوماتیک ازموینې پرته، د رسمي ودانیو خپرول، یا دا ګوري چې آیا کوډ جوړیدلی شي.

برسیره پردې، موږ کولی شو د وینډوز 0.30 کتابتونونو لپاره د زنګ خپرولو د مایکروسافټ لخوا خپرونه یادونه وکړو، کوم چې تاسو ته اجازه درکوي د وینډوز OS لپاره غوښتنلیکونو رامینځته کولو لپاره د زنګ ژبه وکاروئ. په سیټ کې دوه کریټ کڅوړې شاملې دي (وینډوز او وینډوز - sys) ، د کوم له لارې تاسو کولی شئ په Rust برنامو کې Win API ته لاسرسی ومومئ. د API ملاتړ لپاره کوډ په متحرک ډول د میټاډاټا څخه رامینځته شوی چې د API تشریح کوي ، کوم چې تاسو ته اجازه درکوي ملاتړ پلي کړئ نه یوازې د موجوده Win API تلیفونونو لپاره ، بلکه د هغو تلیفونونو لپاره چې په راتلونکي کې به څرګند شي. نوې نسخه د UWP (یونیورسل وینډوز پلیټ فارم) هدف پلیټ فارم لپاره ملاتړ اضافه کوي او د هینډل او ډیبګ ډولونه پلي کوي.

سرچینه: opennet.ru

Add a comment