← На главную

Вышел Gleam v1.17.0 с командой export escript для BEAM и JS

02.06.2026 22:16 · hackernews

Вышел Gleam v1.17.0 — типобезопасный язык для виртуальной машины Erlang и JavaScript-рантаймов. Но сначала новость: опубликованы первые видео с конференции Gleam Gathering, целиком посвящённой Gleam. Их можно посмотреть на YouTube. Мероприятие прошло отлично, следующее ожидается в 2027 году.

Главное нововведение — команда gleam export escript. Раньше собрать одномодульный исполняемый файл для BEAM (аналог JavaScript-бандла) было непросто. Теперь утилита сама компилирует проект, проверяет наличие функции main и выдаёт escript — один файл для любой машины с Erlang.

В language server добавили поддержку textDocument/documentHighlight — теперь при наведении на переменную подсвечиваются все её упоминания в коде. Спасибо Гэвину Морроу.

Ключевое слово todo теперь работает и в константных выражениях. Раньше оно вызывало панику при выполнении, а теперь, если todo встречается в compile-time константе, программу просто нельзя запустить, но типы проверяются. Заодно улучшили авто-заполнение меток для конструкторов записей — спасибо Джакомо Кавальери.

При наведении на record update в редакторе language server показывает, какие поля ещё не обновлены — чтобы не лезть в определение типа. Компилятор научился предлагать варианты квалифицированных имён, если программист забыл написать модуль (например, подсказать io.println вместо ошибки println). Типы в предупреждениях теперь отображаются с правильным алиасом или квалификацией — как их назвали в коде, а не канонически.

Оптимизировали код pattern matching для JavaScript: Даниэле Скарлатти и Гэвин Морроу убрали лишние проверки длины битовых массивов и сделали присваивания компактнее.

Добавили флаг --no-print-progress для команды gleam dev — тихий режим разработки. Команда gleam deps outdated теперь показывает количество устаревших зависимостей, даже если их ноль. Улучшили детекцию Git-репозиториев в монорепозиториях для gleam publish — спасибо Андрею Кожеву.

Повышена отказоустойчивость компилятора: он лучше анализирует ошибочный синтаксис list-prepend и record update. Добавлены code action: удаление избыточного record update, исправление оператора в guard-выражениях (например, замена + на <> для конкатенации строк), раскрытие discard-паттерна в case, создание отсутствующего модуля при импорте.

Исправлены три уязвимости, связанные с валидацией конфигурации в build tool: CVE-2026-43965, CVE-2026-32685 и CVE-2026-42795. Их нашли исследователи Абдельрахман Ахмед Абоэлькасем, Aly и evipepota. Отдельная благодарность команде безопасности Erlang Ecosystem Foundation.

Gleam не из большой корпорации и без венчурного финансирования, проект живёт за счёт сообщества. Авторы просят поддержки на GitHub Sponsors.

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