Rust 1.37 Chirongwa Mutauro Kuburitswa

rakabudiswa system programming mutauro kuburitswa Ngura 1.37, yakatangwa neMozilla project. Mutauro unotarisana nekuchengetedza ndangariro, unopa otomatiki ndangariro manejimendi, uye inopa nzira yekuwana yakakwirira basa parallelism pasina kushandisa muunganidzi wemarara kana nguva yekumhanya.

Rust's otomatiki ndangariro manejimendi inosunungura mugadziri kubva pakugadzirisa pointer uye inodzivirira kubva kune yakaderera-level ndangariro manipulation, senge mushure-yemahara memory yekuwana, 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.

chikuru zvitsva:

  • Mune rustc compiler akapa tsigiro yekugadzirisa zvichibva pane kodhi profiling mhinduro (PGO, Profile-inotungamirirwa Optimization),
    kukubvumira kuti ugadzire kodhi yakanyatsonaka zvichienderana nekuongororwa kwenhamba dzakaunganidzwa panguva yekuitwa kwechirongwa. Kugadzira chimiro, mureza we "-C profil-generate" unopihwa, uye kushandisa chimiro panguva yegungano - "-C profile-use" (pakutanga, chirongwa chinounganidzwa nemureza wekutanga, chinotenderera, uye mushure mekugadzira. iyo mbiri, inosanganiswa zvakare neyechipiri mureza);

  • Paunenge uchiita iyo "cargo run" command, iyo iri nyore kushandisa kukurumidza kuyedza console application, kugona kusarudza otomatiki faira rekuita kuti rimhanye kwakawedzerwa kana paine akati wandei mafaera mupakeji. Iyo faira yekusarudzika ichaitwa inotarwa kuburikidza neiyo default-run dhairekitori mu [package] chikamu chine mapakeji paramita, izvo zvinokutendera kuti udzivise kutsanangura zvakajeka zita refaira kuburikidza ne "-bin" mureza pese paunomhanya "cargo run";
  • Murairo we "cargo mutengesi", wakambopihwa se siyana package. Murairo unokutendera kuti uronge basa nekopi yemuno yevanovimba - mushure mekuita "mutengesi wemutoro", ese macode macode ekutsamira kweprojekiti anotorwa kubva ku crates.io kune dhairekitori renzvimbo, iro rinogona kushandiswa kushanda pasina kuwana makreti. io (mushure mekuita rairo, zano rekushandura dhizaini rinoratidzwa kushandisa dhairekitori rekuvaka). Iyi ficha yakatoshandiswa kuronga kuendeswa kwerustc compiler nekurongedza kwese kutsamira mune imwe archive nekuburitswa;
  • Izvozvi zvinogoneka kugadzira zvinongedzo kune enum sarudzo uchishandisa mhando aliases (semuenzaniso, mumuviri webasa "fn increment_or_zero(x: ByteOption) unogona kudoma "ByteOption::Hapana => 0"), mhando yekuverenga inovaka (β€Ή MyTypeβ€Ή.. β€Ίβ€Ί::option => N) kana Self accesss (mumabhuroko c &self unogona kudoma β€œSelf::Quarter => 25”);
  • Yakawedzera kugona kugadzira isina kudomwa macons mu macros. Panzvimbo pekutsanangura zita rechinhu mu "const", iwe unogona ikozvino kushandisa "_" hunhu kusarudza zvine simba chiziviso chisingadzokorore, kudzivirira kupokana kwezita paunenge uchidana macro zvakare;
  • Yakawedzera kugona kushandisa "#[repr(align(N))" hunhu nemaenum uchishandisa syntax yakafanana nekutsanangura AlignNβ€ΉTβ€Ί chimiro chine kurongeka uyezve kushandisa AlignNβ€ΉMyEnumβ€Ί;
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu chakagadzikana, kusanganisira iyo BufReader::buffer, BufWriter::buffer, uye
    Sero::kubva_mut,
    Sero::se_chidimbu_chemasero,
    DoubleEndedIterator ::nth_back,
    Sarudzo::xor
    {i,u}{8,16,64,128,size}::reverse_bits, Kupeta ::reverse_bits uye
    slice::copy_mukati.

Uyezve, inogona kucherechedzwa kutanga kwekuedza chirongwa Async-std, iyo inopa asynchronous mutsauko weRust standard raibhurari (chiteshi cheiyo std raibhurari, umo maratidziro ese anopihwa mune async vhezheni uye akagadzirira kushandiswa neasync/kumirira syntax).

Source: opennet.ru

Voeg