Programmeerimiskeele Rust versioon 1.43.

Avaldatud süsteemse programmeerimise keele väljaanne Rust 1.43, mille Mozilla. Keel keskendub mälu ohutusele, tagab automaatse mälu juhtimise ja pakub tööde kõrge paralleelsuse saavutamise vahendeid, ilma et oleks vaja prügikorjajat ja runtime.

Rustis tagab automaatne mälu haldamine arendajale mälukäitlemise manipuleerimise vabastamise ja kaitseb madala taseme mälu töötlemisega seotud probleemide eest, nagu mälu kasutamine pärast selle vabastamist, nullviidete de-referentsimine, puhverduspiiride ületamine jne. Raamatukogude jagamiseks, koostamise tagamiseks ja sõltuvuste haldamiseks arendatakse pakihaldurit Cargo, mis võimaldab vajalikke raamatukogusid ühe klikiga hankida. Raamatukogude paigutamiseks toetatakse hoidlapaiku crates.io.

Peamised uuendused:

  • В макросах обеспечена возможность использования фрагментов элементов для их превращения в код типажей (trait), реализаций (impl) или внешних блоков. Например:

    macro_rules! mac_trait {
    ($i:item) => {
    trait T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Приведёт к генерации:

    trait T {
    fn foo() {}
    }

  • Улучшено определение типа примитивов, ссылок и двоичных операций.
    Например, нижеследующий код, ранее вызывавший ошибку, теперь сможет быть скомпилирован (Rust теперь корректно определяет, что 0.0 и &0.0 должны быть типа f32):

    let n: f32 = 0.0 + &0.0;

  • В Cargo добавлена новая переменная окружения CARGO_BIN_EXE_{имя}, выставляемая при построении интеграционных тестов и позволяющая определить полный путь до исполняемого файла, определённого в секции «[[bin]]» пакета.
  • В выражениях «if» разрешено использование атрибутов, таких как «#[cfg()]».
  • В библиотеке предоставлена возможность использования ассоциированных констант напрямую для целых и дробных типов, без импорта модуля. Например, можно сразу писать u32::MAX или f32::NAN без предварительного указания «use std::u32» и «use std::f32».
  • Uus moodul lisatud primitive, который реэкспортирует примитивные типы Rust, например, когда необходимо написать макрос и убедиться, что типы не скрыты.
  • Uue API osa on tõlgitud stabiilsete ridade hulka, sealhulgas on stabiliseeritud

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 и
    iter::once_with.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster