Lingua di prugrammazione Rust versione 1.69

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

Add a comment