glojure - อินเทอร์พรีเตอร์ Clojure ที่โฮสต์อยู่บน Go
(github.com/glojurelang)- อินเทอร์พรีเตอร์ Clojure ที่ออกแบบเป็นภาษาแบบ "hosted" ซึ่งต่างจากอิมพลีเมนเทชัน Clojure บน Go อื่น ๆ
- รองรับ interop ที่ขยายได้ ทำให้สามารถ ใช้ค่าทุกชนิดของ Go เป็นค่าของ Glojure ได้ และกลับกัน
- ให้การเข้าถึง ไลบรารี Go ได้อย่างง่ายดาย คล้ายกับที่ Clojure เข้าถึง Java framework
- รองรับ 2 รูปแบบ: เครื่องมือ CLI แบบ standalone (
glj) และ การฝังในแอปพลิเคชัน Go- เมื่อนำไปฝัง สามารถเพิ่มการตั้งค่าที่สคริปต์ได้, ขยายด้วย ปลั๊กอิน Clojure, และผสมผสานประสิทธิภาพของ Go กับพลังการแสดงออกของ Clojure ได้
- รองรับ การเรียกใช้งานสองทางระหว่าง Clojure ↔ Go โดยเรียกฟังก์ชัน Go จาก Clojure และเรียกฟังก์ชัน Clojure จาก Go ได้
- มี interop ของ standard library จำนวนมากมาให้ในตัว
- เพื่อหลีกเลี่ยงความกำกวมของ namespace จะเปลี่ยน
/ในชื่อแพ็กเกจ Go เป็น:(เช่นnet/http→net:http) - แพ็กเกจเพิ่มเติมสามารถเปิดให้ใช้งานได้ด้วยการสร้าง package map แล้วคอมไพล์เอง
- เพื่อหลีกเลี่ยงความกำกวมของ namespace จะเปลี่ยน
- มีความสามารถ REPL แบบโต้ตอบ พร้อมโหมดแก้ไขแบบ Vi/emacs, การแก้ไขหลายบรรทัด, การเติมคำอัตโนมัติด้วย Tab, ประวัติถาวร, job control และ interrupt
- มีความต่างในการแมปชนิดตัวเลขกับ Clojure (เช่น
long→int64,char→lang.Char,BigInt→*lang.BigInt) - ยังอยู่ใน ช่วงพัฒนาเริ่มต้น จึงยังมีบั๊กและฟีเจอร์ที่ยังไม่เสร็จ พร้อมข้อจำกัดด้านประสิทธิภาพ และยังไม่รับประกัน backward compatibility จนกว่าจะถึง v1
- ไลเซนส์ EPL-1.0
ยังไม่มีความคิดเห็น