Go 1.25 : des améliorations, pas de changements sur le langage
jeu, 14/08/2025 - 14:01
Go annonce la version 1.25. Cette version n'introduit pas de changements dans le langage mais des améliorations sur les chaînes d'outils, le runtime et les librairies. Cette version maintient la rétro-compatibilité. L'équipe s'attend à la bonne compilation des codes anciens. L'objectif est donc de consolider et d'améliorer autour du langage.
Quelques nouveautés :
- L'option go build -asan détecte désormais, par défaut, les fuites à la sortie du programme. Une erreur sera signalée si la mémoire allouée par C n'est pas libérée et n'est référencée par aucune autre mémoire allouée par C ou Go.
- La nouvelle option go doc -http démarrera un serveur de documentation affichant la documentation de l'objet demandé et ouvrira la documentation dans une fenêtre de navigateur.
- go vet propose de nouveaux analyseurs : waitgroup et hostport
- modification du comportement de GOMAXPROCS
- nouveau garbage collection expérimental. Cette nouvelle conception GC améliore les performances de marquage et de scans de petits objets grâce à une meilleure localisation et une meilleure montée en charge (par rapport au processeur). Activité : GOEXPERIMENT=greenteagc
- runtime/trace.FlightRecorder permet de tracer l'exécution dans le runtime sans surcharger l'environnement
- correction du bug de compilation du pointeur nil, bug qui existait depuis la version 1.21. Exemple d'un code incorrect :
package main
import "os"
func main() {
f, err := os.Open("nonExistentFile")
name := f.Name()
if err != nil {
return
}
println(name)
}
Avec Go 1.25, cette fonctionnalité ne fonctionnera plus correctement. Si ce changement affecte votre code, la solution consiste à placer la
vérification d'erreur non nulle plus tôt dans votre code, de préférence immédiatement après l'instruction génératrice d'erreur.
- le compilateur et le linker supportent DWARF 5. Cette évolution doit réduire l'espace nécessaire pour les informations de debug dans les binaires Go.
- nouvelle implémentation JSON (expérimentale)
Pour voir toutes les nouveautés et corrections : https://tip.golang.org/doc/go1.25

