Relax ejecuta Rust mientras lo compila: primer fotograma en 11 segundos en lugar de 3 minutos
Relax: JIT compiler for Rust to reduce build times
Relax es un compilador en vivo y runtime JIT para Rust, escrito en Rust, que ejecuta un paquete de Cargo directamente desde el código fuente sin rustc, LLVM ni enlazador. Compila cada función en el momento de su primera llamada, optimiza las más usadas en segundo plano y parchea los cambios en el proceso en ejecución al guardar un archivo. En un M4 MacBook, un gran juego 3D muestra su primer fotograma en 11 segundos desde un checkout limpio, frente a los ~3 minutos de rustc; la segunda ejecución tarda 1,15 s. El código optimizado sigue siendo más lento que rustc --release (1,14–1,26× en las cargas más perfiladas, 2,3× en bucles numéricos densos sin vectorizar). Todo cabe en una biblioteca Rust de 438k líneas, sin dependencias de crates.io.
Rust te da velocidad y seguridad, y te las cobra en tiempos de compilación. Relax mantiene la velocidad y la seguridad y elimina el cobro.
- faresahmed
De alguna manera, siempre, alguien en algún lugar redescubre que reducir el tiempo entre escribir código y ejecutarlo nos hace la vida más fácil y, hasta cierto punto, nos permite escribir mejores programas.
Quizás el intento más temprano y mejor fue el modelo computacional de Lisp. Desde entonces, la idea se manifestó de nuevo[1], de nuevo[2] y de nuevo[3] en distintas formas.
[1]: Inventing on Principle, Bret Victor: https://www.youtube.com/watch?v=PUv66718DII
[2]: REPL-Driven Development, Stuart Halloway: https://vimeo.com/223309989
[3]: LIVE, Live Programming workshop: https://liveprog.org/
- Sytten
Hasta ahora hemos tenido buenas experiencias con kache para acelerar las builds en CI y en local
- kennykartman
Sabía que los desarrolladores de makepad estaban centrados en los tiempos de compilación, ¡pero no imaginaba que hasta este punto!