hoʻokuʻu i ka 1.47 o ka ʻōlelo papahana ʻōnaehana , 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 и (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. . Kākoʻo ʻia kahi waihona no ka mālama ʻana i nā hale waihona puke .
ka papa kuhikuhiE :
- Kākoʻo i hoʻokō ʻia no nā ʻano 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 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 (Rust LLVM i hope no ). 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 ) 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 mea paahana mai FreeBSD 11.4 (ʻAʻole kākoʻo ʻo FreeBSD 10 iā LLVM 11).
Source: opennet.ru
