1 points par GN⁺ 2025-02-15 | 1 commentaires | Partager sur WhatsApp
  • Changements du langage
    • Go 1.24 prend désormais entièrement en charge les alias de types génériques. Les alias de type peuvent recevoir des paramètres comme les types définis.
  • Améliorations des performances
    • Plusieurs optimisations ont été apportées au runtime, réduisant en moyenne de 2 à 3 % la surcharge CPU sur des benchmarks représentatifs.
    • Cela inclut une nouvelle implémentation intégrée des maps, une meilleure efficacité de l’allocation mémoire pour les petits objets, ainsi qu’une nouvelle implémentation interne des mutex du runtime.
  • Améliorations des outils
    • La commande go fournit un mécanisme pour suivre les dépendances d’outils d’un module. Vous pouvez utiliser go get -tool pour ajouter des directives d’outils au module courant.
    • Le nouvel analyseur de tests de la sous-commande go vet signale les erreurs courantes dans les déclarations de tests, fuzzers, benchmarks et exemples des paquets de test.
  • Ajouts à la bibliothèque standard
    • La bibliothèque standard inclut un nouveau mécanisme de conformité FIPS 140-3, sans nécessiter de modification du code source pour utiliser des algorithmes approuvés.
    • Plusieurs paquets auparavant présents dans le module x/crypto sont désormais disponibles dans la bibliothèque standard.
    • Les benchmarks peuvent désormais utiliser la méthode testing.B.Loop, plus rapide et moins sujette aux erreurs.
    • Le nouveau type os.Root permet d’effectuer des opérations sur le système de fichiers sous un répertoire donné.
    • Le runtime fournit un nouveau mécanisme de nettoyage, runtime.AddCleanup, plus flexible, plus efficace et moins sujet aux erreurs que runtime.SetFinalizer.
  • Amélioration de la prise en charge de WebAssembly
    • Go 1.24 ajoute la directive go:wasmexport, qui permet aux programmes Go d’exporter des fonctions vers des hôtes WebAssembly, et prend en charge la compilation de programmes Go en tant que réacteurs/bibliothèques WASI.

1 commentaires

 
GN⁺ 2025-02-15
Avis Hacker News
  • Je suis surtout content de l’implémentation plus rapide des maps et du fait que text/template prenne désormais en charge les types fonction
  • Go 1.23 a introduit range sur les types fonction, mais cela ne fonctionne que maintenant dans les templates Go
  • Je me demande s’il est possible de spécifier les tags à utiliser lors de l’installation d’un outil défini par une directive d’outil
    • J’ai essayé, mais ça ne fonctionne pas (installation sans tags)
    • Utilisation de go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
  • Je me demande quels sont les cas d’usage de os.Root
    • Je comprends que c’est lié à la sécurité
    • Comme cela n’utilise pas Chroot en interne, j’imagine que quelqu’un finira par trouver un moyen de s’échapper de Root
  • C’est ennuyeux, mais j’aime bien
  • Ce sont les nouveaux flags de l’outil qui m’enthousiasment le plus
    • On pourra se débarrasser de l’horrible tools.go
  • Avec GODEBUG=fips140=only, les algorithmes cryptographiques non conformes à FIPS 140-3 renvoient une erreur ou déclenchent un panic
    • Je n’aime pas l’idée que la bibliothèque standard déclenche volontairement des panic
    • Je n’ai pas regardé le code, mais je me demande si cela n’arrive que dans les fonctions qui ne renvoient actuellement pas d’erreur
  • Enfin, les alias de types génériques se sont fait attendre longtemps
  • Bien ! J’attendais cette release à cause de GOAUTH
    • J’espère que travailler avec des dépôts git privés sera moins pénible
    • En regardant go help goauth, je ne me fais pas de trop grandes illusions