Rust 1.36 Programming Language Tso tawm

luam tawm system programming lus tso tawm Xeb 1.36, nrhiav tau los ntawm Mozilla qhov project. Cov lus hais txog kev nyab xeeb ntawm kev nco, muab kev tswj hwm kev nco tsis siv neeg, thiab muab txoj hauv kev kom ua tiav cov haujlwm siab sib luag yam tsis tas siv cov khoom khib nyiab lossis lub sijhawm ua haujlwm.

Rust qhov kev tswj hwm tsis siv neeg lub cim xeeb tso tawm tus tsim tawm los ntawm kev siv tus taw tes thiab tiv thaiv cov teeb meem tshwm sim los ntawm kev tswj hwm lub cim xeeb qis, xws li kev nkag mus rau lub cim xeeb tom qab tsis pub dawb, tsis muaj qhov taw qhia tsis zoo, tsis muaj kev cuam tshuam, thiab lwm yam. Tus neeg saib xyuas pob yog tsim los faib cov tsev qiv ntawv, xyuas kom muaj kev sib dhos thiab tswj cov kev vam meej los ntawm qhov project. cargo, tso cai rau koj kom tau txais cov tsev qiv ntawv xav tau rau qhov kev pab cuam hauv ib nias. Lub chaw khaws cia tau txais kev txhawb nqa rau cov tsev qiv ntawv crates.io.

ntsiab kev tsim kho tshiab:

  • Tus cwj pwm stabilized Yav tom ntej, uas sawv cev rau tus nqi uas nws qhov kev ntsuam xyuas tseem tsis tau ua tiav thaum siv async / .ait blocks. Cov txiaj ntsig asynchronous txhais tau tias siv Yav Tom Ntej ua rau nws muaj peev xwm txuas ntxiv ua haujlwm tseem ceeb hauv cov xov, thaum tib lub sijhawm tos kom tiav cov kev suav ntawm qee tus nqi;
  • Lub tsev qiv ntawv ruaj khov faib, uas muab cov ntsiab lus ntse thiab cov khoom sau rau kev tswj hwm cov txiaj ntsig ntawm kev nco. Memory faib nyob rau hauv std tam sim no siv hom Ib yam, uas yog re-exported los ntawm alloc. Sib cais siv alloc ua rau kev nkag siab hauv cov ntawv thov tsis khi rau std (β€œ#![no_std]”), nrog rau hauv cov tsev qiv ntawv tsim los siv rau hauv cov haujlwm zoo sib xws yam tsis muaj std;
  • Txhawm rau hla kev txheeb xyuas qhov tseeb pib ntawm qhov muaj nuj nqis npaj hom nruab nrab Tej zaumUnit, uas tuaj yeem siv los hloov lub mem::unitialized muaj nuj nqi raws li kev nyab xeeb dua. Lub mem:: uninitialized muaj nuj nqi yog yooj yim rau sai tsim arrays, tab sis nws misleads lub compiler vim hais tias nws zoo li tau pib, tab sis qhov tseeb tus nqi tseem uninitialized. Tej zaumUninit tso cai rau koj los qhia meej rau lub compiler tias tus nqi yog uninitialized, coj mus rau hauv tus account qhov ua tau undefined tus cwj pwm cuam tshuam nrog qhov no, thiab tseem los npaj cov tshev hauv cov kev pab cuam los ntawm "maybe_t:" thiab step-by-step pib, cim nws tiav siv lub β€œ.assume_init()” hu. Nrog rau qhov tshwm sim ntawm MaybeUninit, lub mem::unitialized muaj nuj nqi tau deprecated thiab tsis pom zoo siv;
  • Cov txheej txheem NLL (Non-Lexical Lifetimes), uas nthuav dav lub kaw lus rau kev sau lub neej ntawm kev qiv nyiaj, tau ruaj khov rau cov lus Rust 2015 (thaum pib, NLL tsuas yog txhawb nqa los ntawm Rust 2018). Hloov chaw ntawm kev ua neej nyob ntawm qib lexical, NLL ua li ntawd nyob rau theem ntawm cov txheej txheem taw qhia hauv kev ua tiav cov duab ntws. Txoj hauv kev no tso cai rau koj txhawm rau txhawm rau txhawm rau txhawm rau txheeb xyuas qhov qiv ntawm qhov hloov pauv (qhib checker) thiab tso cai rau kev ua tiav ntawm qee hom kev cai raug cai, kev siv uas yav dhau los coj mus rau qhov yuam kev. Tus cwj pwm tshiab kuj ua rau kev debugging yooj yim dua;
  • Kev siv tshiab ntawm associative arrays suav nrog HashMap, raws li kev thov ntawm cov qauv Swiss Rooj (automatically loaded hashbrown::HashMap, tshwj tsis yog hais meej meej, xws li std::HashMap, uas yog raws li SipHash 1-3). Lub software interface tseem zoo li qub, thiab qhov sib txawv pom tau rau tus tsim tawm kom ua rau muaj kev ua tau zoo thiab txo kev nco;
  • Nyob rau hauv lub pob neeg saib xyuas cargo ntxiv qhov "--offline" kev xaiv, uas ua rau kev ua haujlwm yam tsis muaj kev nkag mus rau lub network, uas tsuas yog cov pob cached hauv qhov system hauv zos tau siv thaum txhim kho kev vam meej. Yog tias qhov kev vam khom tsis nyob hauv lub zos cache, qhov yuam kev yuav raug muab pov tseg. Txhawm rau preload dependencies rau hauv lub zos cache ua ntej mus offline, koj tuaj yeem siv "cargo fetch" hais kom ua;
  • Siv lub peev xwm hu rau macro "dbg!" qhia txog ntau qhov kev sib cav;
  • Tus cwj pwm "const", uas txiav txim siab qhov muaj peev xwm ntawm kev siv hauv ib qho ntsiab lus tsis yog qhov qub, yog siv rau txoj hauv kev
    Layout::from_size_align_unchecked,
    mem::yuav tsum_drop,
    NonNull::dangling and
    Tsis Null::cast;

  • Ib feem tshiab ntawm APIs tau raug xa mus rau pawg ruaj khov, suav nrog cov txheej txheem uas tau ua kom ruaj khov
    task::Waker, task::Poll,
    VecDeque::rotate_left, VecDeque::rotate_right,
    Nyeem::read_vectored, Sau::write_vectored,
    Iterator ::copy,
    BorrowMut (rau cov hlua) thiab str::as_mut_ptr.

Tau qhov twg los: opennet.ru

Ntxiv ib saib