IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

La version 13.1 de GCC prend en charge le langage Modula-2 et offre davantage de fonctionnalités pour C23/C++23

Le , par Sandra Coret

22PARTAGES

4  0 
GCC 13.1 est la première version stable de GCC 13 dans le cadre de la mise à jour annuelle de la GNU Compiler Collection

GCC 13.1 est une grosse mise à jour qui ajoute un langage Modula-2 pour ceux qui sont intéressés par la programmation vintage, il y a le nouveau code GCC Rust "gccrs" mais il est désactivé pour la v13.1 parce qu'il est encore en train de cuire, l'analyseur statique de GCC continue d'être amélioré, il y a beaucoup plus de fonctionnalités C23 et C++23, et il y a le support de nombreux nouveaux processeurs x86_64 / RISC-V / AArch64.

GCC 13. 1 fournit également le support initial d'AMD Zen 4 (znver4) pour les processeurs des séries Ryzen 7000 et EPYC 9004, des améliorations du déchargement OpenMP, le support pour l'émission de diagnostics dans le format SARIF basé sur JSON, des ajouts Ada 2022, plusieurs nouveaux avertissements C/C++, le support pour la série AMD Instinct MI200 pour le back-end AMDGCN, le support Ampere-1A, le support Neoverse-V2 / Cortex-X3 / Cortex-X1C / Cortex-A715, et le support pour de nombreux nouveaux processeurs Intel. GCC 13 ajoute des cibles CPU Intel pour Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, et Granite Rapids ainsi que de nouvelles extensions du jeu d'instructions CPU Intel comme AMX-FP16, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, RAO-INT, et AMX-COMPLEX.

Des benchmarks du compilateur GCC 13 (et LLVM Clang 16) seront bientôt disponibles sur Phoronix.


Richard Biener déclare :

Cette version intègre un frontend pour le langage Modula-2 qui était auparavant disponible séparément et pose les bases d'un frontend pour le langage Rust qui sera disponible dans une prochaine version. Pour le langage Rust qui sera disponible dans une future version.

La prise en charge de l'émission du format de débogage STABS a été supprimée. GCC
supporte DWARF dans presque toutes les configurations.

Le frontend C a obtenu la prise en charge de plusieurs fonctionnalités de C23, le frontend C++ pour les fonctionnalités C++23. La prise en charge expérimentale de la bibliothèque standard C++ pour C++20 et C++23 a été améliorée. Pour la famille de langages C, vous pouvez maintenant utiliser -fstrict-flex-arrays[=niveau] pour contrôler le comportement des différents
formes anciennes de spécification de membres de tableaux flexibles.

L'analyseur statique de GCC a été grandement amélioré avec 20 nouveaux types de diagnostics.

L'optimisation du temps de liaison utilise désormais automatiquement GNU makes jobserver lorsque celui-ci supporte les pipes nommés, ce qui est le cas à partir de la version 4.4.
Il n'est plus nécessaire de modifier les fichiers makefiles.

La prise en charge des nouvelles caractéristiques des processeurs de la famille ARM, x86, RISC-V et LoongArch ont été ajoutées. Notamment RISC-V supporte les intrinsèques vectorielles comme spécifié dans la spécification 0.11 et OpenMP.
La spécification 0.11 et le délestage OpenMP/OpenACC pour les appareils de la série AMD Instinct MI200 a été ajouté.

Certains codes compilés avec succès avec d'anciennes versions de GCC peuvent nécessiter des changements de source.
Source : GCC

Et vous ?

Qu'en pensez-vous ?

Voir aussi :

GCC se dote d'un nouveau frontend pour le langage de programmation Rust, une version préliminaire de ce compilateur appelé "gccrs" devrait être incluse dans GCC 13

La première version officielle de GCC 13 est sur le point d'être publiée, mais n'inclura pas gccrs, le frontend pour le langage Rust, le compilateur gccrs ne serait pas prêt pour du "vrai" code Rust

GCC 13 prend désormais en charge Modula-2, le descendant de Pascal, il supporte également le langage Rust

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

Avatar de VBurel
Membre averti https://www.developpez.com
Le 09/05/2023 à 9:12
L'intérêt premier du 'C' est son caractère universel (compilable sur toute plateforme).
Donc ceux qui programment en 'C' aujourd'hui utilisent le coeur du langage (souvent 1990 compatible) pour pouvoir conserver un code opérationnel (parfois sur plusieurs décennies).
et n'ont que faire des améliorations syntaxiques créant des points d'incompatibilité...

En conclusion, je ne vois pas l'intérêt de faire évoluer le 'C' vers le 'C++'. Laissons chacun utiliser le langage qu'il préfère.
2  0 
Avatar de foetus
Expert éminent sénior https://www.developpez.com
Le 12/05/2023 à 8:15
Citation Envoyé par selmanjo Voir le message
Enfin, un langage C qui grandit !
Justement, c'est au jugé de chacun
Moi, je pense que ce n'est pas avec des fonctionnalité du C++ moderne (nullprt, constexpr, énumération typée, …) que le C grandit.

Si tu veux que le C grandit, il faut d'autres ajouts (*) : ajout de l'Unicode (avec 1 vrai type caractère/ chaîne de caractères transparent), ajout des containers (table de hachage, tableau associatif, …), ajout des "threads", support du json, …
Là, j'ai l'impression que c'est + pour aider l'intégration du C++ moderne dans des projets C (ou l'inverse, l'intégration du C dans des projets C++ moderne)
Si les langages comme Python ou JavaScript ont "le vent en poupe", c'est pour leur simplicité d'utilisation et leur "très large possibilité" … même si je sais que le C restera du C (les tests, les casts, les conversions, …)

Édit : On peut aussi rajouter Linux qui commence à utiliser/ tester Rust. C'est bien que le C pose des questions sur "son utilisation".

Mais pour ces ajouts, (*) on le sait depuis 2011 : que ce soit le C++ ou le C, ces langages n'auront jamais 1 bibliothèque standard étendue/ complète.
L'intégration des threads dans le C++11, fut trop léger (trop bas niveau). Pareil pour l'Unicode : c'est juste en gros MBCS.

Après, j'ai lu que le GCC a été critiqué pour son immobilisme face à LLVM : donc peut-être des mises à jour pour dire "GCC fait quelque chose"
2  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 10/05/2023 à 7:18
Ce n'est pas forcément le cas de tout le monde. De nouvelles fonctionnalités, tu les utilise ou pas.
1  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 29/04/2023 à 19:14
Modula-2 ? Qui utilise encore cela aujourd'hui, je suis curieux.
0  0 
Avatar de selmanjo
Membre régulier https://www.developpez.com
Le 12/05/2023 à 0:54
On aime les nouvelles fonctionnalités.
Enfin, un langage C qui grandit !
Quand on est débutant en langage C, c'est un véritable régal.😋

*(void *) 0xcc00leee;
0  0