Arquitectura de chadwm-rs
Cómo funciona el port espejo de chadwm (dwm en C) a Rust — el bucle de eventos, las tres tablas de punteros a función y el binario en C usado como oráculo.
Un window manager de X11 no es una jerarquía de objetos: es un bucle de eventos colgando de tres tablas de punteros a función y un bloque de estado global mutable. chadwm-rs es un port espejo — no una reescritura idiomática — de chadwm (a su vez un fork de dwm 6.5) desde C hacia Rust, y este documento explica el mecanismo real.
Qué cubre
Section titled “Qué cubre”01 · El mecanismo — Todo pasa por una tabla que empieza vacía: setup(), init_handlers() y el bucle bloqueado en XNextEvent.
02 · Las tablas — Tres tablas de punteros a función, no una: handlers de evento, layouts y atajos de teclado.
03 · La división — Un archivo de 3 896 líneas repartido en cinco módulos, y por qué el corte cayó donde cayó.
04 · La verificación — El binario en C como oráculo ejecutable: comparación fotograma a fotograma contra el original.
05 · Los límites — Lo que no se puede «mejorar» sin dejar de ser un port espejo.
Cifras
Section titled “Cifras”| Métrica | Valor |
|---|---|
| Líneas de C portadas | 5 678 |
| Líneas de Rust | 8 679 |
| Módulos | 10 |
| Fotogramas idénticos | 19/19 |