ВСрсия Π½Π° Rust 1.79. БъздадСн Π΅ консорциум Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° високо Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ систСми Π½Π° Rust

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· языка программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния Rust 1.79, основанного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Mozilla, Π½ΠΎ Π½Ρ‹Π½Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡ€ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ нСзависимой нСкоммСрчСской ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Rust Foundation. Π―Π·Ρ‹ΠΊ сфокусирован Π½Π° бСзопасной Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ прСдоставляСт срСдства для достиТСния высокого ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° выполнСния Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΈ этом ΠΎΠ±Ρ…ΠΎΠ΄ΡΡΡŒ Π±Π΅Π· использования сборщика мусора ΠΈ runtime (runtime сводится ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ).

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust освобоТдават Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π°Π²Π°Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‰ΠΈ ΠΎΡ‚ нискоуровнСвата Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ освободСна ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π΄Ρ€. Π—Π° разпространСниС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, осигуряванС Π½Π° компилация ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° зависимости, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π° пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Cargo. Π—Π° хостванС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ прСдоставСн Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ crates.io.

БСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust сС осигурява ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилация Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ, прослСдяванС Π½Π° собствСността Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅, ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ (области Π½Π° видимост) ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° правилността Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ†Π΅Π»ΠΈ числа, изисква Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° инициализация Π½Π° стойноститС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ, подобрява ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΏΡ€ΠΈΠ»Π°Π³Π° концСпцията Π·Π° нСизмСняСмост (immutable) Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° силна статична типизация, Π·Π° Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ логичСскитС Π³Ρ€Π΅ΡˆΠΊΠΈ.

Основни нововъвСдСния:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° inline-констант, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ прямо Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Β«const { … }Β», ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² контСкстС констант ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния констант. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² Π±Π»ΠΎΠΊΠ΅ Β«const { … }Β» ΠΊΠΎΠ΄ вычисляСтся Π½Π° этапС компиляции ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ константа, Π±Π΅Π· выполнСния Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ опрСдСлСния констант Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«const ITEM: … = …» Π² Π±Π»ΠΎΠΊΠ°Ρ… Β«const { … }Β» ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½ΠΈΡ… поддСрТиваСтся автоматичСский Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ². НапримСр, ΠΊΠΎΠ΄ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ константы

    const EMPTY: Option<Vec<u8>> = None;
    let foo = [EMPTY; 100];

    ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° использованиС ΠΏΠΎ мСсту:

    let foo = [const { None }; 100];

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ синтаксис Β«T: Trait<Assoc: Bounds…>Β» для задания ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ассоциативного Ρ‚ΠΈΠΏΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ограничСниями Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ указания Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ impl Trait ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… условий Β«whereΒ».
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ автоматичСскоС ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² конструкциях Β«matchΒ» ΠΈ Β«ifΒ».

    let a = if true {
    ..;
    &temp() // врСмя ΠΆΠΈΠ·Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΎ
    } else {
    ..;
    &temp() // врСмя ΠΆΠΈΠ·Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΎ
    };

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ crate-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².
  • ΠŸΡ€ΠΈ сборкС стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² компиляторС задСйствован Ρ„Π»Π°Π³ Β«-Cforce-frame-pointers=yesΒ», Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ для рСконструкции стСка Π²ΠΎ врСмя профилирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
  • Π’ катСгорията стабилни Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π° порция API, ΠΊΠ°Ρ‚ΠΎ са стабилизирани ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°ΠΆΠΈΡ‚Π΅:
    • {integer}::unchecked_add
    • {integer}::unchecked_mul
    • {integer}::unchecked_sub
    • <[T]>::split_at_unchecked
    • <[T]>::split_at_mut_unchecked
    • <[u8]>::utf8_chunks
    • str::Utf8Chunks
    • str::Utf8Chunk
    • <*const T>::is_aligned
    • <*mut T>::is_aligned
    • NonNull::is_aligned
    • <*const [T]>::len
    • <*mut [T]>::len
    • <*const [T]>::is_empty
    • <*mut [T]>::is_empty
    • NonNull::<[T]>::is_empty
    • CStr::count_bytes
    • io::Error::downcast
    • num::NonZero<T>
    • path::absolute
    • proc_macro::Literal::byte_character
    • proc_macro::Literal::c_string
  • ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Β«constΒ», опрСдСлящ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ контСкст вмСсто константи, Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ във Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅:
    • Atomic*::into_inner
    • io::Cursor::new
    • io::Cursor::get_ref
    • io::Cursor::position
    • io::empty
    • io::repeat
    • io::sink
    • panic::Location::caller
    • panic::Location::file
    • panic::Location::line
    • panic::Location::column
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°
    Ρ‡Π°ΡΡ‚ΡŒ возмоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ компиляции Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС Webassembly (WASM).
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ aarch64-apple-visionos, aarch64-apple-visionos-sim ΠΈ riscv32ima-unknown-none-elf. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π½ΠΎ Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования, ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сборок ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ возмоТности сборки ΠΊΠΎΠ΄Π°.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ aarch64-pc-windows-gnullvm, i686-pc-windows-gnullvm ΠΈ x86_64-pc-windows-gnullvm. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ сборки.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, организация Rust Foundation, которая ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с языком Rust экосистСму, объявила ΠΎ создании консорциума Β«Safety-Critical Rust ConsortiumΒ», Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° использовании языка Rust Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ…, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ надёТности (Safety-Critical Software), сбой Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ³Ρ€ΠΎΠΆΠ°Ρ‚ΡŒ ΠΆΠΈΠ·Π½ΠΈ людСй, нанСсти Π²Ρ€Π΅Π΄ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСдС ΠΈΠ»ΠΈ привСсти ΠΊ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ поврСТдСниям оборудования. К консорциуму ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ARM, AdaCore, Ferrous Systems, OxidOS, Synopsys, HighTec EDV-Systeme GmbH, TrustInSoft, Veecle ΠΈ Woven by Toyota. Π‘Ρ€Π΅Π΄ΠΈ Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ консорциум упоминаСтся написаниС руководств ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ² ΠΈ статичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ надёТности ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° подмноТСств языка для высоконадёТных систСм.

Из ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², связанных с высоконадёТными систСмами, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Verus β€” инструмСнтарий для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности ΠΊΠΎΠ΄Π°, написанного Π½Π° языкС Rust. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° осущСствляСтся ΠΏΡƒΡ‚Ρ‘ΠΌ опрСдСлСния спСцификации, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ допустимоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π’ΠΎ врСмя выполнСния исполняСмого ΠΊΠΎΠ΄Π° Verus провСряСт соотвСтствиС спСцификации для подтвСрТдСния коррСктности Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster