tmux-rs: Eine 100.000-Zeilen-Reise von C zu (unsicherem) Rust
Über sechs Monate lang portierte der Autor mühsam die ca. 67.000 Zeilen C-Code von tmux, dem Terminal-Multiplexer, nach Rust, was zu einem Codebase von ca. 81.000 Zeilen führte. Erste Versuche mit dem C2Rust-Transpiler erwiesen sich als schwierig, was zu einer manuellen Umschreibung führte. Der Autor beschreibt den Build-Prozess, die aufgetretenen Bugs und Strategien zur Konvertierung von C-Idiomen nach Rust, einschließlich der Behandlung von Roh-Zeigern, Goto-Anweisungen und intrusiven Makros. Das Projekt gipfelt in einer lalrpop-basierten Neuimplementierung des Yacc-Parsers, wodurch eine vollständige Migration von C nach Rust erreicht und Version 0.0.1 veröffentlicht wurde. Die Reise zeigt die Herausforderungen und Belohnungen des Code-Portings in großem Umfang.
Mehr lesen