순수 Scheme으로 짠 self-hosting 웹 컴파일러 Goeteia, 브라우저에서 WebAssembly로 직접 컴파일
- Goeteia는 순수 Scheme으로 작성된 self-hosting 컴파일러로, 브라우저 안에서 Scheme 코드를 WebAssembly로 직접 컴파일해 실시간 실행함
- 홈페이지 자체가 Goeteia로 렌더링되며, HTML/CSS는 물론 GLSL 셰이더까지 s-expression으로 표현해 매크로로 확장 가능함
- r6rs 표준 Scheme 기반이며 hygienic macro를 지원하고, 서버와의 통신도 s-expression 메시지로 처리하는 구조임
- 에디터에서 코드 편집시 커서 위치가 한 줄 위로 밀리는 버그가 보고됐지만 컴파일과 실행 자체는 정상 동작함
- Spritely Institute의 Hoot 프로젝트가 이미 유사하게 Scheme을 WebAssembly에서 구동하고 있어 차별점에 대한 의문이 제기됨
Hacker News opinions
Goeteia는 브라우저에서 hygienic macro로 self-hosting 되고, HTML/CSS도 Scheme 매크로로 확장해서 다루고, 서버랑 s-expr로 메시지 주고받는 구조더라
맨 위에서 웹 라이브러리 import하는데 이게 표준 Scheme 웹 프레임워크 쓰는거임? 이 부분이 실제로 컴파일되는 부분인가 궁금함
JS는 정적으로 검증하기 힘든 언어라 AI 시대엔 문제인데, Scheme이 컴파일 타겟처럼 되면 신뢰성을 줄 수 있을 것 같음
이해가 안 가는데, WebAssembly가 컴파일 타겟이면 그냥 wasm으로 컴파일되는 어떤 언어든 똑같은 거 아님? Why Scheme 페이지도 AI가 쓴 것처럼 논리가 이상하고 homoiconicity 말곤 근거가 없음. 왜 Lisp이나 C, Erlang, Clojure는 안 되는지도 설명 안 됨
나는 Clojure 배우면서 vibe coding 환경에서 쓰는데 AI가 괄호를 진짜 싫어하더라
JS만 정적 검증 안 되는 거 아니고 Scheme도 마찬가지 아님?
Scheme 소스 편집하는데 편집할 때마다 커서 위치가 한 줄 위로 어긋나는 버그 있음
나도 그럼, 맥 크롬인데. 근데 커서 위치 감안하면 컴파일하고 실행은 잘 됨
다시 시도해봐
Hoot라는 프로젝트가 이미 있는데 Scheme을 wasm에서 잘 돌리고 있음. Spritely에서 하는 거 다 괜찮더라
Hoot는 2일 만에 바이브코딩한 프로젝트가 아니잖아
Three.js가 표준 라이브러리로 내장된 게 신기한데 언어에 그런 거 본 적 없음
그냥 표준 r6rs scheme임
이거 완전 좋다, Clojure(ClojureScript)도 이렇게 해줬으면. 컴파일된 JS 크기 줄이고 goog 의존성도 없애야 할 필요가 진짜 있음