Hoʻokuʻu ʻia ʻo Rust 1.36

paʻi ʻia hoʻokuʻu ʻōlelo hoʻolālā ʻōnaehana Popo 1.36, i hoʻokumu ʻia e ka papahana Mozilla. Hoʻopili ka ʻōlelo i ka palekana hoʻomanaʻo, hāʻawi i ka hoʻokele hoʻomanaʻo ʻakomi, a hāʻawi i kahi ala e hoʻokō ai i ka parallelism hana kiʻekiʻe me ka hoʻohana ʻole ʻana i ka ʻōpala a i ʻole ka wā holo.

Hoʻokuʻu ka hoʻokele hoʻomanaʻo ʻakomi a Rust i ka mea hoʻomohala mai ka hoʻopololei ʻana i ka pointer a pale aku i nā pilikia e kū mai ana mai ka hoʻohana ʻana i ka hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ka loaʻa ʻana o ka hoʻomanaʻo ʻana ma hope o ka manuahi, ka hoʻihoʻi ʻole ʻana o ka pointer, ka hoʻonui ʻana i ka buffer, a me nā mea like. Ke kūkulu ʻia nei kahi luna pūʻolo e puʻunaue i nā hale waihona puke, e hōʻoia i ka hui ʻana a me ka mālama ʻana i nā hilinaʻi e ka papahana. waiwai, hiki iā ʻoe ke kiʻi i nā hale waihona puke e pono ai no ka papahana i hoʻokahi kaomi. Kākoʻo ʻia kahi waihona no ka mālama ʻana i nā hale waihona puke crates.io.

ka papa kuhikuhiE nā mea hou:

  • Paʻa ke ʻano wā e hiki mai, e hōʻike ana i kahi waiwai i hiki ʻole ke hoʻopau ʻia ka loiloi i ka wā e hoʻohana ana i nā poloka async / .await. ʻO nā waiwai Asynchronous i wehewehe ʻia me ka hoʻohana ʻana i ka Future e hiki ai ke hoʻomau i ka hoʻokō ʻana i nā hana pono i ke kaula, ʻoiai e kali ana i ka pau ʻana o ka helu ʻana o kekahi waiwai;
  • Paʻa ka waihona alloc, e hāʻawi ana i nā kuhikuhi akamai a me nā hōʻiliʻili no ka mālama ʻana i nā waiwai i hāʻawi ʻia i ka hoʻomanaʻo. Hoʻohana ka hoʻokaʻawale hoʻomanaʻo ma std i kēia ʻano He mea, i lawe hou ʻia mai alloc. Maikaʻi ka hoʻohana kaʻawale ʻana o alloc i nā noi i pili ʻole i ka std ("#![no_std]"), a me nā hale waihona puke i hoʻolālā ʻia no ka hoʻohana ʻana i nā papahana like ʻole me ka std;
  • E kāʻalo i nā nānā no ka hoʻomaka pololei ʻana o nā waiwai noiʻi ʻia ʻano waena MaliaUnit, hiki ke hoʻohana ʻia ma kahi o ka mem:: uninitialized hana ma ke ʻano he palekana palekana. ʻO ka mem:: uninitialized hana maʻalahi no ka hana wikiwiki ʻana i nā arrays, akā alakaʻi hewa ia i ka mea hoʻopili no ka mea ua ʻike ʻia ua hoʻomaka ʻia, akā i ka ʻoiaʻiʻo, ʻaʻole i hoʻomaka ka waiwai. ʻAe ʻo MaybeUninit iā ʻoe e hōʻike pololei i ka mea hoʻopili ʻaʻole i hoʻomaka ʻia ka waiwai, e noʻonoʻo i ka ʻano hiki ʻole i wehewehe ʻia e pili ana i kēia, a e hoʻonohonoho pū i nā loiloi i nā papahana ma o "maybe_t:" a me ka hoʻomaka ʻana i kēlā me kēia ʻanuʻu, e hōʻailona ana i kona pau ʻana. me ka hoʻohana ʻana i ke kelepona ".assume_init()". Me ka hiki ʻana mai o MaybeUninit, ua hoʻopau ʻia ka hana mem :: uninitialized a ʻaʻole ʻōlelo ʻia no ka hoʻohana ʻana;
  • Ua hoʻopaʻa ʻia ka ʻenehana NLL (Non-Lexical Lifetimes), i hoʻonui i ka ʻōnaehana no ka hoʻopaʻa ʻana i ke ola o nā mea hoʻololi ʻaiʻē, no ka ʻōlelo Rust 2015 (i ka mua, kākoʻo ʻia ʻo NLL e Rust 2018 wale nō). Ma kahi o ka hana ʻana i nā ola ma ka pae lexical, hana ʻo NLL ma ke kiʻekiʻe o ka hoʻonohonoho o nā kuhikuhi i ka pakuhi kahe hoʻokō. ʻO kēia ala e hiki ai iā ʻoe ke hoʻonui i ka maikaʻi o ka nānā ʻana i ka hōʻaiʻē ʻana o nā mea hoʻololi (borrow checker) a ʻae i ka hoʻokō ʻana i kekahi mau ʻano o ke code pololei, ka hoʻohana ʻana i alakaʻi ʻia i kahi hewa. ʻOi aku ka maʻalahi o ka hoʻopiʻi ʻana i ka hana hou;
  • Hoʻokomo ʻia ka hoʻokō hou o nā hui hui HashMap, ma muli o ka hoʻohana ʻana o ka hale Pākaukau Swiss (hoʻouka ʻakomi hashbrown::HashMap, ke ʻole ka ʻōlelo ʻokoʻa ʻē aʻe, e like me std::HashMap, i hoʻokumu ʻia ma SipHash 1-3). Hoʻomau like ka polokalamu polokalamu, a ʻo nā ʻokoʻa i ʻike ʻia e ka mea hoʻomohala e hoʻonui i ka hana a hoʻemi i ka hoʻomanaʻo hoʻomanaʻo;
  • I ka ukana luna hoʻokele hoʻohui ʻia ke koho "--offline", e hiki ai ke hana me ke komo ʻole ʻana i ka pūnaewele, kahi i hoʻohana ʻia ai nā pūʻolo i hūnā ʻia i loko o ka ʻōnaehana kūloko i ka wā e hoʻokomo ai i nā hilinaʻi. Inā ʻaʻole ka hilinaʻi i loko o ka cache kūloko, e kiola ʻia kahi hewa. No ka hoʻouka mua ʻana i nā hilinaʻi i loko o ka cache kūloko ma mua o ka hele ʻana i waho, hiki iā ʻoe ke hoʻohana i ke kauoha "cargo fetch";
  • Hoʻokō i ka hiki ke kāhea i ka macro "dbg!" e hōʻike ana i kekahi mau manaʻo;
  • Hoʻohana ʻia ka ʻano "const", ka mea e hoʻoholo ai i ka hiki ke hoʻohana ʻia i loko o kekahi pōʻaiapili ma kahi o nā mea mau, hoʻohana ʻia no nā ʻano.
    Layout::from_size_align_unchecked,
    mem:: pono_drop,
    NonNull::huli a
    NonNull::cast;

  • Ua hoʻoili ʻia kahi ʻāpana hou o nā API i ka ʻāpana paʻa, me nā ʻano hana i hoʻopaʻa ʻia
    hana::Waker, hana::Poll,
    VecDeque::huli_hema, VecDeque::wili_akau,
    Heluhelu::heluhelu_vectored, Kākau::write_vectored,
    Mea hana hou:: kope ʻia,
    BorrowMut (no nā kaula) a me str::as_mut_ptr.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka