Rust 1.90.0: nuove API, miglioramenti const e supporto esteso alle architetture

Il team Rust ha annunciato il rilascio della versione 1.90.0, release che porta con sé una serie di miglioramenti tecnici, nuove API stabilizzate e modifiche architetturali che rafforzano la posizione di Rust come linguaggio sicuro, performante e adatto allo sviluppo di sistema.

Rust 1.90.0 è il risultato di mesi di lavoro da parte della community e dei team ufficiali, con contributi che spaziano dal compilatore alle librerie standard, fino al supporto per nuove piattaforme. Il rilascio è già disponibile in beta e può essere testato tramite rustup.

Novità principali in Rust 1.90.0

La versione 1.90.0 introduce diverse funzionalità e modifiche che impattano lo sviluppo quotidiano. Ecco le principali:

  • Stabilizzazione delle API const_float_round_methods, che permettono di usare metodi di arrotondamento su float in contesti const
  • Rimozione di [T]::array_chunks(_mut), semplificando l’uso delle slice
  • Accesso volatile alla memoria non-Rust, incluso l’indirizzo 0, utile per interfacciarsi con hardware o ambienti embedded
  • Miglioramenti alla valutazione dei const, con supporto per riferimenti a memoria mutabile/esterna (ma non come pattern)
  • Errore esplicito quando una static scrive su sé stessa durante l’inizializzazione
  • Stabilizzazione di nuove API per NonNull, File, PathBuf, Result, OsString e TcpStreamExt
  • Supporto per repr(u128) e repr(i128) stabilizzato, utile per strutture binarie precise
  • Miglioramenti al compilatore per target aarch64, x86_64, s390x, LoongArch e RISC-V
  • Demozione del target x86_64-apple-darwin a Tier 2 con strumenti host
  • I target musl Tier 3 ora linkano dinamicamente per impostazione predefinita

Questi cambiamenti rafforzano Rust come linguaggio per lo sviluppo di basso livello, mantenendo al contempo la sicurezza e la coerenza sintattica.

API stabilizzate e nuove funzionalità

Rust 1.90.0 porta in stabilità diverse API che erano precedentemente disponibili solo in nightly. Tra le più rilevanti troviamo:

  • File::lock, File::try_lock, File::unlock per la gestione sicura dei file
  • NonNull::from_ref, NonNull::expose_provenance per la manipolazione avanzata dei puntatori
  • OsString::leak, PathBuf::leak per la gestione della memoria in ambienti embedded
  • Result::flatten per semplificare la gestione degli errori
  • TcpStreamExt::quickack e set_quickack per ottimizzare le connessioni TCP su Linux

Queste API migliorano la produttività e permettono di scrivere codice più espressivo e sicuro, soprattutto in contesti di sistema, networking e I/O.

Supporto esteso per architetture e target

Rust 1.90.0 amplia il supporto per diverse architetture e target, consolidando la sua presenza in ambienti embedded, server e desktop. Tra le novità:

  • Stabilizzazione di 29 feature per RISC-V (riscv_ratified_v2)
  • Supporto migliorato per x86_64-pc-windows-gnullvm e aarch64-pc-windows-gnullvm
  • Stabilizzazione di target vector per s390x e macro is_s390x_feature_detected!
  • Supporto per LoongArch con feature f, d, lasx, lsx, lvz e altre
  • Miglioramenti al bootstrap system (x.py) e al compilatore per ambienti cross-compiling

Questi aggiornamenti rendono Rust ancora più adatto allo sviluppo multipiattaforma, con toolchain robuste e prestazioni ottimizzate.

Fonte: Rust 1.90.0 Changelog

Lascia un commento