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

ترسره شو د سیسټم پروګرام کولو ژبه خپرول زنګ 1.34د موزیلا پروژې لخوا رامینځته شوی. ژبه د حافظې خوندیتوب باندې تمرکز کوي، د اتوماتیک حافظې مدیریت چمتو کوي، او د کثافاتو راټولونکي یا د چلولو وخت کارولو پرته د لوړې دندې موازي کولو لپاره وسیله چمتو کوي.

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

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

  • د کارګو کڅوړې مدیر د بدیل کڅوړې راجسټری سره کار کولو لپاره وسیلې اضافه کړې چې کولی شي د crates.io عامه راجسټری سره یوځای پاتې شي. د مثال په توګه ، د ملکیت غوښتنلیکونو پراختیا کونکي اوس کولی شي خپل شخصي راجسټري وکاروي ، کوم چې په Cargo.toml کې د انحصارونو لیست کولو پرمهال کارول کیدی شي ، او د دوی محصولاتو لپاره crates.io ته ورته نسخه ماډل پلي کړي ، او همدارنګه دواړه کریټونو ته انحصار راجع کړي. io او ستاسو خپل راجستر ته.

    په .cargo/config کې د بهرنیو راجسترونو اضافه کولو لپاره (په $ HOME یا د بسته بندۍ لارښود کې موقعیت لري)
    چمتو شوی برخه "[رجسټري]"، او د بهرنۍ راجسټرۍ کارولو لپاره، د "رجسټري" اختیار په Cargo.toml کې د هر انحصار په تفصیل کې څرګند شوی. د اضافي راجسټری سره وصل کیدو لپاره ، په ساده ډول د تصدیق نښه په ~/.cargo/credentials فایل کې ځای په ځای کړئ او کمانډ چل کړئ
    "د کارګو ننوتنه --registry=my-registry" او د کڅوړې خپرولو لپاره -
    "د کارګو خپرول -رجسټري = زما-رجسټري"؛

  • د "؟" آپریټر کارولو لپاره بشپړ ملاتړ اضافه شوی. په ازموینو کې دوکتورا، تاسو ته اجازه درکوي چې د ازموینې په توګه د اسنادو څخه د مثال کوډ وکاروئ. پخوا چلونکی
    "؟" یوازې د "fn main()" فنکشن یا "#[test]" دندو کې شتون کې د ازموینې اجرا کولو پرمهال د غلطیو اداره کولو لپاره کارول کیدی شي؛

  • په دودیز ځانګړتیاو کې چې د طرزالعمل میکرو په کارولو سره تعریف شوي چمتو شوی د ټوکنونو د خپلسري سیټونو کارولو وړتیا ("#[attr($tokens)]"، "#[attr[$tokens]] او #[attr{$tokens}]"). پخوا، عناصر یوازې د ونې / تکراري بڼه کې د سټینګ لیکونو په کارولو سره مشخص کیدی شي، د بیلګې په توګه "#[foo(bar, baz(quux, foo = "bar"))]"، مګر اوس دا ممکنه ده چې د شمیرو کارول (' #[رینج(0. .10)]') او ساختمانونه لکه "#[بند(T: MyTrait)]"؛
  • مستحکم ډولونه (خصوصیت) له دې څخه هڅه وکړئ и هڅه وکړئد غلطۍ سمبالولو سره د ډول تبادلو ته اجازه ورکوي. د مثال په توګه، د انټیجر ډولونو سره د from_be_bytes په څیر میتودونه د ان پټ په توګه سرې کاروي، مګر ډاټا ډیری وختونه د سلائس ډول کې راځي، او د صفونو او سلائسو ترمنځ بدلول په لاسي ډول ترسره کول ستونزمن دي. د نوو ځانګړتیاوو په مرسته، ټاکل شوی عملیات په الوتنه کې د .try_into() ته د زنګ وهلو له لارې ترسره کیدی شي، د بیلګې په توګه، "let num = u32::from_be_bytes(slice.try_into()؟)". د تبادلو لپاره چې تل بریالي وي (د مثال په توګه، له u8 څخه تر u32 پورې)، د تېروتنې ډول اضافه شوی عصبيد شفاف استعمال اجازه ورکوي
    د "څخه" د ټولو موجوده پلي کولو لپاره هڅه وکړئ؛

  • فعالیت له مینځه وړل شوی CommandExt::before_exec، کوم چې یو هینډلر ته اجازه ورکړه چې د exec چلولو دمخه اعدام شي ، کوم چې د فورک() زنګ وروسته د ماشوم پروسې په شرایطو کې اعدام شوی و. په داسې شرایطو کې، د اصلي پروسې ځینې سرچینې، لکه د فایل تشریح کونکي او نقشه شوي حافظې ساحې، کیدای شي نقل شي، کوم چې کولی شي د کتابتونونو ناسم چلند او ناسم عملیات المل شي.
    دا سپارښتنه کیږي چې د before_exec پرځای یو ناامنه فعالیت وکاروئ CommandExt::pre_exec.

  • ثابت شوي لاسلیک شوي او نه لاسلیک شوي اټومي عدد ډولونه چې اندازه یې له 8 څخه تر 64 بټونو پورې وي (د مثال په توګه، اټوميU8)، همدارنګه لاسلیک شوي ډولونه غیر صفر[8|16|32|64|128].
  • د API یوه نوې برخه مستحکم کټګورۍ ته لیږدول شوې، پشمول د Any::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub ] او د SystemTime میتودونه ثبات شوي دي ::checked_[add|sub]. د iter::from_fn او iter::د جانشین فعالیتونه ثبات لري؛
  • د ټولو عددي ډولونو لپاره، checked_pow، saturating_pow، wrapping_pow او overflowing_pow میتودونه پلي کیږي؛
  • د لینک کولو مرحله کې د "-C لینکر-پلگ ان-lto" جوړونې اختیار مشخص کولو سره د اصلاح کولو وړتیا اضافه کړه.

سرچینه: opennet.ru

Add a comment