ИздаванС Π½Π° Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Rust 1.39

ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ вСрсия Π½Π° систСмния Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ РъТда 1.39, основана ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mozilla. Π•Π·ΠΈΠΊΡŠΡ‚ сС фокусира Π²ΡŠΡ€Ρ…Ρƒ бСзопасността Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, осигурява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ осигурява срСдства Π·Π° постиганС Π½Π° висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΡŠΠΌ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅, Π±Π΅Π· Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° ΠΎΡ‚ΠΏΠ°Π΄ΡŠΡ†ΠΈ ΠΈΠ»ΠΈ срСда Π·Π° изпълнСниС.

Автоматичното ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° Rust освобоТдава Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° указатСля ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠ°Π·Π²Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡ€ΠΎΠΈΠ·Ρ‚ΠΈΡ‡Π°Ρ‰ΠΈ ΠΎΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ слСд освобоТдаванС, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π», ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° сС ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° разпространСниС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, осигуряванС Π½Π° сглобяванС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° зависимости ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ΠΎΠ²Π°Ρ€Π΅Π½, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с Π΅Π΄Π½ΠΎ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° хостванС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ crates.io.

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½ Π½ΠΎΠ² синтаксис Π·Π° асинхронно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° функцията "async", Π±Π»ΠΎΠΊΠ° async move { ... } ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ".await", ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява писанСто Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ главния ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ. Π’ сравнСниС с прСдлагания ΠΏΠΎ-Ρ€Π°Π½ΠΎ API Π·Π° асинхронСн Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄, конструкциитС async/.await са лСсни Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π΄ΠΎΠ±Ρ€Π΅ Ρ‡Π΅Ρ‚ΠΈΠΌΠΈ ΠΈ Π²ΠΈ позволяват Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ слоТни асинхронни взаимодСйствия, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Ρ†ΠΈΠΊΠ»ΠΈ, условни ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

    Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Async-await Π²ΠΈ позволява Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° поставят Π½Π° ΠΏΠ°ΡƒΠ·Π° тяхното изпълнСниС, Π΄Π° Π²ΡŠΡ€Π½Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° основната нишка ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π²ΡŠΠ·ΠΎΠ±Π½ΠΎΠ²ΡΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ мястото, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ са спрСли. НапримСр, Ρ‚Π°ΠΊΠ°Π²Π° ΠΏΠ°ΡƒΠ·Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° I/O, Π² която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π΄Ρ€ΡƒΠ³Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ сС Ρ‡Π°ΠΊΠ° пристиганСто Π½Π° слСдващата част ΠΎΡ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ с "async fn" ΠΈ "async move", Π²Ρ€ΡŠΡ‰Π°Ρ‚ характСристика Π‘ΡŠΠ΄Π΅Ρ‰Π΅, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ прСдставянС Π½Π° асинхронно изчислСниС. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Ρ‚Π΅ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ изчислСниС ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° β€ž.awaitβ€œ. Никакво дСйствиС Π½Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ сС ΠΈΠ·Π²ΠΈΠΊΠ° .await, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ слоТни Π²Π»ΠΎΠΆΠ΅Π½ΠΈ конструкции Π±Π΅Π· Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ.

    async fn first_function() -> u32 { .. }
    ...
    Π½Π΅ΠΊΠ° Π±ΡŠΠ΄Π΅Ρ‰Π΅ = ΠΏΡŠΡ€Π²Π°_функция();
    ...
    Π½Π΅ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚: u32 = future.await;

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½ "#![feature(bind_by_move_pattern_guards)]", позволяващ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ с Ρ‚ΠΈΠΏ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ "ΠΏΠΎΠΏΡŠΡ‚Π΅Π½ Ρ…ΠΎΠ΄" Π² шаблони ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ към Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² сСкцията "if" Π½Π° ΠΈΠ·Ρ€Π°Π·Π° "ΠΌΠ°Ρ‡". НапримСр Π²Π΅Ρ‡Π΅ са Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ слСднитС конструкции:

    fn main() {
    нСка масив: Box<[u8; 4]> = Box::new([1, 2, 3, 4]);

    ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ масив {
    Nums
    if nums.iter().sum::() == 10

    => {
    ΠΊΠ°ΠΏΠΊΠ° (числа);
    }
    _ => Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½!(),
    }
    }

  • Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡΡ‚Π° Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΏΡ€ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, затваряния ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π·Π° условно ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ (cfg, cfg_attr), ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚ диагностиката Ρ‡Ρ€Π΅Π· lint (Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅, ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΎΡ‚ΠΊΠ°Π· ΠΈ Π·Π°Π±Ρ€Π°Π½Π°) ΠΈ спомагатСлни Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° макроси.

    fn len(
    #[cfg(windows)] slice: &[u16], // ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π² Windows
    #[cfg(not(windows))] ΠΏΠ°Ρ€Ρ‡Π΅: &[u8], // ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Π΄Ρ€ΡƒΠ³Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма
    ) -> ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉ {
    slice.len()
    }

  • ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠΈ) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° NLL (нСлСксикални сроковС Π½Π° ΠΆΠΈΠ²ΠΎΡ‚), ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π² катСгорията Ρ„Π°Ρ‚Π°Π»Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ. НСка си ΠΏΡ€ΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ систСмата Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Π½ΠΎΠ² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚Π° Π½Π° заимстванитС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° някои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са останали нСзабСлязани ΠΎΡ‚ стария ΠΊΠΎΠ΄ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. Въй ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° повлияС Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΊΠΎΠ΄, ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ сС ΠΈΠ·Π΄Π°Π²Π°Ρ‚ прСдупрСТдСния вмСсто Π³Ρ€Π΅ΡˆΠΊΠΈ. ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡΡ‚Π° Π²Π΅Ρ‡Π΅ са Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ с Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌ Rust 2018. Π’ слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΡΡŠΡ‰ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌ Rust 2015, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π°ΠΉ-накрая Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ старата ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠΈ;
  • ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΡŠΡ‚ β€œconst”, ΠΊΠΎΠΉΡ‚ΠΎ опрСдСля Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ във всСки контСкст вмСсто константи, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Vec::new, String::new, LinkedList::new, str::len, [T]::len , str::as_bytes,
    абс, wrapping_abs и overflowing_abs;

  • Нова част ΠΎΡ‚ API Π΅ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½Π° Π² стабилната катСгория, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са стабилизирани
    Pin::into_inner, Instant::checked_duration_since ΠΈ Instant::saturating_duration_since;

  • ΠœΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΡŠΡ‚ Π½Π° Ρ‚ΠΎΠ²Π°Ρ€Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ β€ž.tomlβ€œ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ Cargo. Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ„Π»Π°Π³ΡŠΡ‚ β€ž--workspaceβ€œ, замСняйки противорСчивия Ρ„Π»Π°Π³ β€ž--allβ€œ. Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ»Π΅ към ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅ "ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°ΠΌβ€œ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚Π΅ зависимости, ΠΊΠ°Ρ‚ΠΎ посочитС git Ρ‚Π°Π³ ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Π½Π° вСрсията. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ тСстова опция "-Ztimings" Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° HTML ΠΎΡ‚Ρ‡Π΅Ρ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° изпълнСниС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΅Ρ‚Π°ΠΏΠΈ Π½Π° компилация.
  • Π’ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° rustc диагностичнитС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ изрязванС Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ сС вписва Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ†Π΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ
    i686-unknown-uefi ΠΈ sparc64-unknown-openbsd. Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π±Π°Π·ΠΎΠ²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, Π½ΠΎ Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ тСстванС ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€