glojure - Interpreter Clojure yang di-host di atas Go
(github.com/glojurelang)- Interpreter Clojure yang dirancang sebagai bahasa "hosted" berbeda dari implementasi Clojure berbasis Go lainnya
- Mendukung interop yang dapat diperluas, sehingga semua nilai Go bisa digunakan sebagai nilai Glojure, dan sebaliknya
- Menyediakan akses mudah ke pustaka Go seperti halnya Clojure mengakses framework Java
- Mendukung dua cara penggunaan: alat CLI mandiri (glj) dan embedding di dalam aplikasi Go
- Saat di-embed, dapat menambahkan konfigurasi yang bisa di-script, memperluas plugin Clojure, serta menggabungkan performa Go dan ekspresivitas Clojure
- Mendukung pemanggilan dua arah Clojure ↔ Go, sehingga fungsi Go dapat dipanggil dari Clojure, dan fungsi Clojure dapat dipanggil dari Go
- Banyak interop pustaka standar sudah tertanam secara bawaan
- Untuk menghindari ambiguitas namespace,
/pada nama paket Go diganti menjadi:(contoh:net/http→net:http) - Paket tambahan diekspos dengan membuat package map lalu mengompilasikannya secara langsung
- Untuk menghindari ambiguitas namespace,
- Fitur REPL interaktif dengan mode penyuntingan Vi/emacs, penyuntingan multi-baris, pelengkapan otomatis tab, riwayat persisten, job control, dan interrupt
- Tipe angka memiliki perbedaan pemetaan dengan Clojure (contoh:
long→int64,char→lang.Char,BigInt→*lang.BigInt) - Masih dalam tahap pengembangan awal, sehingga bug dan fitur yang belum diimplementasikan masih ada, performanya juga terbatas, dan kompatibilitas mundur sebelum v1 tidak dijamin
- Lisensi EPL-1.0
Belum ada komentar.