Go version 1.15 du langage de programmation

Introduit version du langage de programmation Aller 1.15, développé par Google avec la participation de la communauté en tant que solution hybride combinant les hautes performances des langages compilés avec les avantages des langages de script tels que la facilité d'écriture du code, la rapidité de développement et la protection contre les erreurs. Code de projet distribué par sous licence BSD.

La syntaxe de Go est basée sur des éléments familiers du langage C avec quelques emprunts au langage Python. Le langage est assez concis, mais le code est facile à lire et à comprendre. Le code Go est compilé en exécutables binaires autonomes qui s'exécutent de manière native sans utiliser de machine virtuelle (le profilage, le débogage et d'autres sous-systèmes de détection de problèmes d'exécution sont intégrés en tant que composants d'exécution), qui permet d'obtenir des performances comparables aux programmes C.

Le projet est initialement développé dans l'optique d'une programmation multithread et d'un fonctionnement efficace sur des systèmes multicœurs, notamment en fournissant des moyens au niveau opérateur pour organiser le calcul parallèle et l'interaction entre les méthodes exécutées en parallèle. Le langage offre également une protection intégrée contre les blocs de mémoire suralloués et offre la possibilité d'utiliser un garbage collector.

principal les innovationsintroduit dans la version Go 1.15 :

  • Le travail de l'éditeur de liens a été considérablement amélioré, à la fois en augmentant la vitesse de fonctionnement et en réduisant la consommation de mémoire, et en simplifiant la maintenance du code. Lors des tests sur des systèmes d'exploitation utilisant le format de fichier exécutable ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), un ensemble typique de grandes applications Go a été construit 20 % plus rapidement et la consommation de mémoire a été réduite en moyenne de 30 %. L'augmentation de la productivité a été rendue possible grâce au passage à un nouveau format de fichier objet et au remaniement des étapes internes pour augmenter le niveau de parallélisation du travail. L'éditeur de liens natif est désormais utilisé par défaut sur les systèmes linux/amd64 et linux/arm64 en "-buildmode=pie", ce qui ne nécessite plus l'utilisation d'un éditeur de liens C.
  • Au moment de l'exécution, la répartition des petits objets sur les systèmes dotés d'un grand nombre de cœurs de processeur a été considérablement améliorée et la latence a été réduite. En cas d'échec, les valeurs de type numérique et chaîne sont affichées au lieu d'afficher l'adresse. Lors de l'envoi de signaux SIGSEGV, SIGBUS et SIGFPE à une application Go, en l'absence d'un gestionnaire os/signal.Notify, l'application se terminera avec une sortie de trace de pile (auparavant, le comportement était imprévisible).
  • Le compilateur a été optimisé pour réduire la taille des fichiers exécutables générés de 5 % en moyenne en arrêtant l'inclusion de certaines métadonnées pour le garbage collector et en nettoyant plus agressivement les métadonnées inutilisées.
  • L'indicateur « -spectre » a été ajouté au compilateur et à l'assembleur pour activer la protection contre les attaques de classe Spectre (pour la plupart des programmes, cela n'est pas requis ; l'activation de l'option ne peut être justifiée que pour quelques cas très particuliers).
  • Dans les certificats X.509, le champ CommonName est obsolète et n'est plus traité comme un nom d'hôte si le champ Noms alternatifs du sujet est manquant.
  • La commande "go" dans la variable d'environnement GOPROXY peut désormais lister plusieurs proxys, séparés par une virgule ou "|". Si le premier proxy de la liste renvoie une erreur (404 ou 410), alors une tentative de contact sera effectuée via le deuxième proxy, etc.
  • L'utilitaire vétérinaire a ajouté un avertissement concernant la tentative de conversion à partir d'une chaîne (x) si "x" est un type entier autre qu'une rune ou un octet.
  • L'indicateur "-gnu" a été ajouté à l'utilitaire objdump pour prendre en charge le désassemblage de la syntaxe de l'assembleur GNU.
  • Nouveau package ajouté heure/tzdata, qui vous permet d'intégrer une base de données avec des données de fuseau horaire dans le programme.
  • À partir des textes sources et de la documentation supprimé les expressions liste blanche/liste noire et maître/esclave, qui sont désormais remplacées par "allowlist", "blocklist", "process", "pty", "proc" et "control".
  • Une grande partie d'améliorations mineures ont été apportées à la bibliothèque standard.
  • Ajout de la prise en charge d'OpenBSD 6.7 dans les modes GOARCH=arm et GOARCH=arm64 (auparavant, seuls GOARCH=386 et GOARCH=amd64 étaient pris en charge).
  • Le développement de la plateforme RISC-V 64 bits (GOOS=linux, GOARCH=riscv64) s'est poursuivi.
  • Pour les systèmes x32 86 bits, la prochaine version augmentera la configuration minimale requise : seuls les processeurs avec SSE2 continueront d'être pris en charge. Pour construire en mode GOARCH=386, vous aurez besoin d'au moins un Intel Pentium 4 (sorti en 2000) ou un AMD Opteron/Athlon 64 (sorti en 2003).

Source: opennet.ru

Ajouter un commentaire