
La première Release Candidate (RC) de Go 1.21 est disponible dès aujourd'hui sur la page de téléchargement ! Go 1.21 est rempli de nouvelles fonctionnalités et d'améliorations. L'obtention de la RC (Release Candidate) vous permet de l'expérimenter rapidement, de l'essayer sur vos charges de travail et de signaler tout problème avant la sortie de la version finale (prévue pour le mois d'août). Voici quelques changements et fonctionnalités notables dans Go 1.21 ; pour la liste complète, reportez-vous aux notes de version complètes.
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 ?


Voir aussi




Vous avez lu gratuitement 4 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.