IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Google annonce la disponibilité de la version stable de Go 1.9
Qui s'accompagne de changements dans la bibliothèque principale

Le , par Stéphane le calme

89PARTAGES

15  0 
La prochaine version de Go, le langage de programmation compilé et concurrent inspiré de C et Pascal, va améliorer les performances, la compilation et l’évolutivité de grandes bases de code. Go 1.9 devrait être publié en août.

« Au cours des dernières années, le public de Go est passé des utilisateurs bêta aux utilisateurs traditionnels. Aujourd'hui, nos utilisateurs proviennent d'une grande variété de milieux, d'expériences et d'attentes. Les besoins des utilisateurs augmentent plus rapidement que le projet Go ne peut actuellement les aborder. Pour simplifier l'expérience pour les utilisateurs débutants de Go, nous avons créé le Developer eXperience Working Group (DXWG) », indiquait Google en mi-avril.

Aussi, il n’est pas étonnant de voir que c’est ce groupe de travail qui a fait l’annonce de la disponibilité de la version bêta 1 de Go 1.9.

Changements dans le langage

Il y a un changement dans le langage. Go prend désormais en charge les types d'alias pour supporter la réparation progressive du code tout en déplaçant un type entre les paquets. Le document de conception de type alias et un article sur la refactorisation couvrent le problème en détail. En bref, une déclaration de type alias a la forme:

Code Go : Sélectionner tout
Type T1 = T2

Cette déclaration introduit un nom d'alias T1– une autre orthographe – pour le type désigné par T2, c'est-à-dire que T1 et T2 correspondent au même type.

Outils

Compilation parallèle

Le compilateur Go prend désormais en charge la compilation des fonctions d'un package en parallèle, en profitant de multiples noyaux. Cela s'ajoute au support existant de la commande go pour la compilation parallèle de paquets distincts. La compilation parallèle est activée par défaut, mais peut être désactivée en définissant la variable d'environnement GO19CONCURRENTCOMPILATION à 0.

Correspondance du fournisseur avec. / …

Suite à une requête populaire. / ... ne correspond plus aux packages dans les répertoires des fournisseurs dans les outils acceptant les noms de paquets, tels que go test. Pour faire correspondre les répertoires des fournisseurs, écrivez ./fournisseur / ....

Chaîne de compilation

La division complexe est maintenant compatible avec C99. Cela a toujours été le cas dans gccgo et est maintenant corrigé dans la chaîne d'outils gc. Le linker générera maintenant des informations DWARF pour les exécutables cgo sur Windows.

Le compilateur comprend maintenant des étendues lexicales dans le DWARF généré, permettant aux débogueurs de cacher des variables qui ne sont pas dans la portée. La section .debug_info est maintenant DWARF version 4.

Les valeurs de GOARM et GO386 affectent maintenant l'ID de génération d'un package compilé, tel qu'utilisé par la mise en cache de dépendance de l'outil Go.

Performance

Les éditeurs assurent que la plupart des programmes devraient fonctionner un peu plus rapidement, en raison des accélérations dans le ramasse-miettes, de l’amélioration du code et des optimisations dans la bibliothèque centrale.

Bibliothèque principale

Nouveau paquet de manipulation d’octets

Go 1.9 comprend un nouveau paquet, math/bits, avec des implémentations optimisées pour manipuler des octets. Dans la plupart des architectures, les fonctions de ce package sont en outre reconnues par le compilateur et traitées comme intrinsèques pour des performances supplémentaires.

Fonctions d'aide aux tests

Les nouvelles méthodes (* T).Helper et (* B).Helper marquent la fonction d'appel en tant que fonction d'aide de test. Lors de l'impression des informations sur les fichiers et les lignes, cette fonction sera ignorée. Cela permet d'écrire des fonctions d'assistant de test tout en disposant de numéros de lignes utiles pour les utilisateurs.

Parmi les changements mineurs apportés à la bibliothèque, nous pouvons citer :

Archive/zip : le Writer ZIP définit maintenant l’octet UTF-8 dans FileHeader.Flags, le cas échéant ;

Crypto/x509 : sur les systèmes Unix, les variables d'environnement SSL_CERT_FILE et SSL_CERT_DIR peuvent maintenant être utilisées pour remplacer les emplacements par défaut du système pour le fichier de certificat SSL et le répertoire des fichiers de certificats SSL, respectivement ;

le chemin FreeBSD /usr/local/etc/ssl/cert.pem est maintenant inclus dans le chemin de recherche du certificat ;

le package prend désormais en charge les domaines exclus dans les contraintes de noms. En plus d'imposer de telles contraintes, CreateCertificate créera des certificats avec des contraintes de noms exclusives si le certificat de modèle fourni comporte le nouveau champ ExcludedDNSDomains peuplé.

Source : note de version

Mise à jour du 25/08/2017 : Google annonce la disponibilité de la version stable de Go 1.9

Cette version s'accompagne de plusieurs changements dans le langage, la bibliothèque principale, le runtime et les outils. La plupart d'entre eux ont été abordés durant la phase bêta. Bien entendu, Go 1.9 vient également avec de nombreuses améliorations et corrections de bogues.

Source : blog Go

Une erreur dans cette actualité ? Signalez-nous-la !