A próxima versão da linguagem de programação Ruby, Ruby 3.4.0, foi lançada em versão prévia, trazendo mudanças para literais de string e atualizações de classe.
Lançada em 16 de maio, a prévia do Ruby 3.4.0 pode ser baixada em ruby-lang.org. Com esta atualização, literais de string em arquivos sem frozen_string_literal
comentar agora se comporta como se estivesse congelado. Se mutado, um aviso de descontinuação será emitido. A mudança marca um primeiro passo para tornar literais de strings congeladas o padrão em Ruby. Strings congeladas ou imutáveis oferecem vantagens de desempenho e segurança.
Em outras mudanças de idioma, palavras-chave espalhadas nil
ao chamar métodos agora é suportado, enquanto a passagem de bloco e argumentos de palavras-chave não são mais permitidos em índices.
Ruby 3.4.0 também introduz duas atualizações de classes principais. Primeiro, Exception#set_backtrace
agora aceita matrizes de Thread::Backtrace::Location
e Kernel#raise
, Thread#raise
e Fiber#raise
aceite este novo formato também. Segundo, Range#size
agora aumenta TypeError
se o intervalo não for iterável.
Mensagens de erro e exibições de backtrace foram alteradas para resolver problemas de compatibilidade. Os desenvolvedores agora podem usar uma aspa única em vez de um crase como cotação de abertura. Agora também é permitido exibir o nome de uma classe antes do nome de um método quando a classe tiver um nome permanente.
Em outras melhorias, Array#each
foi reescrito para melhor desempenho. Passar um bloco para um método que não usa o bloco passado agora mostrará um aviso no modo detalhado. E redefinir alguns métodos principais que são especialmente otimizados pelo interpretador e pelo JIT agora emitirá um aviso de classe de desempenho.
Ruby 3.4.0 segue antecessores, incluindo o lançamento Ruby 3.2.4 do mês passado, que trouxe correções de segurança, e o lançamento Ruby 3.3.0 do Natal de 2023, que apresentava o analisador Prism. O próprio Ruby remonta a um lançamento público inicial em 1995.