ClojureFnl: Compilador une Clojure y Fennel

Fuentes: Clojure on Fennel part one: Persistent Data Structures

Un desarrollador ha creado 'ClojureFnl', un compilador que traduce código Clojure a Fennel, un lenguaje Lisp inspirado en Clojure y que se ejecuta en Lua. El proyecto surgió inicialmente como una biblioteca llamada 'fennel-cljlib' en 2019, cuyo objetivo era incorporar características de Clojure en Fennel. Con el tiempo, esta biblioteca evolucionó, incluyendo funcionalidades como secuencias perezosas, inmutabilidad, pruebas y una adaptación de 'clojure.core.async'.

'ClojureFnl' se basa en 'fennel-cljlib', pero enfrenta desafíos de rendimiento debido a la implementación inicial de estructuras de datos inmutables, que utilizaban un enfoque de copia-en-escritura. Para solucionar esto, el desarrollador ha creado una nueva biblioteca, 'immutable.fnl', que implementa estructuras de datos persistentes más eficientes, incluyendo mapas hash, conjuntos y árboles rojo-negro. Aunque la compilación de código Clojure funciona, la ejecución aún presenta limitaciones en el soporte de la biblioteca estándar, y las operaciones son significativamente más lentas que las de las tablas nativas de Lua, aunque se han implementado optimizaciones con 'transients'. El proyecto se encuentra en una etapa temprana de desarrollo.