1 pontos por GN⁺ 2025-02-15 | 1 comentários | Compartilhar no WhatsApp
  • Mudanças na linguagem
    • O Go 1.24 agora oferece suporte completo a aliases de tipos genéricos. Aliases de tipos podem receber parâmetros como tipos definidos.
  • Melhorias de desempenho
    • Várias melhorias de desempenho foram feitas no runtime, resultando em uma redução média de 2–3% na sobrecarga de CPU em benchmarks representativos.
    • Inclui uma nova implementação interna de map, melhor eficiência na alocação de memória para objetos pequenos e uma nova implementação interna de mutex no runtime.
  • Melhorias nas ferramentas
    • O comando go fornece um mecanismo para rastrear dependências de ferramentas de um módulo. É possível usar go get -tool para adicionar diretivas de ferramenta ao módulo atual.
    • O novo analisador de testes do subcomando go vet relata erros comuns em declarações de testes, fuzzers, benchmarks e exemplos em pacotes de teste.
  • Adições à biblioteca padrão
    • A biblioteca padrão inclui um novo mecanismo para conformidade com FIPS 140-3, sem exigir mudanças no código-fonte para usar algoritmos aprovados.
    • Vários pacotes que estavam no módulo x/crypto agora estão disponíveis na biblioteca padrão.
    • Benchmarks agora podem usar o método testing.B.Loop, mais rápido e menos propenso a erros.
    • O novo tipo os.Root oferece a capacidade de realizar operações no sistema de arquivos abaixo de um diretório específico.
    • O runtime fornece um novo mecanismo de limpeza chamado runtime.AddCleanup, que é mais flexível, eficiente e menos propenso a erros do que runtime.SetFinalizer.
  • Melhorias no suporte a WebAssembly
    • O Go 1.24 adiciona a diretiva go:wasmexport, que permite que programas Go exportem funções para hosts WebAssembly, e oferece suporte à compilação de programas Go como reatores/bibliotecas WASI.

1 comentários

 
GN⁺ 2025-02-15
Comentários do Hacker News
  • Gostei especialmente da implementação de mapas mais rápida e do fato de que text/template agora suporta tipos de função
  • O Go 1.23 introduziu range sobre tipos de função, mas só agora isso passou a funcionar em templates do Go
  • Estou curioso para saber se é possível especificar tags para usar ao instalar ferramentas definidas por diretivas de tool
    • Tentei, mas não funcionou (instalou sem as tags)
    • Usei go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
  • Estou curioso sobre quais são os casos de uso de os.Root
    • Entendo que tem relação com segurança
    • Como internamente ele não usa Chroot, imagino que no fim alguém possa encontrar uma forma de escapar do Root
  • É sem graça, mas eu gosto
  • O que mais me anima são as novas flags de ferramenta
    • Deve dar para se livrar do horroroso tools.go
  • Ao usar GODEBUG=fips140=only, algoritmos criptográficos que não estejam em conformidade com FIPS 140-3 retornam erro ou panic
    • Não gosto da ideia de a biblioteca padrão provocar panic de propósito
    • Não olhei o código, mas fico me perguntando se isso só acontece em funções que hoje não retornam erro
  • Finalmente, aliases de tipos genéricos já estavam demorando demais
  • Legal! Eu estava esperando por este lançamento por causa de GOAUTH
    • Espero que trabalhar com repositórios git privados fique menos trabalhoso
    • Pelo go help goauth, não estou com expectativas tão altas