Rust 1.68 Программалоо тили релиз

Mozilla долбоору тарабынан негизделген, бирок азыр Rust Foundation көз карандысыз коммерциялык эмес уюмунун демөөрчүлүгү астында иштелип чыккан Rust 1.68 жалпы максаттуу программалоо тилинин релизи жарыяланды. Бул тил эстутумдун коопсуздугуна көңүл бурат жана таштанды жыйгычты жана иштөө убактысын колдонуудан качуу менен жогорку жумуш параллелизмине жетүү үчүн каражаттарды камсыз кылат (иштөө убактысы стандарттык китепкананы негизги инициализацияга жана тейлөөгө чейин кыскарган).

Rust'тун эстутум менен иштөө ыкмалары иштеп чыгуучуну көрсөткүчтөрдү манипуляциялоодо каталардан куткарат жана эстутумдун төмөнкү деңгээлдеги иштөөсүнөн улам келип чыккан көйгөйлөрдөн коргойт, мисалы, эстутумдун аймагына ал бошотулгандан кийин жетүү, нөл көрсөткүчтөрдү шилтемеден чыгаруу, буфердин ашып кетиши ж.б. Китепканаларды жайылтуу, курууну камсыз кылуу жана көз карандылыкты башкаруу үчүн долбоор Cargo пакетинин менеджерин иштеп чыгат. crates.io репозиторий китепканаларды хостинг үчүн колдоого алынат.

Эстутумдун коопсуздугу Rust программасында компиляция убагында маалымдама текшерүү, объектке ээлик кылуу, объекттин иштөө мөөнөттөрүн (кошумчаларын) эсепке алуу жана кодду аткаруу учурунда эстутумга жетүүнүн тууралыгын баалоо аркылуу камсыз кылынат. Rust ошондой эле бүтүн сандардын ашып кетишинен коргоону камсыз кылат, колдонуудан мурун өзгөрмө маанилерин милдеттүү түрдө инициализациялоону талап кылат, стандарттык китепканада каталарды жакшыраак иштетет, өзгөрүлгүс шилтемелер жана өзгөрмөлөр концепциясын демейки боюнча колдонот, логикалык каталарды азайтуу үчүн күчтүү статикалык терүүнү сунуштайт.

Негизги инновациялар:

  • Cargo пакетинин менеджери жана crates.io репозиторийинде Sparse протоколу стабилдештирилген, ал репозиторийдеги бардык пакеттердин жеткиликтүү версияларын чагылдырган индекс менен иштөөнүн жаңы ыкмасын аныктайт. Жаңы протокол crates.io менен иштөө ылдамдыгын олуттуу жогорулатууга жана репозиторийдеги пакеттердин санынын андан ары өсүшү менен масштабдоо маселелерин чечүүгө мүмкүндүк берет.

    Толук индексти жүктөп алуудан келип чыккан кечигүүлөрдү азайтуу үчүн, Git аркылуу индекске жетүүнүн ордуна Sparse белгилүү бир долбоордун көз карандылыгын камтыган керектүү индекс маалыматтарын гана HTTPS аркылуу түз жүктөп алууну камтыйт. Индекс маалыматтарды берүү үчүн жаңы кызмат index.crates.io колдонулат. Демейки боюнча, жаңы протоколду Rust 1.70 тармагында колдонуу пландаштырылган жана ага чейин аны иштетүү үчүн "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=сейрек" чөйрө өзгөрмөсүн орното аласыз же "[registries. crates-io]" .cargo/config.toml файлынын "сейрек" бөлүмү.

  • "T" туюнтмасынан Pin<&mut T> түзүмүн түзүүгө мүмкүндүк берүүчү "pin!" макросу кошулду (Box::pinден айырмаланып, ал үймөктө эстутумду бөлбөйт, бирок бириктирет. стек деңгээлинде).
  • Демейки эстутумду бөлүштүрүү катасын иштетүүчү сунушталды, стандарттуу бөлүштүрүү топтомун колдонууда колдонулат. Бөлүштүрүүнү гана иштеткен тиркемелер (std жок) эстутум бөлүштүрүлбөй калганда, эми "panic!" деп аташат. std китепканасын колдонгон программалар ката маалыматын stderrге басып чыгара беришет жана бузулат.
  • API'нин жаңы бөлүгү туруктуу категорияга жылдырылды, анын ичинде сапаттардын ыкмалары жана ишке ашырылышы турукташтырылды:
    • {core,std}::pin::pin!
    • impl From {f32,f64} үчүн
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut үчүн PathBuf
  • Аны константалардын ордуна каалаган контекстте колдонуу мүмкүнчүлүгүн аныктаган “const” атрибуту VecDeque::new функциясында колдонулат.
  • Платформада иштөө үчүн Android Эми жок дегенде NDK r25 (API 19) талап кылынат, б.а. минималдуу колдоого алынган версия Android 4.4 (KitKat) версиясына жаңыртылды.
  • Колдоонун үчүнчү деңгээли Sony PlayStation Vita платформасы үчүн ишке ашырылган (armv7-sony-vita-newlibeabihf). Үчүнчү деңгээл негизги колдоону камтыйт, бирок автоматташтырылган тестирлөөсүз, расмий түзүмдөрдү жарыялоосуз же кодду курууга болорун текшерүүсүз.

Source: opennet.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster