4 pontos por GN⁺ 2024-12-26 | 2 comentários | Compartilhar no WhatsApp
  • 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 _1 e facilita o uso em blocos simples.
  • Mudança para o parser padrão Prism

    • O parser padrão foi alterado de parse.y para Prism. Para usuários comuns não deve haver grandes mudanças; se houver problemas de compatibilidade, relate.
  • 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.
  • Atualizações de classes principais

    • Inclui várias atualizações de classes principais, como Exception#set_backtrace aceitar um array de Thread::Backtrace::Location.
  • 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#inspect e outras.
  • Atualização da API em C

    • Inclui atualizações da API C, como a remoção das funções rb_newobj e rb_newobj_of.
  • Outras mudanças

    • Inclui várias mudanças, como o aviso ao passar blocos inutilizados para um método.

2 comentários

 
GN⁺ 2024-12-26
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.

    • Substituir um parse.y de 16k linhas por um prism.c de 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 --yjit em 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.

    • Instalar o Ruby 3.3 no Mac e no Windows foi um grande desafio.
    • Também precisei ajustar versões no Docker e tive problemas com devContainers.
    • Depois de instalar, o destaque de sintaxe dos arquivos html.erb do Rails estava completamente quebrado no VSCode e em outros editores.
    • Procurei uma solução online, mas não consegui, e acabei desistindo.
    • Tentei no Mac, Windows e Linux sem sucesso, e se alguém conseguir resolver isso, vai ser um presente de Natal.
 
eajrezz 2024-12-26

Depois das novidades do Rails 8, quis experimentar o Ruby, mas desisti porque o processo de instalação era muito difícil.

Existe um script que facilita a instalação do Rails no macOS.
=>
https://rails.new/