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 !

GCC : la version 7.5 du compilateur libre est disponible
Avec plus de 215 corrections de bogues par rapport à GCC 7.4

Le , par Bill Fassinou

47PARTAGES

14  0 
Richard Biener, ingénieur GCC Toolchain SUSE, a annoncé cette semaine la disponibilité de la version 7.5 du compilateur. La version GCC 7.5 apporte plus de 215 corrections de bogues par rapport à GCC 7.4. Il n'y a pas de nouvelles fonctionnalités dans GCC 7.5. Les nouvelles fonctionnalités du compilateur portent sur GCC 10, qui fera son voyage inaugural au début de 2020. La dernière version de GCC est la version 9.2 sortie en août dernier.

Écrit à l’origine par Richard Stallman, le logiciel GCC (GNU Compiler Collection) est le compilateur de référence du monde du logiciel libre. Il accepte des codes sources écrits en C, C++, Objective-C, Fortran, Java, Go et Ada et fonctionne sur une multitude d’architectures. Il est utilisé pour le développement de la plupart des logiciels libres. Le projet GCC a modifié son schéma de version en août 2014 pour faire coïncider l’année 2015 avec la version GCC 5 et ainsi de suite pour donner : 2016 → GCC 6, puis 2017 → GCC 7. Ainsi, nous devrions avoir GCC 10 en 2020.

D’autres programmeurs utilisent encore des versions inférieures aux versions de cette année. Pour ceux qui sont toujours sur la série GCC 7, l’équipe du compilateur a publié GCC 7.5 cette semaine comme la dernière version de la branche GCC 7. GCC 7.5 est une version corrigée de la branche GCC 7 contenant des correctifs importants pour les régressions et les bogues graves dans GCC 7.4 avec plus de 215 bogues corrigés depuis la version précédente.


D’après les précisions de Richard Biener, à partir de maintenant, GCC 7 ne recevra plus de corrections. Il a aussi précisé que GCC continue d'être maintenu sur les branches 8 et 9 et sur le tronc de développement. La version 8.1 est sortie en mai 2018. Jakub Jelinek, développeur chez Red Hat avait expliqué que GCC 8.1 représentait une version majeure apportant de nouvelles fonctionnalités importantes non disponibles dans GCC 7.x et les versions précédentes de GCC.

À ce stade, le front-end C++ a apporté un support expérimental pour certaines fonctionnalités de la norme C++2a avec les options -std=c++2a et -std=gnu++2a. La version 8.2 a été publiée en juillet 2018 pour des raisons de correction de bogues. Dans la version 8.2, l'équipe GCC a corrigé une centaine de bogues tout en apportant d'autres améliorations. Au niveau des améliorations générales, les problèmes de performance LTO (link-time optimization ou optimisation à l'édition des liens) dus à un débordement dans l'algorithme de partitionnement lors de la création de gros fichiers binaires ont été corrigés.

Les corrections ont continué dans la branche 8.x avec la sortie de la version 8.3 du compilateur en février dernier. Cette version a été une version de correction de bugs contenant des correctifs pour les régressions dans GCC 8.2 par rapport aux versions précédentes de GCC. L’équipe de GCC a lancé une nouvelle branche le 3 mai en publiant la version 9.1 de GCC qui a été présentée comme une mise à jour majeure du compilateur contenant d’importantes nouvelles fonctionnalités non disponibles dans GCC 8.x ou dans ses versions antérieures.

Dans cette version, le support pour la prise en charge de C++ 17 qui est introduite depuis la version 8.1 du compilateur n’est plus expérimental. Ainsi, la prise en charge de C++ 17 est désormais effective. Le frontal C++ implémente l’ensemble du langage C++ 17 et le support de la bibliothèque standard C++ est presque terminé. Le front-end et la bibliothèque C++ ont également de nombreuses autres fonctionnalités brouillonnes de C++ 2a. En plus, GCC a une nouvelle interface pour le langage D. GCC 9.1 a aussi apporté la prise en charge partiellement d'OpenMP 5.0.

GCC 9 représente une version solide du compilateur qui a apporté des fonctionnalités et des améliorations très importantes afin d’améliorer les performances des développeurs. La version GCC 9.2 a été publiée en août passé et la version 10 du compilateur est prévue pour 2020.

Source : GNU

Et vous ?

Qu'en pensez-vous ?

Voir aussi

La version 9.1 du compilateur GCC est disponible et prend en charge le C++17. Plusieurs autres fonctionnalités sont ajoutées

La version 9.1 du compilateur GCC est disponible et prend en charge le C++17. Plusieurs autres fonctionnalités sont ajoutées

GCC 8.1 est disponible, la nouvelle version majeure du compilateur libre vient avec un support expérimental de C++2a et d'autres fonctionnalités

GCC 8.2 est disponible. Cette mise à jour du compilateur libre corrige une centaine de bogues

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

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 17/11/2019 à 10:24
Citation Envoyé par matthius Voir le message
Il va sans doute y avoir plein d'améliorations en C au fur et à mesure qu'on saura sécuriser les processeurs C en changeant les compilateurs C en fonction.
Je ne comprend pas du tout le sens de cette phrase. C'est quoi un processeur C ?

Pour ce qui est de la sécurisation du C, il n'y a pas de miracles possibles. Le langage est de par sa conception un des langages les moins sécurisés, notamment coté mémoire et même si l'outillage annexe permet de limiter les risques, le langage en lui même n'est juste pas adapté pour ça.
2  1 
Avatar de SimonDecoline
Membre expert https://www.developpez.com
Le 18/11/2019 à 21:32
Citation Envoyé par redcurve Voir le message
Il faudrait refondre les 400 fonctions de base de C pour régler le problème et encore vu que les compilateurs ajoutent des failles liées aux diverses optimisations effectués
Je ne vois pas le rapport. Ce n'est pas parce que le langage n'apporte pas de sécurisation automatique que les libs sont codées n'importe comment. Quant aux compilateurs soit-disant bourrés de failles, tu as des sources de ce que tu avances ? Il me semble que le langage C est justement un des rares langages à avoir un compilateur vérifié formellement (https://fr.wikipedia.org/wiki/CompCert).
1  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 18/11/2019 à 19:55
Citation Envoyé par Uther Voir le message
Je ne comprend pas du tout le sens de cette phrase. C'est quoi un processeur C ?

Pour ce qui est de la sécurisation du C, il n'y a pas de miracles possibles. Le langage est de par sa conception un des langages les moins sécurisés, notamment coté mémoire et même si l'outillage annexe permet de limiter les risques, le langage en lui même n'est juste pas adapté pour ça.
Il faudrait refondre les 400 fonctions de base de C pour régler le problème et encore vu que les compilateurs ajoutent des failles liées aux diverses optimisations effectués
0  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 19/11/2019 à 10:13
Rien dans le langage C et sa bibliothèque standard n'a été pensé à l'origine pour la sécurité. Ca n'a rien a voir avec la qualité de l'implémentation mais la conception. Le langage C été crée avec la vision que le programmeur contrôlait parfaitement tout de son programme à la perfection. Il est notamment responsable d'éviter les près de 200 cas indéfinis qui peuvent provoquer des failles et comportement erratiques. L'utilisation mémoire n'est absolument pas contrôlée.

L'expérience a prouvé que, même avec les meilleurs programmeurs et des procédures de contrôle strictes, dès que l'on atteint un minimum de complexité, ça pose des problème de sécurité.

Les compilateurs C ne sont pas vraiment le problème. La conception du langage étant ce qu'elle est, ils ne pourront jamais garantir le niveau de sécurité de Ada ou du Rust. Mais ils font beaucoup pour limiter la mauvaise utilisation du langage. Tous les compilateurs ont des bugs, mais les compilateurs C n'ont pas vraiment plus de bugs que les autres.
0  0 
Avatar de matthius
Inactif https://www.developpez.com
Le 16/11/2019 à 21:37
Il va sans doute y avoir plein d'améliorations en C au fur et à mesure qu'on saura sécuriser les processeurs C en changeant les compilateurs C en fonction.
0  2