Go 1.19 est maintenant disponible et peut être obtenu en visitant la page de téléchargement. "La plupart de ses modifications concernent la chaîne d'outils, l'exécution et l'implémentation de la bibliothèque. Comme toujours, cette version maintient la promesse de compatibilité Go 1. Nous nous attendons à ce que presque tous les programmes Go continuent à se compiler et à s'exécuter comme avant." Cette version inclut quelques modifications du modèle de mémoire, du port LoongArch, des améliorations du mécanisme de commentaire de la documentation, etc.
Les mises à jour spécifiques sont les suivantes :
-
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,
gofmt
les 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. Parallèlement à la mise à jour du modèle de mémoire, 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
GOARCH=loong64
la prise en charge expérimentale de Linux s'exécutant sur LoongArch ( ) sur l'architecture Loongson 64 bits
Avez-vous gagné quelque chose après avoir lu cet article ? Aimez, partager est le plus grand soutien!