La nouvelle version 9.1 du compilateur GCC a déjà été publiée

gcc-compilateur-9.1

Cette nouvelle version du compilateur GCC a été rendu disponible il y a quelques jours avec de nouvelles fonctionnalités et des corrections de bogues.

Selon l'équipe du projet GNU GCC, cette nouvelle version, la version 9.1 est une version majeure du compilateur Contient de nouvelles fonctionnalités importantes non disponibles dans GCC 8.x ou les versions antérieures. GCC 9.1 devrait apporter de nouvelles fonctionnalités linguistiques, de nouvelles optimisations et quelques améliorations de performances du logiciel.

À propos de GCC

GCC est une collection de compilateurs créé par le projet GNU. C'est plus exactement un logiciel libre capable de compiler divers langages de programmation, notamment C, C ++, Objective-C, Java, Ada et Fortran.

Il convient également de noter que utilisé pour le développement de la plupart des logiciels libres. La dernière version majeure du compilateur remonte à mai 2018, version 8.1.

Jakub Jelinek, un développeur Red Hat, a expliqué que GCC 8.1 représentait une version majeure qui apporte de nouvelles fonctionnalités importantes qui ne sont pas disponibles dans GCC 7.x et les versions antérieures de GCC.

À ce stade, l'interface C ++ a fourni un support expérimental pour certaines fonctions C ++ 2a avec les options -std = c ++ 2a et -std = gnu ++ 2a.

Dans la version 8.2 au niveau de l'amélioration générale, les problèmes de performances LTO (Link Time Optimization) dus à un débordement dans l'algorithme de partitionnement lors de la création de gros fichiers binaires ont été corrigés.

Les correctifs se sont poursuivis dans la branche 8.x avec la sortie de la version 8.3 du compilateur en février dernier. Cette version était une version de correction de bogue qui contenait des correctifs pour les régressions dans GCC 8.2 par rapport aux versions précédentes de GCC. L'équipe GCC a lancé une nouvelle branche le 3 mai, avec la version 9.

Quoi de neuf dans GCC 9.1?

Dans cette version, Le support C ++ 17 introduit depuis la version 8.1 du compilateur n'est plus expérimentél. Par conséquent, la prise en charge de C ++ 17 est désormais stable.

L'interface de C ++ implémente tout le langage de C ++ 17 et la prise en charge de la bibliothèque standard C ++ est presque terminée.

El front-end et la bibliothèque C ++ ont également de nombreuses autres fonctionnalités codées à partir de C ++ 2a. De plus, GCC a une nouvelle interface pour le langage D et prend désormais partiellement en charge OpenMP 5.0 et intègre presque entièrement le support d'OpenACC 2.5.

Pour beaucoup, GCC 9 est une version puissante du compilateur qui fournit des fonctionnalités et des améliorations exceptionnelles pour améliorer les performances des développeurs.

Parmi les nombreuses nouvelles fonctionnalités de GCC 9.1 figurent:

  • Prise en charge d'un support pour la compilation de code écrit avec le langage de programmation D;
  • Un nouveau backend GPU AMD GCN a été ajouté à GCC. L'implémentation est actuellement limitée à la compilation de programmes à thread unique.
  • La LRA est désormais activée par défaut pour la cible ARC. Cela peut être contrôlé par -mlra.
  • Ajout de la prise en charge du code d'image et des instructions de densité de branche et d'index.
  • Ajouté à GCC a été l'ajout d'un nouveau back-end ciblant les processeurs C-SKY V2.
  • La prise en charge d'Intel MPX a été supprimée.
  • Un nouveau backend a été ajouté pour la prise en charge du processeur OpenRISC.
  • La prise en charge de la spécification OpenACC 2.5 est presque terminée.
  • Le package "selftest" interne de GCC fonctionne maintenant pour C ++ et C (dans les versions de débogage du compilateur).
  • La prise en charge de Fortran dans GCC a également été améliorée. Désormais, il gère les E / S asynchrones et d'autres fonctionnalités.
  • Optimisations d'interprocédure (OPI), optimisations basées sur les profils, optimisations de temps de liaison (LTO), ainsi que de nombreuses autres optimisations pour assurer une meilleure qualité du code.
  • Le temps total de construction de Firefox 66 et LibreOffice 6.2.3 sur une machine à 8 cœurs a été réduit d'environ 5% par rapport à GCC 8.3. La taille des fichiers objets LTO est réduite de 7%.
  • Le temps de liaison LTO s'améliore de 11% sur les machines à 8 cœurs et évolue considérablement pour des environnements de construction plus parallèles. L'étape série de l'optimisation du temps de liaison est 28% plus rapide et consomme 20% de mémoire en moins. Parallel Stage partitionne désormais 128 partitions au lieu de 32 et réduit l'utilisation de la mémoire pour chaque utilisateur de 30%.
  • Une nouvelle option "-fdiagnostics-format = json" a été introduite pour les diagnostics au format lisible par machine.

source: https://gcc.gnu.org