O Crystal 1.22.0 já está disponível, trazendo 251 mudanças de 33 colaboradores desde a versão 1.21.1. Pacotes pré-compilados podem ser encontrados em GitHub Releases e nos canais oficiais de distribuição, com instruções de instalação em crystal-lang.org/install.
Uma mudança notável é que os processos do Crystal agora encerram imediatamente quando a escrita em STDOUT ou STDERR falha com EPIPE, de forma muito semelhante ao comportamento padrão do SIGPIPE. Desenvolvedores que preferem o comportamento anterior podem desativar isso com STDOUT.exit_on_broken_pipe = false. Constantes também podem agora ter declarações de tipo, de modo que uma constante como QUX : Int64 = 123 é convertida de acordo.
No lado das plataformas, os alvos aarch64-linux-gnu e aarch64-linux-musl passam do Tier 2 para o Tier 1, já que builds oficiais estão disponíveis desde a 1.19. O Process.fork, descontinuado desde antes da 1.0, finalmente foi removido. O parser DWARF também foi reformulado para melhorar o desempenho e reduzir o uso de memória, usando varredura de seções sob demanda e um cache LRU para as linhas de backtrace decodificadas.
A versão traz ainda um event loop nativo para todos os alvos, com epoll no Solaris e kqueue nos demais alvos BSD, enquanto o libevent passa a ser estritamente opcional. O suporte a Kernel TLS nas bindings do OpenSSL agora está habilitado por padrão, e diversas correções e melhorias de HTTP estão incluídas.
Fonte: Hacker News · Resumido por HeadlinesBriefing