Scheme을 브라우저에서! Hoot 0.8.0 릴리스

by DD
3개월 전
조회수 10

Hoot 0.8.0 릴리스: Scheme을 WebAssembly로 컴파일하는 새로운 버전 출시

REPL(Read-Eval-Print Loop) 지원 추가로 브라우저 내에서 Scheme 코딩 가능

웹 서버(Web Server) 기능 강화 및 개발 편의성을 위한 CLI 도구 제공

Wasm GC to C 컴파일러인 Wastrel에서 Hoot의 툴체인 활용, 성능 향상 입증

REPL(Read-Eval-Print Loop) 도입과 개발 워크플로우 개선

Hoot 0.8.0은 REPL(Read-Eval-Print Loop) 기능을 내장하여 개발자가 WebAssembly 런타임 내에서 실시간으로 코드를 작성하고 테스트할 수 있도록 지원한다. 특히, `guild compile-wasm -g1` 플래그를 사용하여 디버깅 정보를 포함하면 컴파일 시간과 바이너리 크기가 증가하지만, 재컴파일 횟수를 줄여 개발 생산성을 향상시킨다. 또한, Emacs용 geiser-hoot 확장 지원을 통해 개발 환경 통합을 제공한다.

웹 서버(Web Server) 및 웹 소켓(Web Socket) 모듈의 발전

Hoot의 웹 서버 모듈은 REPL 클라이언트를 위한 웹 소켓(Web Socket) 프록시 역할을 수행하도록 개선되었다. 이를 통해 브라우저 탭 내에서 실행되는 REPL을 지원하며, Fibers 및 guile-websocket 의존성을 선택적으로 사용할 수 있다. 또한, 사용자 정의 요청 라우터(Request Router)를 통해 웹 서버의 기능을 확장할 수 있으며, (hoot web-repl) 모듈을 통해 REPL 서버를 Wasm 바이너리에 포함시킬 수 있다.

Wasm 툴체인(Toolchain) 개선 및 Wastrel과의 연동

Hoot 0.8.0은 Wasm 유효성 검사를 별도의 모듈로 분리하고, 데이터 격리 아키텍처(Data Isolation Architecture)를 적용하여 성능을 최적화했다. Wastrel은 Hoot의 Wasm 툴체인을 사용하여 개발된 Wasm GC to C 컴파일러로, NodeJS보다 빠른 실행 속도를 보여준다. 이는 Hoot 툴체인의 성능과 효율성을 입증하는 중요한 사례이다.

모듈 로더(Module Loader) 인터페이스 및 라이브러리 지원

Hoot은 모듈 로더(Module Loader) 인터페이스를 통해 모듈 로딩 방식을 유연하게 설정할 수 있도록 지원한다. 기본적으로 파일 시스템에서 모듈을 로드하지만, (web repl) 모듈을 사용할 경우 HTTP 기반 로더를 사용하여 개발 웹 서버에서 소스 코드를 가져온다. 또한, 라이브러리 파서(Library Parser)를 사용하여 라이브러리 모듈을 런타임에 로드할 수 있도록 지원하여 라이브 코딩(Live Coding) 환경을 개선했다.

Hoot 0.8.0 released! - Scheme in WASM