Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Rust 1.84.0: novità per Cargo e il risolutore di trait

Rust 1.84.0 introduce diverse novità per il gestore di package Cargo e un'ulteriore implementazione del risolutore di trait
Rust 1.84.0: novità per Cargo e il risolutore di trait
Rust 1.84.0 introduce diverse novità per il gestore di package Cargo e un'ulteriore implementazione del risolutore di trait
Link copiato negli appunti

Il team di Rust ha annunciato il rilascio della versione stabile 1.84.0. Un aggiornamento che introduce diversi miglioramenti tra cui l'implementazione del nuovo risolutore di trait e un controllo più rigoroso sulle versioni delle dipendenze. È però da segnalare anche una modifica nella denominazione del target WASI (WebAssembly System Interface) che potrebbe causare delle interruzioni per le toolchain di chi non ha ancora aggiornato le proprie configurazioni.

Le novità di Rust 1.84.0

Una delle principali novità di questa release riguarda il gestore di pacchetti Cargo, ora in grado di riconoscere la versione minima supportata di Rust. Questa funzionalità non è stata abilitata di default ma consente a Cargo di ignorare automaticamente i pacchetti che richiedono una versione di Rust più recente rispetto a quella in uso. Ciò è possibile grazie al campo opzionale rust-version nel manifesto di un package.

Sono stati poi compiuti dei progressi per il nuovo risolutore di trait, parte integrante del sistema di tipi di Rust. Questo componente determina se e come un tipo implementa un trait, analogamente a quanto avviene con le interfacce in altri linguaggi. Secondo il Rust Types Team, il nuovo risolutore dovrebbe correggere numerosi bug di lunga data, migliorare i tempi di compilazione e aprire la strada a futuri miglioramenti nel sistema di tipi.

Esso verrà utilizzato per il controllo di coerenza assicurando che esista al massimo un'implementazione di un trait per ogni tipo specifico. Parliamo però di una feature non ancora completa.

Le API per il controllo della provenienza dei puntatori sono un'altra novità dell'aggiornamento. Si riveleranno utili soprattutto nelle conversioni tra puntatori e interi. Queste interfacce puntano a risolvere delle ambiguità intrinseche e beneficiano di strumenti come Miri per la verifica formale della correttezza del codice.

La nuova denominazione del target WASI

È importante notare che il target wasm32-wasi non è più disponibile essendo stato rinominato in wasm32-wasip1 nella versione 1.71 di Rust. Gli sviluppatori che non hanno ancora effettuato la migrazione potrebbero riscontrare errori durante l'aggiornamento. Per risolvere il problema è consigliabile rimuovere il vecchio target con il comando:

rustup target remove wasm32-wasi

prima di procedere all'aggiornamento.

La denominazione originale wasm32-wasi per una versione preliminare è stata riconosciuta come un errore. Essa infatti non evidenziava adeguatamente lo stato di sviluppo dell'interfaccia.

Ti consigliamo anche