glojure - Intérprete de Clojure alojado sobre Go
(github.com/glojurelang)- Intérprete de Clojure diseñado como un lenguaje "hosted" (alojado), a diferencia de otras implementaciones de Clojure basadas en Go
- Soporta interop extensible, por lo que todos los valores de Go pueden usarse como valores de Glojure, y viceversa
- Ofrece acceso sencillo a bibliotecas de Go, como Clojure accede a frameworks de Java
- Soporta dos formas de uso: herramienta CLI standalone (
glj) y embebido dentro de aplicaciones Go- Al embeberlo, permite agregar configuración scriptable, extensiones de plugins de Clojure, y mezclar el rendimiento de Go con la expresividad de Clojure
- Soporta llamadas bidireccionales entre Clojure y Go: se pueden llamar funciones de Go desde Clojure y funciones de Clojure desde Go
- Incluye por defecto múltiples interop de la biblioteca estándar
- Para evitar ambigüedad de namespaces, reemplaza
/en los nombres de paquetes Go por:(ej.:net/http→net:http) - Los paquetes adicionales se exponen compilándolos directamente tras generar un package map
- Para evitar ambigüedad de namespaces, reemplaza
- La función de REPL interactivo ofrece modo de edición Vi/emacs, edición multilínea, autocompletado con tab, historial persistente, job control e interrupciones
- Los tipos numéricos tienen diferencias de mapeo con Clojure (ej.:
long→int64,char→lang.Char,BigInt→*lang.BigInt) - Aún está en etapa temprana de desarrollo: hay bugs, funciones no implementadas y rendimiento limitado; no se garantiza compatibilidad hacia atrás antes de la v1
- Licencia EPL-1.0
Aún no hay comentarios.