Hacker News Digest

06 октября 2026 г. в 08:08 • gleam.run • ⭐ 281 • 💬 120

Original • HN

#beam#edb#erlang#gleam#langcompilebench

Gleam doesn't compile to Erlang source anymore

Gleam v1.19.0 перестал генерировать исходный код Erlang и теперь выводит Erlang абстрактные формы (abstract forms) — внутреннее промежуточное представление, используемое компилятором Erlang. Это позволяет загружать сгенерированный код напрямую в BEAM, минуя этап парсинга и токенизации Erlang-кода. Такой подход ускорил компиляцию: в тесте на 100 модулей по 100 функций время сборки с нуля сократилось с ~400 мс в v1.17.0 до ~150 мс в v1.19.0. Кроме того, метаданные о расположении теперь точно соответствуют исходному коду Gleam, что делает трассировки стека и отчёты о падениях максимально информативными — номера строк указывают точно на место в Gleam-коде, а не на сгенерированный Erlang. Это также открывает путь к полной поддержке отладчиков вроде edb. Изменение улучшило качество компилятора, заменив устаревший модуль генерации кода на современный, соответствующий текущим стандартам проекта. Авторы отмечают, что теперь можно избежать уничижительного термина «транспайлер», поскольку компиляция в бинарный промежуточный формат не уступает по качеству и надёжности генерации читаемого кода. Benchmark основан на langcompilebench José Valima и измеряет чистое время компиляции без кэширования; в реальной разработке благодаря инкрементальной компиляции ускорение будет ещё заметнее. Gleam остаётся типовой и масштабируемой языком для Erlang VM и JavaScript, а это обновление укрепляет его позицию как инструмента для надёжной и быстрой разработки.