glojure - Go 위에 호스팅된 Clojure 인터프리터
요약
Go 언어 위에서 동작하는 호스팅 방식의 Clojure 인터프리터인 glojure를 소개합니다. Go와 Clojure 간의 양방향 상호운용성을 지원하며, Go 애플리케이션 내 임베딩 또는 독립형 CLI 도구로 사용할 수 있습니다.
핵심 포인트
- Go와 Clojure 간의 자유로운 양방향 함수 호출 지원
- Go 라이브러리에 대한 손쉬운 접근 및 확장 가능한 상호운용성 제공
- Go 애플리케이션 임베딩 및 스크립트 가능한 설정 기능 지원
- 인터랙티브 REPL 및 다양한 편집 모드 제공
- 현재 초기 개발 단계로 성능 제한 및 하위 호환성 미보장
- 다른 Go 기반 Clojure 구현과 달리
"호스티드(hosted)" 언어로 설계된 Clojure 인터프리터 - 확장 가능한 상호운용(interop)을 지원해 모든
Go 값을 Glojure 값으로, 반대로도 사용 가능 - Clojure가 Java 프레임워크에 접근하듯
Go 라이브러리에 손쉬운 접근 제공
standalone CLI 도구(glj) 와 Go 애플리케이션 내 임베딩, 두 가지 방식 지원 - 임베딩 시 스크립트 가능한 설정 추가,
Clojure 플러그인 확장, Go 성능과 Clojure 표현력 혼합 가능
Clojure ↔ Go 양방향 호출 지원으로, Go 함수를 Clojure에서, Clojure 함수를 Go에서 호출 가능
- 다수의
표준 라이브러리 interop 기본 내장 - 네임스페이스 모호성 회피 위해 Go 패키지명의
/
를 :
로 치환 (예: net/http
→ net:http
)
- 추가 패키지는
package map 생성 후 직접 컴파일로 노출
인터랙티브 REPL 기능으로 Vi/emacs 편집 모드, 멀티라인 편집, 탭 자동완성, 영속 히스토리, job control, 인터럽트 제공
- 숫자 타입은 Clojure와 매핑 차이 존재 (예:
long
→int64
, char
→lang.Char
, BigInt
→*lang.BigInt
)
- 아직
초기 개발 단계로 버그 및 미구현 기능에 성능도 제한적, v1 이전까지 하위 호환성 미보장 - EPL-1.0 라이선스
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기