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

болуп өттү системалык программалоо тили чыгаруу Дат 1.35, Mozilla долбоору тарабынан иштелип чыккан. Бул тил эстутумдун коопсуздугуна басым жасайт, эстутумду автоматтык башкарууну камсыз кылат жана таштанды жыйноочу же иштөө убактысын колдонбостон жогорку тапшырма параллелизмине жетүү үчүн каражат берет.

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

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

  • Белгилери FnOnce, FnMut и Fn үймөк-бөлүштүрүлгөн үчүн ишке ашырылган кутуча түрлөрү Box‹dyn FnOnce›, Box‹dyn FnMut› and Box‹dyn Fn›;
  • Кошулган мүмкүнчүлүк кооптуу функция көрсөткүчтөрүнө жабууларды чыгаруу (кооптуу fn);
  • Макросту “dbg!” деп чакыруу мүмкүнчүлүгү ишке ашырылды. шарттуу туюнтмалардын иштешин оңдоо үчүн ыңгайлуу болгон өзгөрмөнү текшерүүсүз stderrде файлдын атын жана сап номерин көрсөтүү үчүн аргументсиз;
  • f32 жана f64 калкыма чекиттин түрлөрүнө " ыкмасы кошулдуcopysign» символду бир сандан экинчисине көчүрүү;
  • Кошулган ыкма "камтылган", бул көрсөтүлгөн маани диапазондо экендигин текшерүүгө мүмкүндүк берет;
  • Кошулган ыкма Ref:Cell:map_split, карызга алынган маалыматтардын ар кандай компоненттери үчүн алынган RefCell маанисин чагылдырууга жана бөлүүгө мүмкүндүк берет;
  • Кошулган ыкма RefCell::replace_with учурдагы RefCell маанисин алмаштыруу жана натыйжада эски маанини кайтаруу үчүн;
  • Кошулган ыкма ptr::hash көрсөткүчтү же шилтемени даректелген мааниге караганда дарек боюнча хэш кылуу;
  • Кошулган ыкма Опция::көчүрүлгөн Option‹&T› же Option‹&mut T› опцияларынын мазмунун көчүрүү үчүн;
  • API'лердин жаңы бөлүгү туруктуу категорияга, анын ичинде стабилдештирилген ыкмаларга которулду
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Диапазон :: камтыйт,
    RangeFrom::камтыган,
    RangeTo::камтыйт,
    RangeInclusive :: камтыйт,
    RangeToInclusive:: камтыйт жана
    Option::copied;

  • Функцияга "T: Drop" байламтасын кошкондо иштетилет клипке (линтер) drop_bounds текшерүүсү кошулду;
  • Компилятор жаңы максаттуу платформа үчүн колдоо кошту
    wasm32-белгисиз-wasi (interface WASI WebAssembly браузерден тышкары колдонуу үчүн);

  • Rust инструменттери стандарттык C китепканасынын Musl негизинде бөлүштүрүүгө ылайыкташтырылган.

Source: opennet.ru

Комментарий кошуу