Scheme을 WebAssembly로! Hoot 0.9.0 릴리즈 및 Lisp Game Jam 개최

by DD
2주 전
조회수 4

Hoot 0.9.0 릴리즈: Guile용 Scheme to WebAssembly 컴파일러 및 WebAssembly 툴체인 업데이트

Lisp Game Jam 개최: Hoot을 활용한 웹 게임 개발 기회 제공

새로운 기능 및 버그 수정: 호스트 제공 타입 지원, Wasm 예외 처리, DWARF 지원 등

개발 환경 개선: 컴파일러, CLI, 런타임, 문서 업데이트 및 버그 수정

Wasm 예외 처리 및 DWARF 디버깅 지원

Hoot 0.9.0은 표준 Wasm 예외(Standard Wasm Exceptions)를 지원하여, 2025년 7월에 공식 채택된 기능을 활용한다. 또한, DWARF(Debugging With Attributed Record Format)를 지원하여 컴파일러에서 생성되는 메타데이터를 개선했다. 이를 통해 디버깅 정보의 효율적인 관리와 Wasm 바이너리 크기 최적화가 가능해졌다. 특히, DWARF 지원은 개발자가 코드의 문제점을 더 쉽게 파악하도록 돕는다.

호스트 제공 타입(Host Provided Types) 도입

Hoot 0.9.0은 호스트 제공 타입(Host Provided Types) 개념을 도입하여, Wastrel 지원을 개선했다. 이는 Hoot이 다양한 런타임 환경에서 더 원활하게 작동하도록 돕는 핵심적인 변화이다. 부동 소수점(Floating Point)에서 문자열 변환을 Scheme으로 구현하여, Wastrel과 같은 비 JavaScript 런타임에서의 호환성을 높였다. 이러한 변경은 Hoot의 이식성을 향상시키는 데 기여한다.

CLI 및 컴파일러 개선

Hoot 0.9.0은 `guild compile-wasm` 명령어를 `hoot compile`로 대체하여 CLI 사용성을 개선했다. 또한, 디버깅 정보 제거를 위한 `hoot strip` 서브커맨드를 추가하여, 배포 환경에서의 바이너리 크기를 최적화할 수 있도록 했다. Feature Flags를 디버그 옵션에서 분리하여, 컴파일 과정을 더욱 세분화했다. 이러한 변경 사항들은 개발자의 편의성을 높이고, 빌드 프로세스를 간소화한다.

Lisp Game Jam과의 연계

Hoot 0.9.0 릴리즈와 함께, Lisp Game Jam이 개최되어 Scheme을 활용한 게임 개발 기회를 제공한다. Hoot은 HTML5 canvas를 사용하여 인터랙티브 게임을 만들 수 있는 웹 API 바인딩(Web API Bindings)을 제공하며, itch.io에 업로드할 수 있는 .zip 번들을 생성하는 Makefile을 포함한다. 게임 개발 템플릿을 제공하여, 참가자들이 Hoot을 쉽게 시작할 수 있도록 지원한다.

Hoot 0.9.0 released