Maison  >  Article  >  développement back-end  >  Qu'est-ce qui a été modifié dans golang1.11 ?

Qu'est-ce qui a été modifié dans golang1.11 ?

(*-*)浩
(*-*)浩original
2019-12-31 14:07:492344parcourir

Qu'est-ce qui a été modifié dans golang1.11 ?

Comme annoncé dans les notes de version de Go 1.10, Go 1.11 nécessite désormais OpenBSD 6.2 ou supérieur, macOS 10.10 Yosemite ou supérieur, ou Windows 7 ou supérieur, prise en charge des versions antérieures ; Les versions de ces systèmes d'exploitation ont été supprimées.

- msan prend désormais en charge Memory Cleaner()linux/arm64. (Apprentissage recommandé : go)

prend désormais en charge le mode build c-shared et c-archivefreebsd/amd64

Sur les systèmes MIPS 64 bits, les nouveaux paramètres de variable d'environnement GOMIPS64=hardfloat (valeur par défaut) et GOMIPS64=softfloat sélectionnent si les instructions matérielles ou l'émulation logicielle sont utilisées pour les calculs à virgule flottante. Pour les systèmes 32 bits, la variable d'environnement est toujours GOMIPS puisqu'elle a été ajoutée dans Go 1.10.

Sur les systèmes ARM à virgule flottante logicielle (GOARM=5), Go utilise désormais une interface logicielle à virgule flottante plus efficace. Ceci est transparent pour le code Go, mais les assemblys ARM utilisant des instructions à virgule flottante qui ne sont pas protégées par GOARM seront interrompus et devront être portés sur la nouvelle interface.

La configuration du noyau Linux KUSER_HELPERS n'est plus nécessaire pour exécuter la version 1.11 sur ARMv7. Ce paramètre est activé dans la configuration du noyau par défaut, mais est parfois désactivé dans la configuration légère.

Web Assembly

Go 1.11 ajoute un port expérimental à WebAssembly (js/wasm).

Les programmes Go peuvent actuellement être compilés dans un module WebAssembly, qui inclut le runtime Go pour la planification des goroutines, le garbage collection, les cartes, etc. La taille du résultat est donc d'au moins environ 2 Mo, soit 500 Ko compressés. Les programmes Go peuvent appeler JavaScript à l'aide du nouveau package expérimental syscall/js. La taille binaire et l'interopérabilité avec d'autres langages ne sont pas encore une priorité, mais pourraient être abordées dans les prochaines versions.

En raison de l'ajout des nouvelles valeurs GOOS 'js' et GOARCH 'wasm', les outils Go ignoreront désormais les fichiers Go nommés *_js.go ou à moins que ces valeurs GOOS/GOARCH ne soient utilisées. Si vous disposez déjà de noms de fichiers correspondant à ces modèles, vous devrez les renommer. *_wasm.go

Modules, gestion des versions des packages et gestion des dépendances

Go 1.11 ajoute la prise en charge initiale d'un nouveau concept appelé "modules", qui sont une alternative à GOPATH avec intégré prise en charge du contrôle de version et de la distribution des packages. Grâce aux modules, les développeurs ne sont plus limités à travailler dans un GOPATH, les informations sur les dépendances de version sont claires et légères, et les builds sont plus fiables et reproductibles.

La prise en charge des modules est considérée comme expérimentale. Les détails peuvent changer en fonction des commentaires des utilisateurs de Go 1.11, et nous avons prévu d'autres outils. Bien que les détails de la prise en charge des modules puissent changer, les projets convertis en modules à l'aide de Go 1.11 continueront de fonctionner dans Go 1.12 et versions ultérieures.

Exigences du cache de build

Go 1.11 sera la dernière version à prendre en charge la définition de la variable d'environnement GOCACHE=off pour désactiver le cache de build. Cette fonctionnalité a été introduite dans Go 1.10. . À partir de Go 1.12, le cache devra être construit, ce qui élimine $GOPATH/pkg. La prise en charge du chargement de modules et de packages décrite ci-dessus nécessite déjà que le cache de build soit activé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn