Como de costume, pelo sexto ano seguido, uma nova versão do Ruby foi lançada no último Natal.
O Ruby 2.5.0 veio com várias melhorias de performance, a mais notável foi a remoção de todas as instruções de trace do bytecode, logo, melhorando a performance em 5% e em alguns casos até 10%. Instruções de trace foram implementadas para suportar o TracePoint, entretanto, na maioria dos casos o TracePoint não estava sendo usado e isso estava gerando esforço desnecessário. O Ruby agora suporta instrumentação dinâmica. Outras melhorias de performance incluem, passagem de blocos via parâmetro 3 vezes mais rápida e geração de código a partir de templates 2 vezes mais rápido. Melhorias de performance também foram vistas em alguns métodos da biblioteca padrão, como: Array#concat, String#concat, Enumerable#sort_by e a classe usada em programação concorrente Mutex.
As melhorias de performance não foram as únicas mudanças, Struct.new agora pode criar classes que aceitam keyword arguments e blocos do/end podem usar diretamente fluxos ensure/rescue/else.
Na questão de bibliotecas, cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick, zlib foram promovidas a default gems enquanto o pp, uns dos comandos favoritos, agora é nativo eliminando a necessidade de fazer o require da biblioteca.
Desenvolvedores Ruby agora podem imprimir stacktrace em ordem contrária. A ideia é ver a mensagem principal de erro no topo ao invés de vê-la no final. Essa é uma funcionalidade experimental e poderá ser removida.
Medição de branches e cobertura de métodos também é suportado, permitindo um melhor teste de performance em invocação de diferentes métodos e branches durante a execução do código.
A busca por constantes nos ancestrais agora foi completamente depreciada, retornando erro no lugar de mensagens de alertas. yield_self foi adicionado para gerar um bloco no contexto em que foi chamado e diferente do método tap, ele retorna o valor do bloco o que pode ser útil para encadear chamada de métodos.
Ruby 2.5.0 pode ser baixado do site oficial.