Crystal 1.22.0 уже доступен и включает 251 изменение от 33 участников с версии 1.21.1. Готовые пакеты можно найти на GitHub Releases и в официальных каналах распространения, инструкции по установке — на crystal-lang.org/install.
Заметное изменение: процессы Crystal теперь немедленно завершаются, если запись в STDOUT или STDERR завершается ошибкой EPIPE, что очень похоже на поведение SIGPIPE по умолчанию. Разработчики, предпочитающие прежнее поведение, могут отключить это с помощью STDOUT.exit_on_broken_pipe = false. Константы теперь также могут иметь объявления типов, поэтому константа вида QUX : Int64 = 123 приводится соответствующим образом.
Что касается платформ, цели aarch64-linux-gnu и aarch64-linux-musl переходят с Tier 2 на Tier 1, поскольку официальные сборки доступны с версии 1.19. Process.fork, устаревший ещё до версии 1.0, наконец удалён. Парсер DWARF также переработан для повышения производительности и снижения потребления памяти: используются сканирование секций по требованию и LRU-кеш для декодированных строк трассировки стека.
Релиз также приносит нативный цикл событий для всех целей: epoll в Solaris и kqueue в остальных BSD-целях, а libevent становится строго опциональным. Поддержка Kernel TLS в привязках OpenSSL теперь включена по умолчанию, а также включено множество исправлений и улучшений HTTP.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing