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

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

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

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

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

  • د کارګو بسته مدیر او د crates.io ذخیره د سپارس پروتوکول لپاره مالتړ ثبات کړی، کوم چې د شاخص سره د کار کولو نوې طریقه ټاکي چې په ذخیره کې د موجود ټولو کڅوړو موجودې نسخې منعکس کوي. نوی پروتوکول تاسو ته اجازه درکوي د پام وړ د crates.io سره د کار کولو سرعت لوړ کړئ او په ذخیره کې د کڅوړو شمیر کې د لا ودې سره د پیمانه کولو ستونزې حل کړئ.

    د بشپړ شاخص ډاونلوډ کولو له امله رامینځته شوي ځنډونو کمولو لپاره ، سپارس د Git په کارولو سره شاخص ته د لاسرسي پرځای یوازې د HTTPS اړین شاخص ډیټا مستقیم ډاونلوډ کول شامل دي ، د یوې ځانګړې پروژې انحصار پوښي. یو نوی خدمت، index.crates.io، د شاخص ډاټا چمتو کولو لپاره کارول کیږي. په ډیفالټ ډول ، نوی پروتوکول پلان شوی چې په Rust 1.70 څانګه کې وکارول شي ، او له دې دمخه ، د دې وړولو لپاره ، تاسو کولی شئ د چاپیریال متغیر "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" تنظیم کړئ یا "پروتوکول =" پیرامیټر اضافه کړئ "[رجسټرې. crates-io]" د .cargo/config.toml فایل 'sparse' برخه.

  • د "پن!" میکرو اضافه کړه، کوم چې تاسو ته اجازه درکوي د "T" له بیان څخه د پن<&mut T> جوړښت د خپل حالت ځایی پننګ سره رامینځته کړئ (د بکس::پن برعکس ، دا په خیټه کې حافظه نه تخصیص کوي ، مګر تړل کیږي د سټک په کچه).
  • د ډیفالټ حافظې تخصیص خطا اداره وړاندیز شوې ، کله چې د معیاري تخصیص کڅوړې کارولو پرمهال کارول کیږي. هغه غوښتنلیکونه چې یوازې الوک فعالوي (پرته له std) به اوس د "ډار!" هینډلر ته زنګ ووهي کله چې د حافظې تخصیص ناکام شي ، کوم چې په اختیاري توګه د "#[panic_handler]" په کارولو سره مخنیوی کیدی شي. هغه پروګرامونه چې د std کتابتون په کارولو سره به د تېروتنې معلوماتو چاپولو ته دوام ورکړي تر څو stderr او crash.
  • د API یوه نوې برخه د ثبات کټګورۍ ته لیږدول شوې، په شمول د ځانګړتیاوو میتودونه او پلي کول ثبات شوي دي:
    • {core,std}::pin::pin!
    • impl له د {f32,f64} لپاره
    • std::path::MAIN_SEPARATOR_STR
    • د PathBuf لپاره impl DerefMut
  • د "const" خاصیت، کوم چې د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي، په VecDeque::new فنکشن کې کارول کیږي.
  • د Android پلیټ فارم کې کار کولو لپاره، لږترلږه NDK r25 (API 19) اوس اړین دی، د بیلګې په توګه. د Android لږترلږه ملاتړ شوی نسخه 4.4 (KitKat) ته پورته شوې.
  • د ملاتړ دریمه کچه د سوني پلی سټیشن ویټا پلیټ فارم لپاره پلي شوې (armv7-sony-vita-newlibeabihf). په دریمه کچه کې بنسټیز ملاتړ شامل دی، مګر د اتوماتیک ازموینې پرته، د رسمي ودانیو خپرول، او د کوډ جوړولو وړتیا تایید کول.

سرچینه: opennet.ru

Add a comment