Rust 1.62 Programming Language Tso tawm

Kev tso tawm ntawm Rust 1.62 cov lus qhia dav dav, tsim los ntawm Mozilla qhov project, tab sis tam sim no tsim los ntawm kev txhawb nqa ntawm lub koom haum ywj pheej tsis muaj txiaj ntsig Rust Foundation, tau tshaj tawm. Cov lus qhia txog kev nyab xeeb ntawm kev nco thiab muab txoj hauv kev kom ua tiav txoj haujlwm siab sib luag thaum tsis txhob siv cov khoom siv khib nyiab thiab lub sijhawm ua haujlwm (runtime raug txo qis rau kev pib pib thiab kev saib xyuas ntawm lub tsev qiv ntawv txheem).

Rust lub cim xeeb tuav txoj kev cawm tus tsim tawm los ntawm kev ua yuam kev thaum tswj cov taw qhia thiab tiv thaiv cov teeb meem uas tshwm sim los ntawm kev ua haujlwm qis qis, xws li nkag mus rau thaj chaw nco tom qab nws tau tso tawm, dereferencing null pointers, tsis overruns, thiab lwm yam. Txhawm rau faib cov tsev qiv ntawv, muab kev tsim kho thiab tswj hwm kev vam khom, qhov project tsim tus thawj tswj hwm pob khoom. Lub crates.io repository yog txaus siab rau hosting cov tsev qiv ntawv.

Kev nyab xeeb nco yog muab rau hauv Rust ntawm lub sijhawm sau los ntawm kev siv tshuaj xyuas, ua raws li cov tswv cuab ntawm cov khoom, khaws cov khoom siv lub neej (scopes), thiab ntsuas qhov tseeb ntawm kev nkag mus rau lub cim xeeb thaum lub sijhawm ua tiav cov lej. Rust kuj tseem muab kev tiv thaiv tus lej ntau dhau, yuav tsum muaj qhov sib txawv kom pib ua ntej siv, ua haujlwm yuam kev zoo dua hauv cov tsev qiv ntawv tus qauv, siv lub tswv yim ntawm cov ntaub ntawv tsis hloov pauv thiab hloov pauv los ntawm lub neej ntawd, thiab muaj kev ntaus ntawv zoo li qub kom txo qis qhov yuam kev.

Main innovations:

  • Tus thawj tswj hwm pob "cargo" muab "ntxiv" hais kom ua, uas tso cai rau koj ntxiv cov kev vam khom tshiab rau Cargo.toml manifest lossis hloov pauv cov kev vam khom uas twb muaj lawm los ntawm kab hais kom ua. Cov lus txib tseem tso cai rau koj los qhia meej txog tus kheej cov yam ntxwv thiab cov qauv, piv txwv li: cargo ntxiv serde -features derive cargo ntxiv nom@5
  • Ntxiv lub peev xwm los siv "#[derive(Default)]" nrog enums nyob rau hauv uas lub neej ntawd kev xaiv yog txhais siv lub "#[default]" attribute. #[derive(Default)] enum Tej zaum { #[default] Tsis muaj dab tsi, Ib yam dab tsi (T), }
  • Ntawm Linux platform, kev siv ntau dua thiab nrawm dua ntawm Mutex synchronization mechanism yog siv, raws li kev siv fuexes muab los ntawm Linux ntsiav. Tsis zoo li cov kev siv yav dhau los raws li cov tsev qiv ntawv pthreads, qhov tshiab version tsuas siv 5 bytes es tsis txhob 40 los khaws lub xeev Mutex. Ib yam li ntawd, Condvar thiab RwLock locking mechanisms tau pauv mus rau futex.
  • Ib theem thib ob ntawm kev txhawb nqa rau x86_64-tsis paub-tsis muaj lub hom phiaj platform tau raug coj los siv, tsim los tsim cov ntaub ntawv ua tiav uas tuaj yeem ua haujlwm yam tsis muaj kev ua haujlwm. Piv txwv li, lub hom phiaj lub hom phiaj yuav siv tau thaum sau cov kernel Cheebtsam. Qib thib ob ntawm kev txhawb nqa suav nrog kev sib dhos lav.
  • Qhov thib peb theem ntawm kev txhawb nqa tau siv rau aarch64-pc-windows-gnullvm thiab x86_64-pc-windows-gnullvm platforms. Qib thib peb suav nrog kev txhawb nqa yooj yim, tab sis tsis muaj kev sim automated, tshaj tawm kev tsim kho, lossis tshawb xyuas seb tus lej puas tuaj yeem tsim.
  • Ib feem tshiab ntawm API tau raug hloov mus rau qeb ntawm qhov ruaj khov, suav nrog cov txheej txheem thiab kev siv ntawm cov yam ntxwv tau ruaj khov:
    • bool:: then_some
    • f32 ::txc
    • f64 ::txc
    • Stdin:: kab
    • windows::CommandExt::raw_arg
    • impl default tus nqi rau AssertUnwindSafe
    • Los ntawm > rau Rc
    • Los ntawm > rau Arc<[u8]>
    • FusedIterator rau EncodeWide

    Tau qhov twg los: opennet.ru

Ntxiv ib saib