Rust 1.55 Programming Language Tso tawm

Kev tso tawm ntawm cov kab lus programming Rust 1.55, 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 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 ua haujlwm siab tsis tas siv cov khoom siv khib nyiab lossis lub sijhawm ua haujlwm (runtime raug txo qis rau kev pib pib thiab kev saib xyuas ntawm lub tsev qiv ntawv txheem).

Rust txoj kev tswj hwm tsis siv neeg lub cim xeeb txuag tus tsim tawm los ntawm kev ua yuam kev thaum tswj cov taw qhia thiab tiv thaiv cov teeb meem uas tshwm sim vim kev tswj hwm kev nco 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.

Main innovations:

  • Tus neeg saib xyuas pob khoom thauj khoom muaj peev xwm los ua ke qhov yuam kev thiab cov lus ceeb toom uas tshwm sim thaum tsim. Thaum ua tiav cov lus txib xws li "cargo test" thiab "cargo check --all-targets" uas ua rau muaj ntau yam kev tsim ntawm ib pob nrog cov tsis sib txawv, tus neeg siv tam sim no tau qhia txog cov ntsiab lus ntawm qhov tshwm sim ntawm qhov teeb meem rov qab, es tsis txhob tshwm sim. ntau cov lus ceeb toom zoo ib yam thaum tsim tib yam dua. $ cargo +1.55.0 kos β€”tag nrho cov hom phiaj Kos foo v0.1.0 ceeb toom: muaj nuj nqi yeej tsis siv: 'foo' β€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = note: '#[warn(dead_code)]' on by default warning: 'foo' (lib) generated 1 warning ceeb toom: 'foo' (lib test) generated 1 warning (1 duplicate) Finished dev [unoptimized + debuginfo] target ua 0.84s
  • Lub floating point parsing code nyob rau hauv tus txheej txheem tsev qiv ntawv tau raug tsiv mus siv qhov ceev thiab ntau yog Eisel-Lemire algorithm, uas tau daws ib co yav tas los soj ntsuam cov teeb meem nrog rounding thiab parsing tooj nrog ntau tus lej.
  • Lub peev xwm los qhia txog qhov tsis raug kaw hauv cov qauv tau ua kom ruaj khov ("X.." yog txhais raws li qhov ntau yam uas pib nrog tus nqi X thiab xaus nrog tus nqi siab tshaj plaws ntawm tus lej): phim x li u32 { 0 => println! ("zero!"), 1.. => println!("tus lej zoo!"), }
  • Expanded yuam kev variants them los ntawm std::io::ErrorKind (chaw ua yuam kev rau hauv pawg xws li NotFound thiab WouldBlock). Yav dhau los, qhov yuam kev uas tsis haum rau hauv pawg uas twb muaj lawm tau poob rau hauv ErrorKind::Lwm yam, uas kuj tau siv rau kev ua yuam kev nyob rau hauv thib peb-tog code. Tam sim no muaj cais pawg sab hauv ErrorKind::Uncategorized rau qhov yuam kev uas tsis haum rau hauv pawg uas twb muaj lawm, thiab ErrorKind::Lwm yam yog txwv rau qhov tsis raug uas tsis tshwm sim hauv cov tsev qiv ntawv txheem (cov qauv tsev qiv ntawv ua haujlwm uas rov qab io:: yuam kev tsis siv lub ErrorKind:: qeb Lwm yam).
  • 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:
    • khi:: cloned
    • Drain::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • Tej zaumUninit:: assume_init_mut
    • Tej zaumUninit::assume_init_ref
    • Tej zaumUninit ::write
    • kob ::map
    • ops::ControlFlow
    • x86: :ua
    • x86 ::qeb
    • x86 ::bt t
    • x86: :ua
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Qhov "const" tus cwj pwm, uas txiav txim siab qhov muaj peev xwm siv nws hauv txhua lub ntsiab lus tsis yog qhov tsis tu ncua, yog siv hauv str::from_utf8_unchecked method.
  • Qhov thib peb theem ntawm kev txhawb nqa tau siv rau lub powerpc64le-unknown-freebsd platform. 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.

Tau qhov twg los: opennet.ru

Ntxiv ib saib