A liberazione di a lingua di prugrammazione di u sistema Rust 1.54, fundata da u prughjettu Mozilla, ma avà sviluppata sottu à l'auspici di l'urganizazione indipendente Rust Foundation, hè stata publicata. A lingua fucalizza nantu à a sicurità di a memoria, furnisce una gestione automatica di a memoria, è furnisce i mezi per ottene un parallelismu elevatu di u travagliu senza aduprà un cullizzioni di basura o runtime (u runtime hè ridutta à l'inizializazione basica è u mantenimentu di a biblioteca standard).
A gestione automatica di a memoria di Rust salva u sviluppatore da l'errore durante a manipulazione di puntatori è prutegge da i prublemi chì si sviluppanu per via di a manipulazione di memoria di livellu bassu, 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 prugettu sviluppa u gestore di pacchetti Cargo. U repository crates.io hè supportatu per e biblioteche di hosting.
Innuvazioni principali:
- Aggiunta l'abilità di utilizà macros cum'è funzioni in l'attributi (macros procedurali è macros creati cù a macro "macro_rules!"). Tali macros sò distinti da e funzioni da u simbulu "!" dopu à u nome (macro! (...)) è rimpiazzà u testu fonte macro invece di generà una chjama di funzione. Chjamate macros in l'attributi pò esse utile per include u cuntenutu di altri schedari in i cumenti di documentazione. Per esempiu, per inserisce u cuntenutu di u schedariu README è u risultatu di l'esekzione di script, pudete specificà: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR") "), "/generated.rs" )] mod generatu;
- E funzioni di compilatore integrate (Intrinsics) per a piattaforma wasm32 sò stati stabilizzati, chì permettenu l'usu di l'istruzzioni SIMD in WebAssembly. A maiò parte di e funzioni, cum'è v128_bitselect, sò dispunibuli in modu "safe", ma alcune funzioni chì travaglianu cù punters (per esempiu, v128_load) restanu "inseguri".
- L'usu predeterminatu di a compilazione incrementale hè tornatu, chì vi permette di ricustruisce solu e parti cambiate di u codice, chì ponu riduce significativamente u tempu chì ci vole à custruisce un prughjettu quandu ricompilate dopu avè fattu cambiamenti minori. A compilazione incrementale hè stata disattivata in a versione 1.52.1 per via di bug nascosti chì apparsu dopu avè aghjustatu un verificatu supplementu per a carica di dati da a cache di discu.
- Una nova parte di l'API hè stata trasferita à a categuria stabile, cumprese i seguenti stabilizzati:
- BTreeMap::into_keys
- BTreeMap::in_values
- HashMap::into_keys
- HashMap::into_values
- arcu::wasm32
- VecDeque::binary_search
- VecDeque::binary_search_by
- VecDeque::binary_search_by_key
- VecDeque::partition_point
Source: opennet.ru
