Ulwimi lwenkqubo lweRust 1.96, olwasekwa yiprojekthi yeMozilla kodwa ngoku luphuhliswe phantsi kwenkxaso ye-Rust Foundation ezimeleyo engenzi nzuzo, lukhutshiwe. Ulwimi lujolise ekukhuselweni kwememori kwaye lubonelela ngezixhobo zokuphumeza ukuhambelana okuphezulu kokwenziwa komsebenzi, ngelixa usenza ngaphandle kokusetyenziswa komqokeleli wenkunkuma kunye nexesha lokuqhuba (ixesha lokuqhuba liyancitshiswa ekuqaliseni okusisiseko kunye nokugcinwa kwelayibrari esemgangathweni).
Iindlela zolawulo lwememori zeRust zenzelwe ukususa iimpazamo ekulawuleni i-pointer kunye nokukhusela kwimiba evela kulawulo lwememori olusezantsi, njengokufikelela kwimemori emva kokuba ikhululwe, ukususa ii-null pointers, ukugqithisa kwe-buffer, njl. Le projekthi iphuhlisa umphathi wephakheji yeCargo ukuze asasaze iilayibrari, enze lula ukwakhiwa, kwaye alawule ukuxhomekeka. Indawo yokugcina ii-crates.io igcinelwe iilayibrari ezibamba ii-hosting.
Ukhuseleko lwenkumbulo lubonelelwa kwiRust ngexesha lokudibanisa ngokujongwa kwereferensi, ukugcina umkhondo wobunini bento, ukugcina umkhondo wobomi bento (i-scopes), kunye nokuvavanya ukuchaneka kokufikelela kwimemori ngexesha lokwenziwa kwekhowudi. Umhlwa ukwabonelela ngokhuseleko ngokuchasene nokuphuphuma kwenani elipheleleyo, kufuna ukuqaliswa okunyanzelekileyo kwamaxabiso aguquguqukayo ngaphambi kokusetyenziswa, iphatha iimpazamo ngcono kwithala leencwadi elisemgangathweni, isebenzisa ingqikelelo yeembekiselo ezingenakuguquguquka kunye nezinto eziguquguqukayo ngokungagqibekanga, ibonelela ngochwethezo olomeleleyo ukuze kuncitshiswe iimpazamo ezinengqiqo.
Iinguqulelo eziphambili:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ range Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½ΠΎΠ²ΡΡ
ΡΠΈΠΏΠΎΠ², ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΡ
Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΠΈΠΏΠΎΠ² Range, RangeInclusive, RangeToInclusive ΠΈ RangeFrom, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
Ρ
ΡΠ°Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π² Copy-ΡΡΡΡΠΊΡΡΡΠ°Ρ
. Π’ΠΈΠΏ Range ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (Π½ΠΎ Π½Π΅ Π²Ρ
ΠΎΠ΄ΡΡΠΈΠΌ Π² Π½Π΅Π³ΠΎ), ΡΠΈΠΏ RangeFrom ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΠ»Π° Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΡΠΈΠΏ RangeInclusive β Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ ΠΎΠ±Π΅ΠΈΠΌΠΈ Π΅Π³ΠΎ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ. Π Π±ΡΠ΄ΡΡΠΈΡ
Π²ΡΠΏΡΡΠΊΠ°Ρ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠΈΠΏΡ RangeFull ΠΈ RangeTo, ΡΡΠ°ΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π° Π² core::range::legacy::*, Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Β«N..MΒ» ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΈΠΏΠΎΠ².
ΠΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΏΠ°ΠΆΠ° Iterator ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠΈΠΏΠ°ΠΆ IntoIterator, Ρ.Π΅. Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΈΠΏ Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠΈΠΏΠ°ΠΆ Copy, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π½Π΅Π΅ Π±ΡΠ»Π° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΈΠ·-Π·Π° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΡΡΠ΅Π·Π° Π² ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:use core::range::Range;
#[derive(Clone, Copy)]
pub struct Span(Range<usize>);impl Span {
pub fn of(self, s: &str) -> &str {
&s[self.0]
}
} - ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ Β«assert_matches!Β» ΠΈ Β«debug_assert_matches!Β», ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ°ΡΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ. ΠΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Β«assert!(matches!(..))Β» ΠΈ Β«debug_assert!(matches!(..))Β» Π½ΠΎΠ²ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π²ΡΠ·Π²Π°Π²ΡΠΈΠΌΠΈ ΡΠ±ΠΎΠΉ. ΠΠ»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π½ΠΎΠ²ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΡΠ΅Π±ΡΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Β«core::assert_matchesΒ».
use core::assert_matches;
fn get_random_number() -> u32 {
4
}fn eyona () {
assert_matches!(get_random_number(), 1..=6);
} - ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ WebAssembly ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΡ ΠΎΠΏΡΠΈΠΈ Β«βallow-undefinedΒ», ΡΠ°Π·ΡΠ΅ΡΠ°Π²ΡΠ΅ΠΉ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π»ΠΈΡΡ Π² ΠΈΠΌΠΏΠΎΡΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ Β«envΒ». ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π΄Π»Ρ WebAssembly Π²ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ. ΠΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Β«RUSTFLAGS=-Clink-arg=βallow-undefinedΒ» ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ β#[link(wasm_import_module = Β«envΒ»)]Β» Π² ΠΊΠΎΠ΄Π΅.
- Inxalenye entsha ye-API iye yasiwa kudidi oluzinzileyo, kubandakanywa iindlela kunye nokuphunyezwa kweempawu ziye zazinziswa:
- assert_matches!
- debug_assert_matches!
- From<T> for AssertUnwindSafe<T>
- From<T> for LazyCell<T, F>
- From<T> for LazyLock<T, F>
- core::range::RangeToInclusive
- core::range::RangeToInclusiveIter
- core::range::RangeFrom
- core::range::RangeFromIter
- core::range::Range
- core::range::RangeIter
- Π ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ΅ Cargo ΡΡΡΡΠ°Π½Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ CVE-2026-5223, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ crate-ΠΏΠ°ΠΊΠ΅ΡΠ° Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ crate-Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ crates.io, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² crates.io Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ (PDF) ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° Rust Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ.
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ STMicroelectronics ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ
ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΎΠ². ΠΠ²ΡΠΌ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΏΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32U585AI Ρ ΡΠ΄ΡΠΎΠΌ Arm Cortex-M33. ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°Π»Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΡ Π½Π° Π‘ΠΈ, Π° Π²ΡΠΎΡΠ°Ρ Π½Π° Rust.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π΅ Π²ΡΡΠ²ΠΈΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ·ΡΠΊΠ° Π‘ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Rust ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° Rust ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ runtime ΠΎΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ariel OS ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π° Rust Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΡΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ newlib.
Π Π°Π·ΠΌΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ» 84100 Π±Π°ΠΉΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π° Rust ΠΈ 76744 Π±Π°ΠΉΡΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π° Π‘ΠΈ (Π½Π° 10% ΠΌΠ΅Π½ΡΡΠ΅), Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ Π½Π° Rust ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΈΠΆΠ΅ β 24640 Π±Π°ΠΉΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ² 42608 Π±Π°ΠΉΡΠΎΠ². Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΎ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π·Π° 6 Π½Π΅Π΄Π΅Π»Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Rust Π² Π΄Π²Π° ΡΠ°Π·Π° ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π»Π°, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π‘ΠΈ, Π½ΠΎ ΠΎΠ±Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΡΠ°Π²Π°Π»ΠΈ ΠΎΡ ΡΠ°ΡΡΡΡΠ½ΠΎΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡΠ»Π΅ 4 Π½Π΅Π΄Π΅Π»Ρ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΎΠ±Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ ΡΠ°ΡΡΡΡΠ½ΠΎΠΌΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ.

umthombo: opennet.ru
