Lançamento do Ruby 3.4.0
(ruby-lang.org)-
Como nos anos anteriores, o Ruby 3.4.0 foi lançado em 12/25.
-
Entre as principais atualizações estão a adição da referência de parâmetro de bloco
it, a troca do parser padrão para Prism, a inclusão de suporte ao Happy Eyeballs Version 2 na biblioteca socket, melhorias no YJIT e a adição de GC modular, entre outras. -
Referência de parâmetro de bloco
it- Foi introduzido
it, que permite referenciar parâmetros de bloco sem um nome de variável. Isso funciona de forma semelhante a_1e facilita o uso em blocos simples.
- Foi introduzido
-
Mudança para o parser padrão Prism
- O parser padrão foi alterado de
parse.ypara Prism. Para usuários comuns não deve haver grandes mudanças; se houver problemas de compatibilidade, relate.
- O parser padrão foi alterado de
-
Happy Eyeballs Version 2 na biblioteca socket
- Foi adicionado suporte ao Happy Eyeballs Version 2 (RFC 8305) na biblioteca socket. Isso oferece conexões de rede mais eficientes e confiáveis em ambientes de internet modernos.
-
Melhorias no YJIT
- Aumento de desempenho na maioria dos benchmarks, redução de uso de memória, várias correções de bugs e adição de novos recursos.
-
GC modular
- Foi adicionada a funcionalidade de GC modular, que permite carregar dinamicamente implementações alternativas de coletor de lixo. É necessário o toolchain Rust.
-
Mudanças na linguagem
- Em arquivos sem o comentário
frozen_string_literal, é emitido um aviso quando literal de string é modificado. Inclui várias mudanças, como suporte a keyword splatting com**nil.
- Em arquivos sem o comentário
-
Atualizações de classes principais
- Inclui várias atualizações de classes principais, como
Exception#set_backtraceaceitar um array deThread::Backtrace::Location.
- Inclui várias atualizações de classes principais, como
-
Atualizações da biblioteca padrão
- Melhorias de desempenho e novos recursos em várias bibliotecas padrão, como RubyGems, Bundler, JSON e Tempfile.
-
Problemas de compatibilidade
- Inclui mudanças de compatibilidade, como alteração na exibição de mensagens de erro e backtrace, mudança no modo de renderização do
Hash#inspecte outras.
- Inclui mudanças de compatibilidade, como alteração na exibição de mensagens de erro e backtrace, mudança no modo de renderização do
-
Atualização da API em C
- Inclui atualizações da API C, como a remoção das funções
rb_newobjerb_newobj_of.
- Inclui atualizações da API C, como a remoção das funções
-
Outras mudanças
- Inclui várias mudanças, como o aviso ao passar blocos inutilizados para um método.
2 comentários
Comentários do Hacker News
Há grande expectativa em relação às mudanças no parser do Ruby. Eu aprendi que antes devia usar yacc, mas o Ruby entrou na lista de linguagens que usam um parser feito manualmente.
parse.yde 16k linhas por umprism.cde 22k linhas é uma atitude ousada.O Ruby 3.4.1 já está desatualizado.
O desempenho do Ruby melhorou muito nos últimos anos. Desde a versão 3.3, tenho usado a opção
--yjitem todos os apps, e a diferença foi enorme.A estratégia da Shopify é a mesma do YJIT: se não der para refatorar o serviço, vamos refatorar o próprio Ruby.
Melhorias de desempenho no nível de JIT e GC são um acréscimo muito bem-vindo.
Espero pelo lançamento anual do Ruby como uma tradição de Natal.
Atualizo apps Rails todo fim de ano. Recentemente, ficou bem mais fácil atualizar porque está mais estável e com melhor desempenho.
Parabéns e agradecimentos à equipe do Ruby.
Desde as notícias da Rails 8, eu queria tentar o Ruby, mas desisti porque o processo de instalação era muito complicado.
devContainers.html.erbdo Rails estava completamente quebrado no VSCode e em outros editores.Existe um script que facilita a instalação do Rails no macOS.
=>
https://rails.new/