glojure – ein auf Go gehosteter Clojure-Interpreter
(github.com/glojurelang)- Ein Clojure-Interpreter, der im Unterschied zu anderen Go-basierten Clojure-Implementierungen als „hosted“ Sprache konzipiert ist
- Unterstützt erweiterbare Interoperabilität und ermöglicht, jeden Go-Wert als Glojure-Wert und umgekehrt zu verwenden
- Bietet einfachen Zugriff auf Go-Bibliotheken, ähnlich wie Clojure auf Java-Frameworks zugreift
- Unterstützt zwei Nutzungsarten: als standalone CLI-Tool (
glj) und eingebettet in Go-Anwendungen- Beim Einbetten sind skriptfähige Konfigurationen, Erweiterungen über Clojure-Plugins sowie die Kombination aus Go-Performance und der Ausdrucksstärke von Clojure möglich
- Unterstützt bidirektionale Aufrufe zwischen Clojure und Go, sodass Go-Funktionen aus Clojure und Clojure-Funktionen aus Go aufgerufen werden können
- Viele Standardbibliotheks-Interop-Funktionen sind standardmäßig integriert
- Um Namespace-Mehrdeutigkeiten zu vermeiden, wird
/in Go-Paketnamen durch:ersetzt (z. B.net/http→net:http) - Zusätzliche Pakete können nach dem Erstellen einer package map durch direkte Kompilierung verfügbar gemacht werden
- Um Namespace-Mehrdeutigkeiten zu vermeiden, wird
- Die interaktive REPL bietet Vi-/emacs-Bearbeitungsmodi, mehrzeilige Bearbeitung, Tab-Autovervollständigung, persistente Historie, Job Control und Interrupts
- Bei Zahlentypen gibt es Unterschiede zum Clojure-Mapping (z. B.
long→int64,char→lang.Char,BigInt→*lang.BigInt) - Befindet sich noch in einer frühen Entwicklungsphase; Bugs, nicht implementierte Funktionen und eingeschränkte Performance sind zu erwarten, Abwärtskompatibilität vor v1 ist nicht garantiert
- EPL-1.0-Lizenz
Noch keine Kommentare.