JEP 544: compilación de código anticipada (ahead-of-time) en la JVM HotSpot

La JEP 544, propuesta para OpenJDK por John Rose, introduce la compilación anticipada (AOT) de código de aplicación dentro de la caché AOT existente, con el objetivo de reducir los tiempos de arranque y calentamiento de la JVM HotSpot. La idea central es ejecutar un entrenamiento previo que genere c

Cómo scheme-rs multiplicó por 25 su rendimiento con tres optimizaciones

scheme-rs es una implementación de Scheme escrita en Rust cuyo autor decidió el 31 de diciembre de 2024 transformar su intérprete basado en AST en un compilador JIT con representación intermedia en CPS (Continuation-Passing Style). El objetivo principal era hacer mecánica la creación de continuacion

Añadir compilación JIT a un intérprete de juguete con libgccjit

En el mundo de los lenguajes de programación, la compilación en tiempo de ejecución (JIT) permite que un programa se traduzca a código máquina mientras se ejecuta, lo que puede mejorar notablemente el rendimiento. Este tutorial, cuarta parte de una serie, explica cómo añadir esta capacidad a un inté

Cómo construir un compilador JIT en 5 microsegundos

Este artículo explica cómo implementar un compilador JIT (Just-In-Time) capaz de generar código ensamblador en aproximadamente 5 microsegundos, un tiempo de compilación muy inferior al de alternativas como LLVM o la generación de C/C++. El autor, desarrollador de la base de datos pgrust, relata que

Trampas del benchmarking en sistemas modernos: por qué los resultados engañan

Benchmarking en sistemas modernos rara vez produce datos limpios y comparables. Aunque el software bajo prueba sea determinista, el resto del entorno —sistema operativo, hardware, JVM, mecanismos de seguridad— introduce variaciones que pueden cambiar los tiempos de ejecución entre iteraciones y entr

Numba llega al navegador: ejecución JIT de Python científico en JupyterLite

El compilador JIT Numba ya funciona íntegramente dentro del navegador, integrado en JupyterLite y distribuido a través de emscripten-forge. Hasta ahora, los notebooks Jupyter dependían de un servidor con Python; JupyterLite ejecutaba los kernels localmente vía WebAssembly, pero carecía de soporte pa

El NYI de LuaJIT que envenenó en silencio un bucle caliente sin relación

LuaJIT, el compilador JIT del lenguaje de scripting Lua —usado en juegos como Factorio y World of Warcraft y en herramientas como Neovim u OpenResty—, presume de velocidad, pero puede estrangular el rendimiento de forma inadvertida cuando el código activa uno de sus NYI (Not Yet Implemented): operac

NoiseLang: un lenguaje donde cada valor es una distribución de probabilidad

NoiseLang es un lenguaje de programación experimental en el que cualquier valor es una distribución de probabilidad y los operadores mapean distribuciones a distribuciones. Un número escalar equivale a un delta de Dirac, mientras que las variables aleatorias se generan con el operador ~ y las muestr

Tiny: un lenguaje de programación concurrente con compilador JIT

Tiny es un lenguaje de programación y sistema de tiempo de ejecución de alto rendimiento, concurrente y escrito en Go. Combina la agilidad de un lenguaje dinámico con un motor de ejecución multihilo, y está dirigido a desarrolladores que necesitan prototipar con rapidez sin renunciar a velocidad de

Roto, el lenguaje de script compilado para Rust, cumple un año

NLnet Labs ha celebrado el primer aniversario de Roto, un lenguaje de script compilado y estáticamente tipado diseñado para integrarse con Rust. Desde su lanzamiento, ha recibido seis actualizaciones que añaden bucles, listas, enumeraciones y una sintaxis más parecida a Rust, además de una macro par

Código JIT: cómo informar al sistema sobre su ejecución

Este artículo de wakelift.de explora cómo proporcionar información sobre código JIT (Just-In-Time) compilado a diferentes partes del sistema, incluyendo el sistema operativo, herramientas de desarrollo como depuradores y profilers. El problema surgió en MoarVM, una máquina virtual escrita en C que e

Anvil: R más rápido con nuevo framework de cálculo

Un nuevo framework para R, llamado Anvil, promete acelerar significativamente los cálculos numéricos. Desarrollado por R-Xla, Anvil utiliza compilación Just-In-Time (JIT) y diferenciación automática hacia atrás para ejecutar programas a gran velocidad, permitiendo su ejecución en diferentes hardware

Linux: /proc/self/mem y la memoria protegida

Este artículo explora un comportamiento peculiar y a menudo desconocido de `/proc/self/mem` en sistemas Linux: la capacidad de escribir en memoria marcada como inescrutable. Normalmente, el sistema operativo impide que el código escriba en áreas de memoria designadas como de solo lectura. Sin embarg

PostgreSQL: pg_jitter acelera compilación y mejora rendimiento

Un nuevo proyecto llamado `pg_jitter` está mejorando significativamente la velocidad de compilación JIT (Just-In-Time) para PostgreSQL, lo que resulta en un rendimiento de consulta más rápido en las versiones 14 a 18 de la base de datos. La compilación JIT, introducida en PostgreSQL 11, optimiza el