Rust 1.35 ծրագրավորման լեզվի թողարկում

տեղի ունեցավ համակարգի ծրագրավորման լեզվի թողարկում Ժանգ 1.35, մշակված Mozilla նախագծի կողմից։ Լեզուն կենտրոնանում է հիշողության անվտանգության վրա, ապահովում է հիշողության ավտոմատ կառավարում և ապահովում է առաջադրանքների բարձր զուգահեռության հասնելու միջոց՝ առանց աղբահանող սարքի կամ գործարկման ժամանակի օգտագործման:

Rust-ի հիշողության ավտոմատ կառավարումն ազատում է ծրագրավորողին ցուցիչի մանիպուլյացիայից և պաշտպանում է ցածր մակարդակի հիշողության մանիպուլյացիայից առաջացող խնդիրներից, ինչպիսիք են հիշողության ազատ մուտքերը, զրոյական ցուցիչի մատնանշումները, բուֆերների գերակատարումները և այլն: Մշակվում է փաթեթների կառավարիչ՝ գրադարանները բաշխելու, հավաքումն ապահովելու և ծրագրի կողմից կախվածությունները կառավարելու համար: բեռ, որը թույլ է տալիս մեկ սեղմումով ստանալ ծրագրի համար անհրաժեշտ գրադարանները: Գրադարանները հյուրընկալելու համար աջակցվում է պահեստ crates.io.

Հիմնական նորամուծություններ:

  • Հատկանիշներ FnOnce, FnMut и Fn իրականացվում է կույտով հատկացված տուփի տեսակները Box‹dyn FnOnce›, Box‹dyn FnMut› և Box‹dyn Fn›;
  • Ավելացված է առիթ Անվտանգ գործառույթի ցուցիչների վրա փակման ձևավորում (անապահով fn);
  • Իրականացրել է մակրո «dbg!» անվանելու հնարավորությունը: առանց արգումենտների՝ stderr-ում ֆայլի անունը և տողի համարը ցուցադրելու համար՝ առանց փոփոխականը ստուգելու, ինչը հարմար է պայմանական արտահայտությունների գործողությունը վրիպազերծելու համար.
  • Ավելացվեց մեթոդը «լողացող կետի f32 և f64 տեսակներինպատճենահանման նշան» պատճենել նիշը մի թվից մյուսը.
  • Ավելացված մեթոդ»պարունակում«, որը թույլ է տալիս ստուգել, ​​թե արդյոք նշված արժեքը գտնվում է տիրույթում.
  • Ավելացված մեթոդ Հղում: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::պարունակում է և
    Տարբերակ::պատճենված;

  • Ավելացվեց drop_bounds ստուգում clippy-ին (linter), որը գործարկվում է ֆունկցիային «T: Drop» կապ ավելացնելիս;
  • Կազմողն ավելացրել է աջակցություն նոր թիրախային հարթակի համար
    wasm32-անհայտ-wasi (ինտերֆեյս ՎԱՍԻ օգտագործել WebAssembly բրաուզերից դուրս);

  • Rust գործիքակազմը հարմարեցված է բաշխումների համար՝ հիմնված Musl ստանդարտ C գրադարանի վրա:

Source: opennet.ru

Добавить комментарий