Surelock: Deadlock-Free Mutexes for Rust
L'auteur présente surelock, une bibliothèque Rust préliminaire visant à garantir l'absence d'interblocages à la compilation. Le principe central est un MutexKey linéaire qui porte un état de verrouillage au niveau des types, de sorte que chaque appel .lock() consomme la clé et renvoie une clé attestant des verrous déjà acquis, évitant ainsi les cycles sans analyse globale ni coût d'exécution. Surelock combine deux mécanismes complémentaires : LockSet trie et acquiert atomiquement des verrous du même niveau en s'appuyant sur des LockId stables, tandis que des Level<N> et des contraintes LockAfter imposent par le typage un ordre strict pour l'acquisition incrémentale entre niveaux. L'API propose un usage implicite pratique via lock_scope et un modèle explicite (Locksmith → KeyVoucher → KeyHandle → MutexKey) pour les environnements no_std ou embarqués, et choisit un ordre total Level×LockId plutôt qu'un DAG pour garantir l'absence de deadlocks. La crate, publiée en pré-version et compatible no_std, fournit aussi une échappatoire feature-générée pour des verrouillages non vérifiés et vise à rendre la prévention des interblocages ergonomique en transformant les mauvais usages en erreurs de compilation.