Rust 1.44 Kutulutsa Chilankhulo cha Mapulogalamu

Lofalitsidwa kutulutsidwa kwa chilankhulo cha pulogalamu yadongosolo Dzimbiri 1.44, yokhazikitsidwa ndi polojekiti ya Mozilla. Chilankhulochi chimayang'ana kwambiri pachitetezo cha kukumbukira, chimapereka kasamalidwe ka kukumbukira, ndipo chimapereka zida zogwirira ntchito limodzi popanda kugwiritsa ntchito chotolera zinyalala komanso nthawi yothamanga.

Kuwongolera kukumbukira kwa Rust kumachotsa zolakwika pakuwongolera zolozera ndikutchinjiriza ku zovuta zomwe zimadza chifukwa chakuwongolera kukumbukira pang'ono, monga kulowa mdera la kukumbukira zitamasulidwa, kuchotsedwa kwa null pointer, buffer overruns, ndi zina zambiri. Woyang'anira phukusi akupangidwa kuti azigawira malaibulale, kuwonetsetsa kusonkhanitsa ndi kuyang'anira zodalira ndi polojekiti. katundu, kukulolani kuti mupeze malaibulale ofunikira pa pulogalamuyo ndikudina kamodzi. Malo osungiramo mabuku amathandizidwa kuti azisunga malaibulale makate.io.

M'mawu a chilengezo cha kumasulidwa kwatsopano, opanga dzimbiri adalowa nawo ndale ndipo anakana mwachindunji kufalitsa ndemanga yonse ya kusintha kwa Rust 1.44 monga chizindikiro cha mgwirizano ndi otsutsa chiwawa cha apolisi, kusonyeza kuti nkhaniyi ndi yofunika kwambiri. kuposa kusinthanitsa chidziwitso chaukadaulo. Basic zatsopano:

  • Woyang'anira phukusi la Cargo amaphatikiza lamulo la "cargo tree", lomwe limawonetsa graph yodalira mtengo. Chowonjezeranso ndi kusankha "-duplicates" ("cargo tree -d"), zomwe zimakupatsani mwayi wowunika zomwe zimadalira pamitundu yosiyanasiyana ya phukusi lomwelo.

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

  • Kwa mapulogalamu omwe sali omangidwa ku std ("#![no_std]"), kuthandizira kwa njira zosasinthika zamapulogalamu zimakhazikitsidwa kutengera ntchito ya "async", async move { ... } block ndi ".await" woyendetsa, yemwe chepetsani zolembera zosatsekereza main command flow.
  • Thandizo la chiwembu chowonjezera chaulamuliro wa ma module awonjezedwa kwa ophatikiza. Mwachitsanzo, kupanga kotsatiraku sikungabweretse cholakwika, ngakhale kulibe gawo la "foo/bar/baz.rs" (zomangazo zikadali zosavomerezeka mwamawu ndipo zitha kubweretsa cholakwika, koma zosintha zitha kuwoneka ndikugawa pa. macro and conditional compilation level):

    #[cfg(ZABODZA)] mod foo {
    mod bar {
    mod basi;
    }
    }

  • Wopanga rustc wawonjezera kuthekera kogwiritsa ntchito mbendera ya "-C codegen-units" mumayendedwe owonjezera. Kukhazikitsa kwa catch_unwind kwakonzedwanso kuti kusakhale ndi vuto ngati njira yotsitsimula yayimitsidwa ndipo palibe kuchotserapo.
  • Thandizo la Level 64 laperekedwa kwa aarch64-osadziwika-palibe, aarch64-osadziwika-none-softfloat, arm86-apple-tvos ndi x64_XNUMX-apple-tvos nsanja. Mulingo wachitatu umakhudzanso chithandizo choyambirira, koma popanda kuyezetsa ndi kufalitsa zomanga zovomerezeka.
  • Gawo latsopano la APIs lasamutsidwa ku gulu lokhazikika, kuphatikizapo kukhazikika
    PathBuf ::ndi_capacity,
    PathBuf ::capacity,
    PathBuf :: clear,
    PathBuf ::sungitsa,
    PathBuf :: reserve_exact,
    PathBuf ::fina_kuti_kukwanira,
    {f32|f64}::ku_int_chosasankhidwa,
    Kamangidwe::align_to,
    Kamangidwe::pad_to_align,
    Kamangidwe ::magulu ndi
    Kamangidwe ::wonjezera.

  • Ntchito zowonjezera za library yokhazikika:
    • Onjezani chosiyana chapadera cha "vec![]" chomwe chimawonetsedwa mwachindunji mu Vec::new(), kulola kuti "vec![]" igwiritsidwe ntchito m'malo mosintha.
    • Kukhazikitsa (impl) kwa mawonekedwe awonjezedwa kuti atembenuke ::Infallible Hash.
    • OsString imagwiritsa ntchito zolozera zanzeru DerefMut и IndexMut, kubwerera "&mut OsStr".
    • Thandizo lowonjezera la Unicode 13.
    • Kukhazikitsidwa mu String Kuchokera ku .
    • IoSlice imagwiritsa ntchito izi Koperani.
    • Vec zida Kuchokera .
    • proc_macro::LexError imagwiritsa ntchito fmt::Display and Error.
  • Lingaliro la "const", lomwe limatsimikizira ngati lingagwiritsidwe ntchito pamtundu uliwonse m'malo mwa zokhazikika, limagwiritsidwa ntchito muzochokera_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ndi to_ne_bytes njira zamitundu yonse.
  • Thandizo lowonjezera popanga malaibulale osasunthika mumtundu wa ".a" m'malo mwa ".lib" pamapulatifomu a GNU pa Windows.
  • Zofunikira zochepa za LLVM zakwezedwa kukhala LLVM mtundu 8.

Source: opennet.ru

Kuwonjezera ndemanga