Руст 1.58 ИзданиС Π·Π° програмски јазик

ОбјавСно Π΅ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° програмскиот јазик Π·Π° ΠΎΠΏΡˆΡ‚Π° Π½Π°ΠΌΠ΅Π½Π° Rust 1.58, основан ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Mozilla, Π½ΠΎ сСга Ρ€Π°Π·Π²ΠΈΠ΅Π½ ΠΏΠΎΠ΄ покровитСлство Π½Π° нСзависната Π½Π΅ΠΏΡ€ΠΎΡ„ΠΈΡ‚Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Rust Foundation. ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ сС фокусира Π½Π° бСзбСдноста Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° автоматско ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° срСдства Π·Π° ΠΏΠΎΡΡ‚ΠΈΠ³Π½ΡƒΠ²Π°ΡšΠ΅ висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·Π°ΠΌ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π±Π΅Π· ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° собирач Π½Π° Ρ“ΡƒΠ±Ρ€Π΅ ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° (Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€Π°Π΅ΡšΠ΅ Π΅ свСдСно Π½Π° основна ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΈ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°).

Автоматското ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° Rust Π³ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°ΡšΠ΅ со ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ ΠΈ Π·Π°ΡˆΡ‚ΠΈΡ‚ΡƒΠ²Π° ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΡˆΡ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π»Π΅Π³ΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π° со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС пристап Π΄ΠΎ мСмориски Ρ€Π΅Π³ΠΈΠΎΠ½ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС ослободи, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π½Π° Π½ΡƒΠ»Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡, ΠΏΡ€Π΅Ρ‡Π΅ΠΊΠΎΡ€ΡƒΠ²Π°ΡšΠ° Π½Π° Π±Π°Ρ„Π΅Ρ€ΠΎΡ‚ ΠΈΡ‚Π½. Π—Π° Π΄Π° сС дистрибуираат Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ ΠΈ Π΄Π° сС ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π° со зависности, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ΠΎΡ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Cargo. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ crates.io Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ Π·Π° Ρ…ΠΎΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • Π’ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡ‚Π΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠΎΠΊΡ€Π°Ρ˜ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ достапната моТност Π·Π° Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Сксплицитно Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ ΠΏΠΎ линија ΠΏΠΎ Π±Ρ€ΠΎΡ˜ ΠΈ ΠΈΠΌΠ΅, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π΅ моТноста Π·Π° Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ со додавањС Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΎΡ‚ β€ž{identifier}β€œ Π²ΠΎ Π»ΠΈΠ½ΠΈΡ˜Π°Ρ‚Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€: // ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ конструкции: println!("Π—Π΄Ρ€Π°Π²ΠΎ, {}!", get_person()); println!("Π—Π΄Ρ€Π°Π²ΠΎ, {0}!", get_person()); println!("Π—Π΄Ρ€Π°Π²ΠΎ, {Π»ΠΈΡ†Π΅}!", Π»ΠΈΡ†Π΅ = get_person()); // сСга ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ let person = get_person(); println! ("Π—Π΄Ρ€Π°Π²ΠΎ, {Π»ΠΈΡ†Π΅}!");

    Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Π²Π΅Π΄Π°Ρ‚ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΠΎ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°ΡšΠ΅. Π½Π΅ΠΊΠ° (ΡˆΠΈΡ€ΠΈΠ½Π°, прСцизност) = get_format(); Π·Π° (ΠΈΠΌΠ΅, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚) Π²ΠΎ get_scores() { println!("{ΠΈΠΌΠ΅}: {score:width$.precision$}"); }

    Новата Π·Π°ΠΌΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ ситС ΠΌΠ°ΠΊΡ€ΠΎΠ° ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π° Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π½ΠΈΠ·Π°, со исклучок Π½Π° ΠΌΠ°ΠΊΡ€ΠΎΡ‚ΠΎ β€žΠΏΠ°Π½ΠΈΠΊΠ°!β€œ. Π²ΠΎ Π²Π΅Ρ€Π·ΠΈΠΈΡ‚Π΅ Π½Π° Rust ΠΎΠ΄ 2015 ΠΈ 2018 Π³ΠΎΠ΄ΠΈΠ½Π°, Π²ΠΎ кој ΠΏΠ°Π½ΠΈΠΊΠ°Ρ‚Π°!(β€ž{ident}β€œ) сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π° ΠΊΠ°ΠΊΠΎ ΠΎΠ±ΠΈΡ‡Π½Π° Π½ΠΈΠ·Π° (Π²ΠΎ Rust 2021, Π·Π°ΠΌΠ΅Π½Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°).

  • ΠžΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° структурата Π½Π° std::process::Command Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΎ Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΎΠ΄ бСзбСдносни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ, повСќС Π½Π΅ Π±Π°Ρ€Π° ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΎ Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ. Π’Π΅ΠΊΠΎΠ²Π½ΠΈΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π΅ исклучСн бидСјќи ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΊΠΎΠ΄ Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ Π½Π΅Π΄ΠΎΠ²Π΅Ρ€Π»ΠΈΠ²ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ (CVE-2021-3013). Новата Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈΡ‚Π΅ Rust, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, систСмскиот Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π½Π° Windows ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈΡ‚Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° PATH.
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π³ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈ со β€ž#[must_use]β€œ Π·Π° Π΄Π° ΠΈΠ·Π΄Π°Π΄Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½Π°Ρ‚Π° врСдност сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°, ΡˆΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ со прСтпоставката Π΄Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° ќС Π³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ врСдноститС намСсто Π΄Π° Π²Ρ€Π°ΡœΠ° Π½ΠΎΠ²Π° врСдност.
  • Нов Π΄Π΅Π» ΠΎΠ΄ API Π΅ прСмСстСн Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° стабилни, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° карактСристикитС сС стабилизирани:
    • ΠœΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ::is_symlink
    • ΠŸΠ°Ρ‚Π΅ΠΊΠ°::is_symlink
    • {integer}::saturating_div
    • ΠžΠΏΡ†ΠΈΡ˜Π°::unwrap_unchecked
    • Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚::unwrap_unchecked
    • Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚::unwrap_err_unchecked
  • Атрибутот β€žconstβ€œ, кој ја ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° моТноста Π΄Π° сС користи Π²ΠΎ кој Π±ΠΈΠ»ΠΎ контСкст намСсто константи, сС користи Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::Π½ΠΎΠ²
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ_Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::saturating_add
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ_ΠΏΠΎΠ΄
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::заситСна_ΠΏΠΎΠ΄
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ_ΠΌΡƒΠ»
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::saturating_mul
    • Π’Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅::ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ_Π΄ΠΈΠ²
  • Π”ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ β€ž*const Tβ€œ Π²ΠΎ β€žconstβ€œ контСксти.
  • Π’ΠΎ ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ΠΎΡ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Cargo, ΠΏΠΎΠ»Π΅Ρ‚ΠΎ rust_version Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π½Π° ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚, Π° ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž--ΠΏΠΎΡ€Π°ΠΊΠ°-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚β€œ Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žcargo installβ€œ.
  • ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π·Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π° Π½Π° CFI (Control Flow Integrity), кој Π΄ΠΎΠ΄Π°Π²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π΅Π΄ сСкој ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΏΠΎΠ²ΠΈΠΊ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠΈ Ρ„ΠΎΡ€ΠΌΠΈ Π½Π° Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΎ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π°Ρ€ΡƒΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈΠΎΡ‚ Π½Π°Π»ΠΎΠ³ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Ρ‚Π΅ΠΊ) ΠΊΠ°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΊΠΎΠΈ Π³ΠΈ ΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½ΠΈ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅.
  • ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π²Π΅Ρ€Π·ΠΈΠΈ 5 ΠΈ 6 ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ Π·Π° спорСдба Π½Π° покриСност LLVM, ΡˆΡ‚ΠΎ сС користи Π·Π° ΠΎΡ†Π΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° покриСноста Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ.
  • Π’ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚, Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° LLVM сС ΠΏΠΎΠ΄ΠΈΠ³Π½Π°Ρ‚ΠΈ Π½Π° LLVM 12.
  • Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° x86_64-unknown-none Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ. Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° основна ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°, Π½ΠΎ Π±Π΅Π· автоматско Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈ изданија ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ ΠΎΠ΄ ΠœΠ°Ρ˜ΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Π·Π° ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Rust Π·Π° Windows 0.30, ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° Π³ΠΎ користитС Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Rust Π·Π° Π΄Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΠΎΡ‚ систСм Windows. Π‘Π΅Ρ‚ΠΎΡ‚ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Π΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ гајба (windows ΠΈ windows-sys), ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° пристапитС Π΄ΠΎ Win API Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Rust. ΠšΠΎΠ΄ΠΎΡ‚ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° API сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΎΠ΄ ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΡˆΡ‚ΠΎ Π³ΠΎ ΠΎΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ API, ΡˆΡ‚ΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π΅ само Π·Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π½Π° Win API, Ρ‚ΡƒΠΊΡƒ ΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΡ†ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ ќС сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°. Новата Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π΄ΠΎΠ΄Π°Π²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Ρ†Π΅Π»Π½Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° UWP (Universal Windows Platform) ΠΈ Π³ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ Handle ΠΈ Debug.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€