Rust 1.44 Chirongwa Mutauro Kuburitswa

rakabudiswa system programming mutauro kuburitswa Ngura 1.44, yakatangwa neMozilla project. Mutauro unotarisana nekuchengetedza ndangariro, unopa otomatiki ndangariro manejimendi, uye inopa maturusi ekuwana yakakwira basa parallelism pasina kushandisa muunganidzi wemarara uye. runtimetime.

Rust's otomatiki ndangariro manejimendi inobvisa zvikanganiso kana ichishandisa anongedza uye inodzivirira kubva kune yakaderera-level memory manipulation, sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa, null pointer dereferences, buffer overruns, nezvimwe. Maneja wepakeji ari kugadzirwa kugovera maraibhurari, kuona kuungana uye kugadzirisa zvinovimbika neprojekiti. kago, zvichikubvumidza kuti uwane maraibhurari anodiwa pachirongwa ichi nekudzvanya kumwe chete. A repository inotsigirwa kuitisa maraibhurari crates.io.

Muchinyorwa chechiziviso chekusunungurwa kutsva, vagadziri veRust vakapinda mune zvematongerwo enyika uye vakaramba zvakasimba kubudisa kuongorora kwakazara kwekuchinja kweRust 1.44 sechiratidzo chekubatana nevanopikisa mhirizhonga yemapurisa, zvichiratidza kuti nyaya iyi inonyanya kukosha. pane kuchinjana kweruzivo rwehunyanzvi. Basic zvitsva:

  • Iyo Cargo package maneja inosanganisa iyo "muti wemutoro" murairo, unoratidza muti-wakafanana nekutsamira girafu. Zvakare yakawedzerwa isarudzo "-duplicates" ("cargo tree -d"), iyo inokutendera kuti uongorore zvinoenderana nemhando dzakasiyana dzepakeji imwe chete.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ammonia v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── danda v0.4.8
    │ │ │ └── cfg-kana v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── danda v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [kuvaka-zvinoenderana] │ │ │ └── shanduro_check v0.1.5
    ...

  • Kumaapplication asina kusungirirwa kune std ("#![no_std]"), tsigiro yeasynchronous programming techniques inoshandiswa zvichibva pa "async" function, the async move { ... } block uye ".await" operator, iyo kurerutsa kunyora kusingavharidzi kubata main command kuyerera.
  • Tsigiro yeinowedzerwa module hierarchy tsananguro chirongwa chakawedzerwa kune parser. Semuyenzaniso, chivakwa chinotevera hachizoburitse chikanganiso, zvisinei nekusavapo kwemodule "foo/bar/baz.rs" (chivakwa chichiri kusashanda semantiki uye chinogona kukonzeresa kukanganisa, asi shanduko inogona kuonwa nekupatsanurwa pa. iyo macro uye mamiriro ekuunganidza level):

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

  • Iyo rustc compiler yakawedzera kugona kushandisa iyo "-C codegen-units" mureza mune incremental mode. Kuitwa kwe catch_unwind kwakagadziridzwa zvakare kuti risave nekuita kana maitiro ekusunungura akadzimwa uye hapana kusarudzika kunokandwa.
  • Level 64 rutsigiro rwakapihwa kune aarch64-isingazivikanwe-hapana, aarch64-isingazivikanwe-hapana-softfloat, arm86-apple-tvos uye x64_XNUMX-apple-tvos mapuratifomu. Iyo yechitatu nhanho inosanganisira yekutanga tsigiro, asi pasina otomatiki kuyedzwa uye kuburitswa kwevakuru vanovaka.
  • Chikamu chitsva che APIs chakaendeswa kune yakagadzikana chikamu, kusanganisira yakagadzikana
    PathBuf ::ne_capacity,
    PathBuf :: kugona,
    PathBuf ::zvakajeka,
    PathBuf ::chengetera,
    PathBuf ::chengeta_chaizvo,
    PathBuf ::shrink_to_fit,
    {f32|f64}::ku_int_unchecked,
    Mamiriro:: align_to,
    Kurongeka::pedhi_ku_align,
    Mamiriro:: hurongwa uye
    Layout:: wedzera.

  • Mabasa akawedzerwa eraibhurari yakajairwa:
    • Yakawedzera yakakosha "vec![]" musiyano unoratidzwa zvakananga muVec::new(), ichibvumira "vec![]" kuti ishandiswe muchirevo panzvimbo pezvinoramba zviripo.
    • Kuitwa (impl) kwehunhu kwawedzerwa kushandura ::Infallible Hash.
    • OsString inoshandisa smart pointers DerefMut и IndexMut, achidzoka "&mut OsStr".
    • Yakawedzera rutsigiro rwe Unicode 13.
    • Inoshandiswa muString Kubva <&mut str>.
    • IoSlice inoshandisa hunhu mufananidzo.
    • Vec kushandiswa Kubva <[T; N]>.
    • proc_macro::LexError inoshandisa fmt::Ratidza uye Kanganiso.
  • The “const” attribute, iyo inosarudza kana ichigona kushandiswa mune chero mamiriro ezvinhu panzvimbo pezvinoramba zviripo, inoshandiswa mukubva_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes uye to_ne_bytes nzira dzemarudzi ose.
  • Yakawedzerwa rutsigiro rwekugadzira maraibhurari asingachinji mu ".a" fomati pane ".lib" yeGNU mapuratifomu paWindows.
  • Izvo zvishoma zvinodikanwa zveLLVM zvakasimudzwa kune LLVM vhezheni 8.

Source: opennet.ru

Voeg