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

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

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

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

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

  • د عمومي تړلو ډولونو (GAT، Generic Associated Types) لپاره ملاتړ اضافه شوی، کوم چې دا ممکنه کوي چې د بل ډول سره تړلي ډول عرفونه رامینځته کړي او تاسو ته اجازه درکوي چې د ډول جوړونکي د ځانګړتیاوو سره شریک کړئ. ټایپ فو {ډول بار<'x>; }
  • د "اجازه ... بل" بیان تطبیق شوی، تاسو ته اجازه درکوي چې د "اجازه" بیان کې مستقیم د نمونې مطابقت حالت وګورئ او خپل سري کوډ اجرا کړئ که نمونه سره سمون نه خوري. اجازه راکړئ Ok(count) = u64::from_str(count_str) else { ویره!("د انټیجر تحلیل نشي کولی: '{count_str}'"); };
  • د وقفې بیان کارولو ته اجازه ورکړئ چې نومول شوي بلاکونه د وخت څخه مخکې د وتلو لپاره وي، د بلاک نوم (لیبل) په کارولو سره د بندولو بلاک پیژندلو لپاره. let result = 'block: { do_thing(); که حالت_نه_مټ() { د بلاک 1 مات کړئ؛ } do_next_thing(); که حالت_نه_مټ() { د بلاک 2 ماتول؛ } do_last_thing(); ۳ } ;
  • د لینکس لپاره، په جلا توګه د ډیبګینګ معلوماتو خوندي کولو وړتیا (split-debuginfo)، چې مخکې یوازې د macOS پلیټ فارم لپاره شتون درلود، اضافه شوی. کله چې د "-Csplit-debuginfo=unpacked" اختیار مشخص کړئ، د DWARF بڼه کې د debuginfo ډاټا به د ".dwo" توسیع سره په څو جلا اعتراض فایلونو کې خوندي شي. د "-Csplit-debuginfo=packed" مشخص کول به په ".dwp" بڼه کې یو واحد بسته رامینځته کړي چې د پروژې لپاره د ډیبګینفو ټول معلومات پکې شامل وي. د debuginfo په مستقیم ډول د ELF شیانو .debug_* برخه کې یوځای کولو لپاره، تاسو کولی شئ د "-Csplit-debuginfo=off" اختیار وکاروئ.
  • د API یوه نوې برخه د ثبات کټګورۍ ته لیږدول شوې، په شمول د ځانګړتیاوو میتودونه او پلي کول ثبات شوي دي:
    • std::backtrace::Backtrace
    • پابند::as_ref
    • std::io::read_to_string
    • <*const T>::cast_mut
    • <*mut T>::cast_const
  • د "const" خاصیت، کوم چې د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي، په دندو کې کارول کیږي <*const T&>::offset_from او <*mut T>::offset_from
  • د زنګ شنونکي ته د LSP (ژبې سرور پروتوکول) پروتوکول د پلي کولو د وروستي مرحلې د یوې برخې په توګه ، د زنګ د ژبې سرور (RLS) پخوانی پلي کول د سټب سرور سره ځای په ځای شوي چې د بدلولو وړاندیز سره خبرداری ورکوي. د زنګ تحلیل کونکي کارول.
  • د تالیف په جریان کې، د MIR منځګړی کوډ د انلاین ځای پرځای کولو لپاره ملاتړ فعال شوی، کوم چې د 3-10٪ لخوا د عادي کریټ کڅوړو تالیف سرعت کوي.
  • د مهالویش جوړیدو ګړندی کولو لپاره ، د کارګو کڅوړه مدیر په قطار کې د اجرا کیدو په تمه د دندو ترتیب کول چمتو کوي.

برسیره پردې، تاسو کولی شئ د اتوماتیک معلوماتو سیسټمونو برخو ته وده ورکولو لپاره په Volvo کې د Rust ژبې کارولو په اړه مرکه یادونه وکړئ. په Rust کې د موجوده او ازمول شوي کوډ د بیا لیکلو کوم پلان شتون نلري، مګر د نوي کوډ لپاره، زنګ په ټیټ لګښتونو کې د کیفیت ښه کولو لپاره یو له غوره انتخابونو څخه دی. د زنګ ژبې کارولو پورې اړوند کاري ډلې د موټرو اتحادیې AUTOSAR (د آټوموټیو خلاص سیسټم آرکیټیکچر) او SAE (د موټرو انجینرانو ټولنه) کې هم رامینځته شوي.

سربیره پردې ، ډیویډ کلیدرماکر ، د ګوګل د انجینرۍ مرستیال ، د کوډ ژباړې په اړه خبرې وکړې چې په Android پلیټ فارم کې کارول شوي ترڅو په زنګ کې د کوډ کولو کیلي اداره کړي ، په بیله بیا په سټیک کې د HTTPS پروتوکول په اړه د DNS پلي کولو کې د زنګ کارولو په اړه. د UWB- چپس لپاره (الټرا وایډ بانډ) او د مجازی کولو چوکاټ کې (د Android مجازی کولو چوکاټ) د ټینسر G2 چپ سره تړاو لري. د بلوتوټ او وائی فای لپاره نوي سټیکونه ، په زنګ کې بیا لیکل شوي ، د Android لپاره هم رامینځته شوي. عمومي ستراتیژي په تدریجي ډول امنیت پیاوړی کول دي، لومړی د خورا زیان منونکي او حیاتي سافټویر اجزاو په زنګ بدلولو سره، او بیا نورو اړوندو فرعي سیسټمونو ته پراختیا ورکول. تیر کال، د زنګ ژبه د هغو ژبو په لیست کې شامله شوه چې د Android پلیټ فارم پراختیا لپاره اجازه ورکړل شوې.

سرچینه: opennet.ru

Add a comment