Hoʻokuʻu ʻia ʻo Rust 1.47

paʻi ʻia hoʻokuʻu i ka 1.47 o ka ʻōlelo papahana ʻōnaehana lepo, 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 ʻohi ʻōpala и Runtime (Hoʻomaka ka manawa holo i ka hoʻomaka mua a me ka mālama ʻana i ka waihona maʻamau).

Hoʻopau ka hoʻokele hoʻomanaʻo hoʻomanaʻo a Rust i nā hewa i ka wā e hoʻopunipuni ai i nā kuhikuhi a pale i nā pilikia e puka mai ana mai ka hoʻoponopono hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ke komo ʻana i kahi ʻāpana hoʻomanaʻo ma hope o ka hoʻokuʻu ʻia ʻana, nā kuhikuhi kuhikuhi null, overruns buffer, etc. 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. Kākoʻo ʻia kahi waihona no ka mālama ʻana i nā hale waihona puke crates.io.

ka papa kuhikuhiE nā mea hou:

  • Kākoʻo i hoʻokō ʻia no nā ʻano nā pūʻulu kekahi nui. Ma mua, ma muli o ka hiki ʻole ke wehewehe i nā hana maʻamau no nā koina integer a pau, ua hāʻawi ka waihona maʻamau i ke kākoʻo ʻano i kūkulu ʻia no nā arrays a hiki i 32 mau mea i ka nui (ua wehewehe ʻia nā ʻano no kēlā me kēia nui). Mahalo i ka hana ʻana o nā generics mau ("const generics"), ua hiki ke wehewehe i nā hana maʻamau no kēlā me kēia nui array, akā ʻaʻole lākou i hoʻokomo ʻia i loko o nā hiʻohiʻona ʻōlelo paʻa, ʻoiai ua hoʻokō ʻia lākou i ka compiler. i kēia manawa pili i loko o ka waihona maʻamau no nā hiʻohiʻona hui o kēlā me kēia nui.

    No ka laʻana, e paʻi ka mea i kūkulu ʻia ma Rust 1.47 i nā ʻike o kahi array, ʻoiai ma mua ua hopena ia i kahi hewa:

    fn nui() {
    e hoʻokuʻu i ka xs = [0; 34];

    println!("{:?}", xs);
    }

  • Hāʻawi ʻia ka hoʻopuka ʻana o nā ala pōkole (backtrace), hoʻopuka i nā kūlana pilikia. ʻO nā mea hoihoi ʻole i ka hapa nui o nā kūlana, akā e hoʻopili i ka hoʻopuka a hoʻohuli i ka nānā ʻana mai nā kumu kumu o ka pilikia, ua kāpae ʻia mai ka trace. No ka hoʻihoʻi ʻana i kahi ala piha, hiki iā ʻoe ke hoʻohana i ka ʻano hoʻololi kaiapuni "RUST_BACKTRACE = piha". No ka laʻana, no ke code

    fn nui() {
    makaʻu!();
    }

    Ma mua, ua hoʻopuka ʻia ka trace i 23 mau pae, akā i kēia manawa e hoʻemi ʻia i
    3 mau ʻanuʻu e hiki ai iā ʻoe ke hopu koke i ke ʻano:

    ua hoʻoweliweli ka pae 'main' i ka 'panic explicit', src/main.rs:2:5
    hoʻopaʻa hope:
    0: std::panicking::begin_panic
    ma /rustc/d…d75a/library/std/src/panicking.rs:497
    1: kahua pāʻani::nui
    ma ./src/main.rs:2
    2: kumu::ops::hana::FnOnce::call_once
    ma /rustc/d…d75a/library/core/src/ops/function.rs:227

  • Ua hōʻano hou ʻia ka rustc compiler e kūkulu i ka hoʻohana ʻana LLVM 11 (Rust hoʻohana LLVM i hope no hana code). I ka manawa like, mālama ʻia ka hiki ke kūkulu me nā LLVM kahiko, a hiki i ka mana 8, akā ma ka paʻamau (i ka rust-lang/llvm-project) ke hoʻohana nei ʻo LLVM 11. Manaʻo ʻia e hoʻokuʻu ʻia ʻo LLVM 11 i nā lā e hiki mai ana.
  • Ma ke kahua Windows Ke kākoʻo nei ka mea hōʻuluʻulu rustc i ka hiki ʻana i nā nānā Control Flow Guard me ka hoʻohana ʻana i ka hae "-C control-flow-guard". ʻAʻole i nānā ʻia kēia hae ma nā kahua ʻē aʻe.
  • Ua hoʻoili ʻia kahi ʻāpana hou o nā API i ka ʻāpana paʻa, me ka hoʻopaʻa ʻia
    Ident::new_raw,
    Laulā::is_empty,
    RangeInclusive:: is_empty,
    Ka hopena::as_deref,
    Ka hopena::as_deref_mut,
    Vec::leak,
    kuhikuhi::offset_mai,
    f32::TAU a
    f64::TAU.
  • Hoʻohana ʻia ka ʻano "const", ka mea e hoʻoholo ai i ka hiki ke hoʻohana ʻia i kēlā me kēia pōʻaiapili ma mua o nā mea mau, hoʻohana ʻia i nā ʻano:
    • hou no nā helu helu ʻē aʻe ma mua o ka ʻole;
    • nānā_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub a me saturating_mul no nā helu helu a pau;
    • is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace and is_ascii_control no nā ʻano char a me u8.
  • No FreeBSD pili mea paahana mai FreeBSD 11.4 (ʻAʻole kākoʻo ʻo FreeBSD 10 iā LLVM 11).

Source: opennet.ru

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster