← На главную

Вышла Racket v9.2: строгий match, Unicode 17.0, #%foreign-inline

28.05.2026 09:42 · hackernews

Вышла Racket v9.2, скачать можно с официального сайта. Главное — в релизе несколько ломающих изменений, так что старый код может не заработать.

Форма match теперь жёстче проверяет нелинейные шаблоны: если одна и та же переменная встречается в связке с ..., то обе части сопоставленного значения обязаны быть равны. Компилятор также забракует шаблон, где переменная используется с ... в одном месте и без него — в другом.

В Typed Racket починили типы для asin и acos. Раньше они не учитывали, что функция может вернуть комплексное число, и это приводило к небезопасному коду. Теперь такие ошибки будут отлавливаться на этапе компиляции.

Появился новый низкоуровневый синтаксис #%foreign-inline — он даёт небезопасный доступ к возможностям слоя linklet. Всем, кто вручную перебирает синтаксические формы, придётся обновить код.

Unicode обновлён до версии 17.0 — затронуты все операции со строками и символами. Внутренне заложена поддержка более статического интерфейса для внешних вызовов (ffi2), его подключат в будущих пакетах.

Функция terminal-file-position теперь правильно считает байты, записанные в терминал (например, stdin и stderr). Cros-фазовые персистентные модули теперь позволяют работать с более широким кругом цитируемых данных (quote).

Реализации member, memw, when, unless, let/ec и cond переписаны — теперь они используют исключительно синтаксис racket/kernel. В Typed Racket полиморфные структурные типы печатаются с указанием аргументов типа, например (Array Byte), а не внутренним представлением.

Степпер лучше отображает числа в соответствии с настройками языка. Scribble-документы без стиля Racket-manual получают initial-scale 1.0 (раньше было 0.8), это можно переопределить. Маргинальные заметки на узких экранах теперь отображаются внутри строки во всех стилях, а не только в Racket-manual.

Программы, собранные с big-bang и распространяемые как .dmg, корректно обрабатывают close-on-stop. В списке контрибьюторов — 29 человек, включая Мэттью Флатта, Робби Финдлера и Алексис Кинг.

Racket — проект open source, сообщество радо новым участникам. Вопросы и обсуждения — на Discourse и Discord.

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