Le contenu de la mise à jour est le suivant, il semble que le go va exercer une force sur le paradigme

  • Go 1.19 complète et améliore Go 1.18. L'équipe de développement s'est concentrée sur le développement des génériques pour Go 1.19 sur la résolution de certains problèmes mineurs et des cas critiques signalés par la communauté, ainsi que sur des améliorations significatives des performances (jusqu'à 20 % pour certains programmes génériques).

  • Les commentaires de documentation prennent désormais en charge les liens, les listes et une syntaxe d'en-tête plus claire. Cette modification aide les utilisateurs à écrire des commentaires de documentation plus propres et plus faciles à parcourir, en particulier dans les packages avec de grandes API. Dans le cadre de ce changement, gofmtles commentaires de la documentation sont maintenant reformatés pour appliquer un formatage standard à l'utilisation de ces fonctions. Voir les "Commentaires Go Doc" pour tous les détails.

  • Le modèle de mémoire de Go définit désormais explicitement le comportement du package sync/atomic. La définition formelle des relations se produit avant a été modifiée pour s'aligner sur les modèles de mémoire utilisés par C, C++, Java, JavaScript, Rust et Swift. Les programmes existants ne sont pas affectés. Comme le modèle de mémoire a été mis à jour, il existe également de nouveaux types dans le package sync/atomic, tels que atomic.Int64 et atomic.Pointer[T], pour faciliter le travail avec les valeurs atomiques.

  • Pour des raisons de sécurité, le package os/exec ne respecte plus les chemins relatifs dans les recherches PATH. Voir la documentation du package pour plus de détails . L'utilisation existante de golang.org/x/sys/execabs peut être ramenée à os/exec dans les programmes créés uniquement avec Go 1.19 ou version ultérieure.

  • Le ramasse-miettes ajoute la prise en charge des limites de mémoire souples, décrites en détail dans le nouveau guide de ramasse-miettes. Cette limite est particulièrement utile pour optimiser les programmes Go afin qu'ils s'exécutent aussi efficacement que possible dans des conteneurs avec des quantités de mémoire dédiées.

  • La nouvelle contrainte de construction unix est satisfaite lorsque le système d'exploitation cible (GOOS) est n'importe quel système de type Unix. Aujourd'hui, Unix-like fait référence à tous les systèmes d'exploitation cibles de Go, à l'exception de js, plan9, windows et zos.

  • En outre, Go 1.19
    inclut diverses améliorations de performances et d'implémentation, notamment l'ajustement dynamique de la pile de goroutines initiale pour réduire la copie de pile, l'utilisation automatique de descripteurs de fichiers supplémentaires sur la plupart des systèmes Unix, l'utilisation
    d'instructions de commutateur volumineuses sur les tables de saut x86-64 et ARM64, la prise en charge pour les appels de fonction d'injection de débogueur sur ARM64, enregistrez la prise en charge d'ABI sur RISC-V et la prise en charge expérimentale de Linux s'exécutant sur
    LoongArch ( ) sur l'architecture Loongson 64 bits  .GOARCH=loong64