75 ejemplos de raylib en Jolt: Clojure nativo sobre Chez Scheme con FFI directo

Fuentes: 75 raylib examples in Jolt: native Clojure FFI bindings

Un repositorio reúne 75 ejemplos funcionales de la biblioteca gráfica raylib escritos en Jolt, un dialecto de Clojure que compila a código nativo mediante Chez Scheme, sin necesidad de JVM. La capa de enlace con raylib se construye llamando directamente a libraylib a través de su ABI en C con jolt.ffi, sin bibliotecas envoltorio, generación de código ni shims en C. Los ejemplos se distribuyen en seis categorías: juegos (10), núcleo (9), formas (32), texto (5), 3D (12) y generativos (7), todos disponibles en una página de demostración a tamaño completo.

El diseño técnico resuelve tres problemas concretos del ABI. Primero, el struct Color ocupa 4 bytes y se transmite en un solo registro de propósito general, por lo que se pasa como entero en cada draw call sin marshaling. Segundo, los structs compuestos mayores de 16 bytes en AArch64 se pasan por indirección; las cámaras Camera2D (24 bytes) y Camera3D (44 bytes) se construyen en memoria nativa y se enlazan como [:pointer]. Tercero, los structs pequeños con floats van en registros de coma flotante, inaccesibles al truco del puntero, así que la geometría que usa Vector2 o Vector3 por valor se dibuja con el modo inmediato escalar de rlgl.

Cada ejemplo es un namespace pequeño sobre una capa compartida. La API de dibujo admite argumentos por palabra clave sobre binds posicionales, e incluye una paleta de colores con nombre. El proyecto ofrece tareas de babashka para verificar bindings, instalar libraylib y ejecutar los ejemplos de forma desatendida. Se distribuye bajo la licencia zlib/libpng, la misma que usa raylib.