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::Locatione Kernel#raise, Thread#raisee 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.