tmux-rs : Un périple de 100 000 lignes de code de C à Rust (non sécurisé)
En six mois, l'auteur a patiemment porté les ~67 000 lignes de code C de tmux, le multiplexeur de terminal, vers Rust, résultant en une base de code de ~81 000 lignes. Les tentatives initiales utilisant le transpileur C2Rust se sont avérées difficiles, conduisant à une réécriture manuelle. L'auteur détaille le processus de construction, les bogues rencontrés et les stratégies pour convertir les idiomes C en Rust, notamment la gestion des pointeurs bruts, les instructions goto et les macros intrusives. Le projet culmine dans une réimplémentation basée sur lalrpop de l'analyseur yacc, réalisant une migration complète de C vers Rust et aboutissant à une version 0.0.1. Le périple met en lumière les défis et les récompenses du portage de code à grande échelle.
Lire plus