GCC est un ensemble de compilateurs largement utilisé pour la création des logiciels open source. La version 5.0, qui sera publiée dans quelques semaines, proposera une vaste liste d’améliorations, dont la plus importante est très clairement l’utilisation par défaut de la norme C11, en lieu et place de la C89.
GCC passe de la norme C89 à C11
GCC (GNU Compiler Collection) 5.0 arrivera bientôt et les développeurs devront absorber une vraie vague de nouveautés. La plus importante concerne ceux qui codent en C puisque le compilateur utilisera par défaut GNU11 au lieu de GNU89. Il s’agit respectivement des implémentations des normes ISO C11 et C89, ce qui signifie une modernisation évidente dans le compilateur dans ses réglages par défaut. On remarquera d’ailleurs que GCC avait fait l’impasse sur la norme C99, sortie entre temps, comme norme de base pour la compilation.
Les normes C définissent le socle standard qu’un développeur peut attendre d’un compilateur en particulier. Par exemple, C11 a apporté la possibilité d’aligner les structures, le support des structures et des unions anonymes, a amélioré la gestion du multithreading et la gestion des chaines Unicode, etc. Bien entendu, rien n’empêchait les développeurs d’activer la norme C11, mais l’utilisation par défaut reste une étape cruciale.
Nombreux ajouts d'architectures et optimisations diverses
GCC 5.0 contiendra également de nombreuses améliorations. Par exemple, les optimisations interprocédurales (conçues pour améliorer les performances dans le code utilisant fréquemment les mêmes fonctions de petite et moyenne tailles) peuvent réaliser une nouvelle passe Identical Code Folding (ICF) permettant de regrouper les fonctions identiques. Diverses optimisations sont présentes, notamment sur les tables virtuelles, les variables en écriture seule ou encore quand les link-time optimizations (LTO) sont activées.
Côté support, cette version 5.0 de GCC ne sera pas en reste, avec notamment :
- Les extensions AVX-512 dans les futurs processeurs Xeon de la génération Skylake
- De nombreuses fonctionnalités de C++14
- L’interface de programmation parallèle Cilk Plus d’Intel
- OpenMP 4.0 (programme parallèle là encore) pour C, C++ et Fortran
- Le langage Go (de Google) dans sa version 1.4.2
- MIPS Release 3, 5 et 6
- L’arrivée de la compilation du Just-In-Time (JIT) pour la bibliothèque libgccjit, même si cette dernière est toujours expérimentale.
Les développeurs intéressés pourront lire sur le site officiel de GCC la très longue liste des améliorations prévues. Nous mettrons évidemment à jour cette actualité pour signaler la disponibilité du compilateur. On notera également que la future version 22 de Fedora intègrera GCC 5.0 par défaut.