Intérpretes de Llamada de Cola: Cuatro Años de Progreso

2025-02-20

Hace cuatro años, un artículo sobre cómo escribir intérpretes ultrarrápidos usando llamadas de cola y el atributo `musttail` generó un interés considerable. Ahora, esta técnica se está adoptando en Python 3.14, LuaJIT Remake y más, ofreciendo mejoras significativas en el rendimiento. El artículo explora el soporte `musttail` de GCC y Clang, el impacto potencial de la propuesta "return goto" del estándar C en los intérpretes de llamada de cola y detalla los roles de los atributos `preserve_none` y `preserve_most` en la optimización de los intérpretes de llamada de cola. Concluye con un resumen del emocionante progreso en el desarrollo de compiladores e intérpretes de lenguajes de programación.

Leer más

Rust Sin Pánico: ¿Puede Rust Reemplazar a C en la Programación de Sistemas de Bajo Nivel?

2025-02-03

Este artículo explora la viabilidad de usar Rust para reemplazar a C en la programación de sistemas de bajo nivel, centrándose específicamente en una biblioteca de Protocol Buffers llamada upb. El autor inicialmente dudaba de la capacidad de Rust para igualar a C en rendimiento y tamaño de código, pero descubrió una técnica llamada "Rust Sin Pánico". Esto implica evitar el uso de `panic!()`. El artículo profundiza en los principios, ventajas y desafíos de Rust Sin Pánico, incluyendo el tamaño del código, las salidas irrecuperables y la sobrecarga de tiempo de ejecución. Demuestra cómo escribir código Rust Sin Pánico utilizando técnicas como el uso de la biblioteca libc, opciones de optimización y `std::hint::assert_unchecked`, enfatizando la retención de las comprobaciones de desbordamiento en el modo de depuración para comprobaciones de consistencia adicionales. Si bien esta técnica requiere un trabajo meticuloso y puede necesitar evitar la mayor parte de la biblioteca estándar, promete ofrecer el rendimiento y el tamaño de código de una biblioteca C manteniendo las garantías de seguridad de Rust.

Leer más
Desarrollo