Rust 1.44 Programming Language Tso tawm

luam tawm system programming lus tso tawm Xeb 1.44, nrhiav tau los ntawm Mozilla qhov project. Cov lus qhia txog kev nyab xeeb ntawm kev nco, muab kev tswj hwm kev nco tsis siv neeg, thiab muab cov cuab yeej rau kev ua tiav cov haujlwm siab sib luag yam tsis tas siv cov khoom khib nyiab thiab Runtime.

Rust txoj kev tswj hwm tsis siv neeg nco tshem tawm qhov yuam kev thaum tswj cov taw qhia thiab tiv thaiv cov teeb meem tshwm sim los ntawm kev tswj hwm lub cim xeeb qis, xws li nkag mus rau thaj chaw nco tom qab nws tau tso tawm, tsis muaj qhov taw qhia dereferences, tsis muaj overruns, thiab lwm yam. Tus neeg saib xyuas pob tau tsim los faib cov tsev qiv ntawv, xyuas kom muaj kev sib dhos thiab tswj hwm 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.

Hauv cov ntawv tshaj tawm ntawm qhov kev tshaj tawm tshiab, Rust developers tau koom nrog kev nom kev tswv thiab taw qhia tsis kam luam tawm tag nrho cov kev tshuaj xyuas ntawm cov kev hloov pauv hauv Rust 1.44 raws li ib qho kev qhia txog kev sib koom siab nrog cov neeg tawm tsam tiv thaiv tub ceev xwm kev ua phem, qhia tias qhov teeb meem no tseem ceeb dua. tshaj qhov kev sib pauv ntawm kev txawj ntse. Basic kev tsim kho tshiab:

  • Tus neeg saib xyuas pob khoom thauj khoom sib koom ua ke "cargo tree" hais kom ua, uas qhia txog tsob ntoo zoo li cov duab nyob. Tsis tas li ntawd ntxiv yog qhov kev xaiv "-duplicates" ("cargo tree -d"), uas tso cai rau koj los soj ntsuam cov kev vam meej hauv ntau hom ntawm tib lub pob.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ammonia v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── log v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [build-dependencies] │ │ │ └── version_check v0.1.5
    ...

  • Rau cov ntawv thov tsis khi rau std ("#![no_std]"), kev txhawb nqa rau asynchronous programming cov tswv yim yog siv raws li "async" muaj nuj nqi, async txav {... } thaiv thiab ".ait" tus neeg teb xov tooj, uas ua kom yooj yim sau ntawv tsis thaiv cov neeg tuav tswj lub ntsiab lus txib khiav.
  • Kev them nyiaj yug rau ib qho kev nthuav dav module hierarchy txhais cov tswv yim tau muab ntxiv rau qhov parser. Piv txwv li, cov qauv hauv qab no yuav tsis tsim qhov yuam kev, txawm hais tias qhov tsis muaj qhov tseeb ntawm lub module "foo/bar/baz.rs" (tus tsim yog tseem semantically invalid thiab tej zaum yuav ua rau yuam kev, tab sis cov kev hloov yuav pom thiab parsed ntawm. macro thiab conditional compilation level):

    #[cfg(FALSE)] mod foo {
    mod bar {
    mod baz;
    }
    }

  • Lub rustc compiler tau ntxiv lub peev xwm los siv "-C codegen-units" chij nyob rau hauv incremental hom. Qhov kev siv ntawm catch_unwind tau rov ua haujlwm dua kom nws tsis muaj kev cuam tshuam rau kev ua haujlwm yog tias cov txheej txheem unwinding raug kaw thiab tsis muaj qhov tshwj xeeb raug pov tseg.
  • Theem 64 kev txhawb nqa tau muab rau aarch64-tsis paub-tsis muaj, aarch64-tsis paub-tsis muaj-softfloat, arm86-apple-tvos thiab x64_XNUMX-apple-tvos platforms. Qib thib peb suav nrog kev txhawb nqa yooj yim, tab sis tsis muaj kev sim ntsuas thiab tshaj tawm cov kev tsim tawm.
  • Ib feem tshiab ntawm APIs tau raug xa mus rau qeb ruaj khov, suav nrog kev ruaj khov
    PathBuf::with_capacity,
    PathBuf:: peev xwm,
    PathBuf:: clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Layout::align_to,
    Layout::pad_to_align,
    Layout::array thiab
    Layout::extend.

  • Extended functions ntawm tus qauv tsev qiv ntawv:
    • Ntxiv qhov tshwj xeeb "vec![]" variant uas ncaj qha cuam tshuam hauv Vec::new(), tso cai rau "vec![]" siv rau hauv cov ntsiab lus es tsis txhob tas mus li.
    • Ib qho kev siv (impl) ntawm qhov zoo tau raug ntxiv los hloov::Infallible Hash.
    • OsString siv cov ntsiab lus ntse DerefMut и IndexMut, rov qab "&mut OsStr".
    • Ntxiv kev txhawb nqa rau Unicode 13.
    • Implemented nyob rau hauv String Los ntawm <&mut str>.
    • IoSlice siv qhov zoo Copy.
    • Vec siv los ntawm <[T; N]>.
    • proc_macro::LexError siv fmt::Display thiab yuam kev.
  • Tus cwj pwm "const", uas txiav txim siab qhov muaj peev xwm ntawm kev siv nws hauv ib qho ntsiab lus tsis tas li, yog siv los ntawm _le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes thiab to_ne_bytes txoj kev rau txhua hom lej.
  • Ntxiv kev txhawb nqa rau tsim cov tsev qiv ntawv zoo li qub hauv ".a" hom tsis yog ".lib" rau GNU platforms ntawm Windows.
  • Yam tsawg kawg nkaus uas yuav tsum tau muaj rau LLVM tau raug tsa mus rau LLVM version 8.

Tau qhov twg los: opennet.ru

Ntxiv ib saib