Gli sviluppatori del kernel Linux si stanno preparando per il primo aggiornamento alla sua toolchain Rust da quando il codice Rust è stato inizialmente fuso in Linux 6.1.
Il codice è stato inizialmente integrato in Linux 6.1 e continua ancora oggi puntando a Rust 1.62, mentre il piano prevede l’aggiornamento all’ultima versione stabile corrente, Rust 1.68.2.
Per quanto riguarda questo grande aggiornamento al codice Rust nel kernel Linux principale, il messaggio di patch di Miguel Ojeda spiega:
“Il kernel attualmente supporta solo una singola versione di Rust (piuttosto che un minimo) dato il nostro utilizzo di alcune funzionalità”instabili”di Rust che non promettono retrocompatibilità.
L’obiettivo è raggiungere un punto in cui possiamo dichiarare una versione minima per la toolchain. Ad esempio, aspettando alcune delle funzionalità devono essere stabilizzate. Pertanto, la prima versione minima di Rust che il kernel supporterà è”in futuro”.
# Policy di aggiornamento
Dato che alla fine dovremo raggiungere quella versione minima, sarebbe ideale aggiornare il compilatore di tanto in tanto tempo per essere il più vicino possibile a questo obiettivo e trovare eventuali problemi prima.In caso estremo, potremmo eseguire l’aggiornamento non appena viene rilasciata una nuova versione di Rust.Ovviamente, l’aggiornamento così spesso è in netto contrasto con ciò di cui si avrebbe normalmente bisogno GCC e LLVM, soprattutto considerando il programma di rilascio: 6 settimane per Rust contro sei mesi per LLVM e un anno per GCC.
Detto questo, non c’è nemmeno un vantaggio particolare nell’aggiornare lentamente: è improbabile che gli sviluppatori del kernel nelle distribuzioni”stabili”siano comunque in grado di utilizzare la loro toolchain Rust fornita dalla distribuzione per il kernel. Invece, aggiornando regolarmente all’ultima versione, gli sviluppatori del kernel che utilizzano distribuzioni Linux che tengono traccia dell’ultima versione di Rust potrebbero essere in grado di utilizzare quelli anziché quelli forniti da Rust, specialmente se il loro gestore di pacchetti consente di bloccare/trattenere/eseguire il downgrade della versione per alcuni giorni durante le finestre in cui la versione potrebbe non corrispondere. Ad esempio, Arch, Fedora, Gentoo e openSUSE forniscono e tengono traccia dell’ultima versione di Rust che viene rilasciata ogni 6 settimane.
Quindi, quando viene raggiunta la versione minima, interromperemo l’aggiornamento e decideremo quanto sarà ampia la finestra di supporto. Ad esempio, un anno di versioni di Rust. Probabilmente vorremo iniziare in piccolo e poi ampliarlo nel tempo, proprio come ha fatto originariamente il kernel per LLVM.”
Maggiori dettagli su questa politica di aggiornamento formulata in la terza patch.
Così con questa serie di patch è l’aggiornamento del kernel a Rust 1.68.2.