Rilascio del linguaggio di programmazione Rust 1.43

Pubblicato rilascio del linguaggio di programmazione di sistema Rust 1.43, sviluppato da Mozilla. Il linguaggio Γ¨ focalizzato sulla gestione sicura della memoria, offre gestione automatica della memoria e fornisce strumenti per raggiungere un elevato parallelismo nell'esecuzione dei compiti, evitando l'uso del garbage collector e runtime.

La gestione automatica della memoria in Rust libera gli sviluppatori dalla manipolazione dei puntatori e protegge da problemi derivanti da operazioni a basso livello con la memoria, come l'accesso a memoria giΓ  liberata, dereferenziazione di puntatori nulli, overflow del buffer e simili. Per la distribuzione delle librerie, la gestione della compilazione e delle dipendenze, Γ¨ in fase di sviluppo un gestore di pacchetti Cargo, che consente di ottenere le librerie necessarie per il programma con un clic. Per l'hosting delle librerie Γ¨ supportato il repository crates.io.

Principali novitΓ :

  • Π’ макросах обСспСчСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² элСмСнтов для ΠΈΡ… прСвращСния Π² ΠΊΠΎΠ΄ Ρ‚ΠΈΠΏΠ°ΠΆΠ΅ΠΉ (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Β».
  • Aggiunto un nuovo modulo primitive, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рСэкспортируСт ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Rust, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ макрос ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ Π½Π΅ скрыты.
  • È stata tradotta una nuova serie di API in una versione stabile, tra cui sono state stabilizzate

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 ΠΈ
    iter::once_with.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server πŸ”₯ Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster