A liberazione di a lingua di prugrammazione Rust 1.69 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 implementa a rilevazione di avvisi chì ponu esse risolti automaticamente, è l'output di cunsiglii appropritati per eseguisce "cargo fix" o "cargo clippy -fix". avvisu: importazione micca utilizata: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | aduprà std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = nota: '#[warn(unused_imports)]' attivatu per difettu avvisu: 'foo' (bin "foo") hà generatu 1 avvisu (eseguite 'cargo fix —bin "foo"' per applicà 1 suggerimentu)
- Cargo hà aghjustatu un output di ricunniscenza per aduprà u cumandimu "cargo add" quandu pruvate d'installà una biblioteca cù u cumandamentu "cargo install".
- Per riduce u tempu di compilazione, l'inclusione di l'infurmazioni di debugging in i script di custruzzione hè stata fermata per automaticamente. Se i scripts di custruzzione funzionanu bè, u cambiamentu ùn hà micca risultatu in alcuna differenza visibili, ma se i fallimenti accadenu, u dump di traceback cuntene menu informazioni. Per rinvià u vechju cumpurtamentu à Cargo.toml duvete aghjunghje: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- Una nova parte di l'API hè stata trasferita à a categuria di stabile, cumprese i metudi è l'implementazione di i tratti sò stati stabilizzati:
- CStr::from_bytes_until_nul
- core::ffi::FromBytesUntilNulError
- L'attributu "const", chì determina a pussibilità di usà in ogni cuntestu invece di custanti, hè utilizatu in e funzioni:
- SocketAddr::nova
- SocketAddr::ip
- SocketAddr::port
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::nova
- SocketAddrV4::ip
- SocketAddrV4::port
- SocketAddrV6::nova
- SocketAddrV6::ip
- SocketAddrV6::port
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- Aggiunta l'abilità di utilizà bandieri veri è falsi in argumenti di compilatore.
Source: opennet.ru