Lingua di prugrammazione Rust versione 1.62

A liberazione di a lingua di prugrammazione Rust 1.62 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:

  • U gestore di pacchetti "cargo" offre u cumandamentu "add", chì vi permette di aghjunghje novi dependenzii à u manifestu Cargo.toml o cambià e dipendenze esistenti da a linea di cumanda. U cumandamentu permette ancu di specificà e caratteristiche individuali è versioni, per esempiu: cargo add serde - features derive cargo add nom@5
  • Aggiunta l'abilità di utilizà "#[deriva (Default)]" cù enums in quale l'opzione predeterminata hè definita cù l'attributu "#[default]". #[deriva (default)] enum Forse { #[default] Nunda, Qualcosa (T), }
  • Nant'à a piattaforma Linux, una implementazione più compacta è più veloce di u mecanismu di sincronizazione Mutex hè aduprata, basatu annantu à l'usu di futexes furniti da u kernel Linux. A cuntrariu di l'implementazione utilizata prima basata nantu à a libreria pthreads, a nova versione usa solu 5 bytes invece di 40 per almacenà u statu Mutex.In modu simili, i miccanismi di chjusi Condvar è RwLock sò stati trasferiti à futex.
  • Un secondu livellu di supportu per a piattaforma di destinazione x86_64-unknown-none hè statu implementatu, cuncepitu per generà schedarii eseguibili chì ponu travaglià senza un sistema operatore. Per esempiu, a piattaforma di destinazione specifica pò esse usata quandu scrive cumpunenti di u kernel. U sicondu livellu di sustegnu implica una guaranzia di assemblea.
  • U terzu livellu di supportu hè statu implementatu per e plataforme aarch64-pc-windows-gnullvm è x86_64-pc-windows-gnullvm. U terzu livellu implica un supportu basicu, ma senza teste automatizate, publicà custruzzioni ufficiali, o cuntrollà se u codice pò esse custruitu.
  • Una nova parte di l'API hè stata trasferita à a categuria di stabile, cumprese i metudi è l'implementazione di i tratti sò stati stabilizzati:
    • bool::poi_alcuni
    • f32::total_cmp
    • f64::total_cmp
    • Stdin::lines
    • windows::CommandExt::raw_arg
    • impl valore predeterminatu per AssertUnwindSafe
    • Da > per Rc
    • Da > per Arc<[u8]>
    • FusedIterator per EncodeWide

    Source: opennet.ru

Add a comment