Rust 1.61 Kutulutsa Chilankhulo cha Mapulogalamu

Chilankhulo chothandizira anthu ambiri Rust 1.61, chomwe chinakhazikitsidwa ndi polojekiti ya Mozilla koma tsopano chapangidwa mothandizidwa ndi bungwe lodziyimira pawokha lopanda phindu la Rust Foundation, chatulutsidwa. Chilankhulochi chimayang'ana kwambiri pachitetezo cha kukumbukira ndipo chimapereka njira zopezera kufananiza kwakukulu kwa ntchito ndikupewa kugwiritsa ntchito chotolera zinyalala ndi nthawi yothamanga (nthawi yothamanga imachepetsedwa kuti ikhale yoyambira ndikukonza laibulale yokhazikika).

Njira zogwiritsira ntchito kukumbukira za Rust zimapulumutsa wopanga ku zolakwika pamene akuwongolera zolozera ndikuteteza ku zovuta zomwe zimadza chifukwa cha kukumbukira kwapang'onopang'ono, monga kupeza malo okumbukira atamasulidwa, kuchotsa zolozera zopanda pake, ma buffer overruns, etc. Kugawira malaibulale, kupereka zomanga ndi kusamalira zodalira, pulojekitiyi imapanga woyang'anira phukusi la Cargo. Malo osungiramo crates.io amathandizidwa kuti azisunga malaibulale.

Kutetezedwa kwa Memory kumaperekedwa mu Rust panthawi yophatikiza kudzera pakuwunika, kuyang'anira umwini wa chinthu, kuyang'anira nthawi ya moyo wa chinthu (ma scopes), ndikuwunika kulondola kwa kukumbukira kukumbukira panthawi yopanga ma code. Dzimbiri limaperekanso chitetezo ku kusefukira kwazinthu zonse, kumafuna kukhazikitsidwa kovomerezeka kwa zinthu zosinthika musanagwiritse ntchito, kuwongolera zolakwika bwino mulaibulale yokhazikika, kumagwiritsa ntchito lingaliro la maumboni osasinthika ndi zosintha mwachisawawa, kumapereka zilembo zolimba kuti muchepetse zolakwika zomveka.

Zatsopano zazikulu:

  • Ndizotheka kufotokozera zizindikiro zanu zobwerera kuchokera ku ntchito yaikulu. Poyambirira, ntchito yayikulu ya Rust imangobweretsa mtundu wa "()" (unit), womwe nthawi zonse umakhala wotuluka bwino pokhapokha ngati wopangayo atatchula momveka bwino kuti "ndondomeko::exit(code)" ntchito. Mu Rust 1.26, pogwiritsa ntchito mawonekedwe osakhazikika a Termination mu ntchito yayikulu, zinali zotheka kubweza zikhalidwe "Ok" ndi "Err", zogwirizana ndi EXIT_SUCCESS ndi EXIT_FAILURE pamapulogalamu a C. Mu Rust 1.61, khalidwe la Termination lapangidwa kukhala lokhazikika, ndipo mtundu wina wa ExitCode waperekedwa kuti uwonetsere ndondomeko yeniyeni yobwerera, yomwe imachotsa mitundu yobwerera ku pulatifomu popereka zonse zomwe zafotokozedweratu KUKHALA NDI KUSINTHA, ndi Kuchokera njira. kubweza khodi yobweza mwachisawawa . gwiritsani ntchito std:: process::ExitCode; fn main() -> ExitCode {ngati !check_foo() {bwererani ExitCode::from(8); } ExitCode:: SUCCESS }
  • Mphamvu zowonjezera za ntchito zomwe zimatanthauzidwa pogwiritsa ntchito mawu oti "const fn" zakhazikika, zomwe sizingatchulidwe ngati ntchito zokhazikika, komanso zimagwiritsidwanso ntchito muzochitika zilizonse m'malo mosinthasintha. Ntchitozi zimawerengedwa pa nthawi yosonkhanitsa, osati panthawi yothamanga, kotero zimakhala ndi zoletsedwa zina, monga kutha kuwerenga kuchokera kumagulu. Mu mtundu watsopano, magwiridwe antchito okhala ndi zolozera ntchito amaloledwa mkati mwa const ntchito (kupanga, kudutsa ndi zolozera kumaloledwa, koma osayitanira ntchito ndi cholozera); Makhalidwe a magawo amtundu wa const ntchito monga T: Copy; makhalidwe dynamically dispatchable (dyn Trait); impl Trait mitundu ya mikangano yantchito ndi ma values ​​obwerera.
  • Mtsinje umagwira Stdin, Stdout ndi Stderr mu std::io tsopano ali ndi moyo wokhazikika ("static") atatsekedwa, kulola zomanga ngati "let out = std::io::stdout().lock();" ndi kutenga chogwirira ndikuyika loko m'mawu amodzi.
  • Gawo latsopano la API lasunthidwa ku gulu lokhazikika, kuphatikiza njira ndi kukhazikitsidwa kwa machitidwe akhazikika:
    • Pin::static_mut
    • Pin::static_ref
    • Vec::sunga_mut
    • VecDeque::retain_mut
    • Lembani kwa Cursor
    • std::os::unix::net::SocketAddr::from_pathname
    • std::process::ExitCode
    • std::ndondomeko::Kuthetsa
    • std::thread::JoinHandle::is_finished
  • Lingaliro la "const", lomwe limatsimikizira kuthekera kogwiritsa ntchito mwanjira iliyonse m'malo mwa zokhazikika, limagwiritsidwa ntchito muzochita:
    • ::offset ndi ::offset
    • ::wrapping_offset ndi ::wrapping_offset
    • ::add ndi ::add
    • ::sub ndi ::sub
    • ::wrapping_add ndi ::wrapping_add
    • ::wrapping_sub ndi ::wrapping_sub
    • ::as_mut_ptr
    • ::as_ptr_range
    • ::as_mut_ptr_range

Kuphatikiza apo, mutha kuzindikira nkhani yakuti "Rust: A Critical Retrospective" yokhala ndi chidule cha zowonera za chilankhulo cha dzimbiri mutatha kulemba mizere 100 yama code mkati mwake panthawi yopanga Xous microkernel yogwiritsidwa ntchito mu firmware. Zoyipa zimaphatikizapo mawu osavuta kumva, kusakwanira komanso kupitilira kukula kwa chilankhulo, kusowa kwa zomanga zobwerezabwereza, zovuta zapanthawi yodalira Crates.io, komanso kufunikira kosunga mwambo wina kuti alembe khodi yotetezeka. Zomwe zidapitilira zomwe zikuyembekezeka zimaphatikizapo zida zosinthira ma code ndikukonzanso "ma hacks" omwe amawonjezedwa pakujambula mwachangu.

Source: opennet.ru

Kuwonjezera ndemanga