Amélioration des outils
Changements linguistiques
Ajouts à la bibliothèque standard
Amélioration des performances
En plus de l'amélioration des performances lors de l'activation de PGO :
Un nouveau portage vers WASI
Go 1.21 ajoute un portage expérimental pour WebAssembly System Interface (WASI), Preview 1 (GOOS=wasip1, GOARCH=wasm).
Pour faciliter l'écriture de code WebAssembly (WASM) plus général, le compilateur supporte également une nouvelle directive pour importer des fonctions depuis l'hôte WASM : go:wasmimport.
Téléchargez la version RC de Go 1.21 et essayez-la !
- La fonctionnalité d'optimisation guidée par le profil (PGO) que nous avons annoncée en avant-première dans la version 1.20 est maintenant disponible ! Si un fichier nommé default.pgo est présent dans le répertoire du paquet principal, la commande go l'utilisera pour activer une construction PGO. Nous avons mesuré l'impact de PGO sur un large éventail de programmes Go et avons constaté une amélioration des performances de 2 à 7 %.
- L'outil go prend désormais en charge la compatibilité linguistique ascendante et descendante.
Changements linguistiques
- Nouvelles fonctions intégrées : min, max et clear.
- Plusieurs améliorations de l'inférence de type pour les fonctions génériques. La description de l'inférence de type dans la spécification a été étendue et clarifiée.
- Dans une prochaine version de Go, nous prévoyons de résoudre l'un des problèmes les plus courants de la programmation en Go : la capture des variables de boucle. Go 1.21 est livré avec un aperçu de cette fonctionnalité que vous pouvez activer dans votre code à l'aide d'une variable d'environnement.
Ajouts à la bibliothèque standard
- Nouveau package log/slog pour la journalisation structurée.
- Nouveau package slices pour les opérations courantes sur les tranches de n'importe quel type d'élément. Il inclut des fonctions de tri qui sont généralement plus rapides et plus ergonomiques que le paquet sort.
- Nouveau package maps pour les opérations courantes sur les maps de n'importe quel type de clé ou d'élément.
- Nouveau paquetage cmp avec de nouveaux utilitaires pour comparer des valeurs ordonnées.
Amélioration des performances
En plus de l'amélioration des performances lors de l'activation de PGO :
- Le compilateur Go lui-même a été reconstruit avec l'activation de PGO pour la version 1.21, et en conséquence, il construit des programmes Go de 2 à 4 % plus rapidement, en fonction de l'architecture hôte.
- En raison du réglage du ramasse-miettes, certaines applications peuvent voir une réduction de 40 % de la latence de la queue.
- La collecte de traces avec runtime/trace entraîne maintenant un coût CPU substantiellement plus faible sur amd64 et arm64.
Un nouveau portage vers WASI
Go 1.21 ajoute un portage expérimental pour WebAssembly System Interface (WASI), Preview 1 (GOOS=wasip1, GOARCH=wasm).
Pour faciliter l'écriture de code WebAssembly (WASM) plus général, le compilateur supporte également une nouvelle directive pour importer des fonctions depuis l'hôte WASM : go:wasmimport.
Téléchargez la version RC de Go 1.21 et essayez-la !
Et vous ?
Que pensez-vous de cette version de Go 1.21 ?
Quelles sont les nouveautés ou améliorations que vous trouvez intéressantes ?
Voir aussi
Go 1.20 est la dernière version qui fonctionnera sur toutes les versions de Windows 7, 8, Server 2008 et Server 2012, la version 1.21 nécessitera au moins Windows 10 ou Server 2016
Go 1.20 est disponible avec la prise en charge initiale de PGO et le support expérimental de FreeBSD sur RISC-V, et est la dernière version supportant Windows 7 / 8 / Server 2008 / Server 2012
Go 1.19 est disponible et se concentre sur le développement des génériques ainsi que sur d'importantes améliorations des performances, jusqu'à 20 % pour certains programmes génériques
Go 1.18, le langage de programmation open source développé par Google, arrive avec la généricité par défaut, elle ouvrira de nouvelles solutions, d'approches et de paradigmes