Rust 1.68 Kutulutsa Chilankhulo cha Mapulogalamu

Chilankhulo chothandizira anthu ambiri Rust 1.68, 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:

  • Woyang'anira phukusi la Cargo ndi malo osungiramo crates.io akhazikitsa kuthandizira kwa protocol ya Sparse, yomwe imatanthauzira njira yatsopano yogwirira ntchito ndi index yomwe ikuwonetsa mitundu yomwe ilipo ya mapaketi onse omwe alipo. Protocol yatsopanoyi imakupatsani mwayi wowonjezera kuthamanga kwa ntchito ndi crates.io ndikuthana ndi zovuta zokulitsa ndikukula kwina kwa kuchuluka kwa phukusi.

    Kuti muchepetse kuchedwa komwe kumabwera chifukwa chotsitsa index yathunthu, Sparse m'malo mopeza cholozera pogwiritsa ntchito Git imaphatikizapo kutsitsa mwachindunji pa HTTPS zokhazo zomwe zimafunikira, zomwe zimakhudza kudalira kwa polojekiti inayake. Ntchito yatsopano, index.crates.io, imagwiritsidwa ntchito popereka zidziwitso. Mwachikhazikitso, ndondomeko yatsopanoyi ikukonzekera kugwiritsidwa ntchito munthambi ya Rust 1.70, ndipo izi zisanachitike, kuti zitheke, mukhoza kukhazikitsa kusintha kwa chilengedwe "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" kapena kuwonjezera 'protocol =' parameter ku "[registries. crates-io]" gawo la fayilo ya .cargo/config.toml 'sparse'.

  • Onjezani "pin!" macro, omwe amakulolani kuti mupange Pin<&mut T> kapangidwe kuchokera ku mawu oti "T" ndikulemba komweko komweko (mosiyana ndi Bokosi::pini, sikugawa kukumbukira mulu, koma kumangiriza pa mlingo wa stack).
  • Chothandizira cholakwika chogawa kukumbukira chaperekedwa, chomwe chimagwiritsidwa ntchito mukamagwiritsa ntchito phukusi la alloc. Mapulogalamu omwe amangothandizira alloc (popanda std) tsopano adzayitana "mantha!" chothandizira pamene kugawa kukumbukira sikulephera, komwe kungatheke kulandidwa pogwiritsa ntchito "#[panic_handler]". Mapulogalamu ogwiritsira ntchito laibulale ya std apitiliza kusindikiza zolakwika kuti stderr ndi kuwonongeka.
  • Gawo latsopano la API lasunthidwa ku gulu lokhazikika, kuphatikiza njira ndi kukhazikitsidwa kwa machitidwe akhazikika:
    • {core,std}::pin::pin!
    • impl Kuchokera za {f32,f64}
    • std::njira::MAIN_SEPARATOR_STR
    • impl DerefMut ya PathBuf
  • Chikhalidwe cha "const", chomwe chimatsimikizira kuthekera kochigwiritsa ntchito mwanjira iliyonse m'malo mokhazikika, chimagwiritsidwa ntchito mu VecDeque :: ntchito yatsopano.
  • Kuti mugwire ntchito pa nsanja ya Android, osachepera NDK r25 (API 19) ikufunika tsopano, i.e. Mtundu wocheperako wothandizidwa ndi Android wakwezedwa mpaka 4.4 (KitKat).
  • Gawo lachitatu lothandizira lakhazikitsidwa pa nsanja ya Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). Mulingo wachitatu umakhudzanso thandizo loyambira, koma popanda kuyesa kokha, kusindikiza kwa boma, kapena kuwona ngati code ingamangidwe.

Source: opennet.ru

Kuwonjezera ndemanga