د پروګرامینګ ژبی خپریدل 2021 (1.56)

د سیسټم برنامه کولو ژبه Rust 1.56 خوشې کول، د موزیلا پروژې لخوا تاسیس شوی، مګر اوس د خپلواک غیر انتفاعي موسسې Rust Foundation تر څارنې لاندې رامینځته شوی، خپور شوی. د منظم نسخې شمیرې سربیره ، خوشې کول هم د زنګ 2021 ډیزاین شوی او په تیرو دریو کلونو کې وړاندیز شوي بدلونونو ثبات په نښه کوي. Rust 2021 به په راتلونکو دریو کلونو کې د فعالیت د زیاتوالي لپاره د اساس په توګه هم کار وکړي، لکه څنګه چې د 2018 زنګ خوشې کول په تیرو دریو کلونو کې د ژبې د پراختیا اساس شو.

د مطابقت ساتلو لپاره، پراختیا کونکي کولی شي په خپلو برنامو کې "2015"، "2018" او "2021" لیبلونه وکاروي، پروګرامونو ته اجازه ورکوي چې د ژبې د ریاست سلیزو سره وصل شي چې د Rust غوره شوي نسخو سره مطابقت لري. نسخې د نامناسب بدلونونو جلا کولو لپاره معرفي شوي او د کارګو کڅوړو میټاډاټا کې د "[پیکج]" برخې کې د "اډیشن" ساحې له لارې تنظیم شوي. د مثال په توګه، د "2018" نسخه کې د 2018 تر پایه پورې ثبات شوي فعالیت شامل دی او ټول نور بدلونونه هم پوښي چې مطابقت نه ماتوي. د 2021 نسخه سربیره پردې په اوسني 1.56 ریلیز کې وړاندیز شوي او د راتلونکي پلي کولو لپاره تصویب شوي د مداخلې ماتولو ځانګړتیاوې شاملې دي. د ژبې سربیره، مدیران د وسایلو او اسنادو حالت هم په پام کې نیسي.

په Rust 2021 کې ثبت شوي لوی ناانډولتیاوې:

  • په بندونو کې جلا کول - بندونه اوس کولی شي د بشپړ پیژندونکي پرځای د انفرادي ساحې نومونه ونیسي. د مثال په توګه، "|| ax + 1 به د "a" پرځای یوازې "ax" ونیسي.
  • د صفونو لپاره د IntoIterator ځانګړتیا: array.into_iter() تاسو ته اجازه درکوي د ارزښتونو له مخې د سرې عناصرو تکرار کړئ ، نه د حوالې په واسطه.
  • د "|" څرګندونو پروسس کول په macro_rules کې بدل شوي (بولین یا) په نمونو کې - په میچونو کې د ":pat" مشخص کونکی اوس "A | ب".
  • د کارګو بسته مدیر کې د ډیفالټ لخوا د فیچر حل کونکي دوهم نسخه شامله ده ، کوم ملاتړ چې په Rust 1.51 کې څرګند شوی.
  • د TryFrom، TryInto او FromIterator ځانګړتیاوې د وړاندې کولو معیاري کتابتون ماډل کې اضافه شوي.
  • ویره!(..) او اصرار!(expr, ..) میکرو اوس تل format_args!(..) د تارونو د فارمیټ کولو لپاره کاروي، د println!().
  • ident#, ident»..." او ident '...' د ژبې په ترکیب کې ساتل شوي دي.
  • bare_trait_objects او ellipsis_inclusive_range_patterns اخطارونه غلطیو ته لیږدول شوي.

په Rust 1.56 کې نوی:

  • په Cargo.toml کې، د "[پیکج]" برخه کې، د زنګ نسخه ساحه اضافه شوې، د کوم له لارې تاسو کولی شئ د کریټ کڅوړې لپاره د زنګ لږترلږه ملاتړ شوی نسخه وټاکئ. که اوسنی نسخه د ټاکل شوي پیرامیټر سره سمون ونلري، کارګو به د خطا پیغام سره کار ودروي.
  • کله چې د "بائنڈنگ @ نمونې" څرګندونو په کارولو سره د نمونې میچ کول، د اضافي بانډونو مشخص کولو لپاره ملاتړ چمتو کیږي (د مثال په توګه، "لټ میټریکس @ میټریکس { row_len، .. } = get_matrix();").
  • د API یوه نوې برخه د ثبات کټګورۍ ته لیږدول شوې، په شمول د ځانګړتیاوو میتودونه او پلي کول ثبات شوي دي:
    • std::os::unix::fs::chroot
    • UnsafeCell ::raw_get
    • BfWriter::into_parts
    • core::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec:: shrink_to
    • تار:: shrink_to
    • OsString::shrink_to
    • PathBuf:: shrink_to
    • BinaryHeap::shrink_to
    • VecDeque::shrink_to
    • HashMap:: shrink_to
    • HashSet::shrink_to
  • د "const" خاصیت، کوم چې د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي، په دندو کې کارول کیږي
    • std::mem::transmute
    • [T]::لومړی
    • [T]::سپلایټ_لومړی
    • [T]::وروستی
    • [T]::Split_last
  • کمپیلر د LLVM نسخه 13 کارولو لپاره بدل شوی.
  • د ملاتړ دوهمه کچه د aarch64-apple-ios-sim پلیټ فارم لپاره او دریمه کچه د powerpc-unknown-freebsd او riscv32imc-esp-espidf پلیټ فارمونو لپاره پلي شوې. په دریمه کچه کې بنسټیز ملاتړ شامل دی، مګر د اتوماتیک ازموینې پرته، د رسمي ودانیو خپرول، یا دا ګوري چې آیا کوډ جوړیدلی شي.

په یاد ولرئ چې زنګ د حافظې خوندیتوب باندې تمرکز کوي ، د اتوماتیک حافظې مدیریت چمتو کوي ، او د کثافاتو راټولونکي یا رن ټایم کارولو پرته د دندې اجرا کولو کې د لوړې موازي لاسته راوړلو وسیلې چمتو کوي (د چلولو وخت د معیاري کتابتون لومړني پیل او ساتنې ته کم شوی).

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

سرچینه: opennet.ru

Add a comment