← На главную

Автор перенёс Scheme в браузер через Hoot 0.9.0

05.07.2026 13:12 · hackernews

Автор статьи учит Scheme и параллельно переносит свои учебные физические проекты в веб — с помощью компилятора Hoot. Hoot превращает Scheme-код в WASM, чтобы он работал прямо в браузере. Прямо сейчас это версия 0.9.0, и она нестабильна. Документация неплохая, но не идеальная, сообщения об ошибках бывают тёмными. Тем не менее сам факт, что Scheme крутится в браузере на WASM — огромное достижение. И особенно круто, что Hoot использует собственный стек, а не полагается на Emscripten.

Сначала автор думал, что Hoot может скомпилировать любую программу на Guile «как есть». Быстро выяснил, что это не так — код просто не собирался. Пришлось переписывать всё на версии функций, заточенные под Hoot, и код потерял независимость от компилятора. Позже оказалось, что Hoot поддерживает куда больше возможностей Guile, чем казалось, просто нужно было вручную импортировать многое из того, что раньше работало по умолчанию.

Сейчас настройка такая: код работает и на нативном Guile, и в браузере через WASM. Тесты прогоняются в обоих окружениях, чтобы ничего не разъехалось. Большая часть кода вообще не замечает, где выполняется — под системным интерпретатором или в скомпилированном виде в браузере. Для автора это кажется удивительным.

Основная работа пока ушла на бэкенд — просто чтобы вся эта схема заработала. Плюс параллельно пришлось разбираться с базовой физикой, что вдвойне сложно для новичка в Scheme. Но прогресс есть: автор выложил маленький прототип на своём сайте и опубликовал исходный код.

Дальше интересно, получится ли компилировать через Hoot смесь Zig и Scheme. Автору всё чаще кажется, что Zig + Scheme — идеальное сочетание, так что эксперименты продолжатся. Возможно, это слишком сложно, но автор только начинает разбираться в мире WASM и кайфует от процесса. Исследование Scheme оказалось глубоким и захватывающим.

Читать оригинал →