Lingua di prugrammazione Rust versione 1.67

A liberazione di a lingua di prugrammazione Rust 1.67 generale, fundata da u prughjettu Mozilla, ma avà sviluppata sottu à l'auspices di l'urganizazione indipendente Rust Foundation, hè stata publicata. A lingua si focalizeghja nantu à a sicurità di a memoria è furnisce i mezi per ottene un altu parallelismu di u travagliu evitendu l'usu di un cullizzioni di basura è runtime (u runtime hè ridutta à l'inizializazione basica è u mantenimentu di a biblioteca standard).

I metudi di gestione di a memoria di Rust salvanu u sviluppatore da l'errore quandu manipulanu i puntatori è prutegge da i prublemi chì si sviluppanu per via di a gestione di memoria di pocu livellu, cum'è l'accessu à una zona di memoria dopu chì hè stata liberata, dereferencing null pointers, buffer overruns, etc. Per distribuisce biblioteche, furnisce e custruzzioni è gestisce e dipendenze, u prughjettu sviluppa u gestore di pacchetti Cargo. U repository crates.io hè supportatu per l'ospitu di biblioteche.

A sicurezza di a memoria hè furnita in Rust à u tempu di compilazione attraversu a verificazione di riferimentu, u seguimentu di a pruprietà di l'ughjettu, a traccia di a vita di l'ughjettu (scopi), è a valutazione di a correttezza di l'accessu di memoria durante l'esekzione di codice. Rust furnisce ancu prutezzione contra i overflows integer, esige l'inizializazione obligatoria di i valori variabili prima di l'usu, gestisce l'errori megliu in a biblioteca standard, applica u cuncettu di referenze immutabili è variabili per difettu, offre una forte tipografia statica per minimizzà l'errori lògichi.

Innuvazioni principali:

  • Per e funzioni asincrone cù Future::Output, hè avà pussibule di specificà annotazioni "#[must_use]" chì includenu un avvisu se u valore di ritornu hè ignoratu, chì aiuta à identificà errori causati da l'assunzione chì a funzione cambierà i valori. invece di rinvià un novu valore. #[must_use] async fn bar () -> u32 { 0 } async fn caller () { bar (). } warning: output inutilizatu di u futuru restituitu da `bar` chì deve esse usatu —> src/lib.rs:5:5 | 5 | bar().aspittà; | ^^^^^^^^^^^^ | = nota: `#[warn(unused_must_use)]` on by default
  • L'implementazione di FIFO queues std::sync::mpsc (multi-producer single-consumer) hè stata aghjurnata, chì hè stata cambiata à aduprà u modulu crossbeam-channel mantenendu l'API precedente. A nova implementazione si distingue per risolve una quantità di prublemi, prestazioni più altu è mantenimentu di codice simplificatu.
  • Una nova parte di l'API hè stata trasferita à a categuria di stabile, cumprese i metudi è l'implementazione di i tratti sò stati stabilizzati:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • L'attributu "const", chì determina a pussibilità di usà in ogni cuntestu invece di custanti, hè utilizatu in e funzioni:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Un terzu livellu di supportu hè statu implementatu per aduprà Rust in u kernel Linux (linuxkernel), è ancu per a Sony PlayStation 1 (mipsel-sony-psx), PowerPC cù AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) piattaforme qnx710, x86_64-pc-nto-qnx710). U terzu livellu implica supportu basicu, ma senza teste automatizati, publicazione di custruzzioni ufficiali, è verificazione di custruzzione di codice.

Inoltre, pudemu nutà a publicazione da ARM di patches chì permettenu l'usu di a lingua Rust per sviluppà drivers è moduli di kernel Linux assemblati per sistemi basati nantu à l'architettura AArch64.

Source: opennet.ru

Add a comment