Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

GCC 4.8 sort et marque la fin de la migration de son code de C vers C++
La suite de compilateurs gagne en performances

Le , par Hinault Romaric, Responsable .NET
Une nouvelle version de la suite de compilateurs open source multiplateforme GCC (GNU Compiler Collection) est disponible.

La version 4.8 du compilateur marque une étape importante pour ses développeurs, car ceux-ci ont finalisé la migration de son code source de C vers C++.

Pour rappel, en juillet 2012 les développeurs de GCC avaient annoncé leur volonté de totalement réécrire le compilateur en C++, avec pour objectif de maintenir le code de GCC compréhensible et facilement maintenable.


La nouvelle version C++ de GCC apporte des améliorations de performance, une optimisation du code, le nouveau détecteur d’erreurs mémoires AddressSanitizer et les nouveaux outils ThreadSanitizer.

Le code source de GCC 4.8 peut être téléchargé à partir de plusieurs miroirs et du serveur SVN du projet sous les termes de la licence GPLv3. Les développeurs qui souhaitent construire leur propre version de l’outil devront désormais utiliser un compilateur C++ compatible C++ 2003.

Il faut noter que la suite de compilateurs GCC permet de transformer le code source en langage machine pour plusieurs langages de programmation dont C, C++, Java, Objective-C, Ada et même Fortran 95.

Télécharger GCC 4.8

Source : site du projet

Et vous ?

Que pensez-vous de cette première version C++ de GCC ?

L'adoption de C++ au détriment de C est-elle meilleure pour le compilateur ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de germinolegrand germinolegrand - Membre expert https://www.developpez.com
le 26/03/2013 à 11:24
J'attends le MinGW associé pour pouvoir le tester
Avatar de iNaKoll iNaKoll - Membre régulier https://www.developpez.com
le 26/03/2013 à 16:23
Avatar de Shaidak Shaidak - Membre actif https://www.developpez.com
le 26/03/2013 à 20:05
Bonne nouvelle pour ma part puisque j'attends cette version depuis un moment. J'ai déjà recompilé plusieurs bibliothèques et projets pour tester et jusqu'à présent tout se passe en douceur.
Le seul bémol serait le non support des threads du C++11 pour windows sans passer par posix mais bon, on ne peut pas tout avoir .
Pour ce qui est de l'adoption du C++ pour le compilateur je présume que s'ils l'ont fait ça ne doit pas être une si mauvaise idée .
Avatar de gbdivers gbdivers - Inactif https://www.developpez.com
le 27/03/2013 à 10:09
Citation Envoyé par Shaidak  Voir le message
Le seul bémol serait le non support des threads du C++11 pour windows sans passer par posix mais bon, on ne peut pas tout avoir

POSIX sur Windows ? Je croyais que c'était dispo qu'avec des libs supplémentaire comme cygwin, ce que gcc n'utilise pas (je crois).
Si j'ai bien compris, gcc n'a pas réimplémenté les threads, mais utilise un binding vers des libs (POSIX sur linux, l'API système sur Windows)

(HS : d'ailleurs, en parlant de threads C++11, Emmanuel Deloget a commencé une série d'articles sur le sujet, je conseille la lecture : http://blog.emmanueldeloget.com/inde...ag/concurrence)
Avatar de Shaidak Shaidak - Membre actif https://www.developpez.com
le 27/03/2013 à 14:15
Citation Envoyé par gbdivers  Voir le message
POSIX sur Windows ? Je croyais que c'était dispo qu'avec des libs supplémentaire comme cygwin, ce que gcc n'utilise pas (je crois).
Si j'ai bien compris, gcc n'a pas réimplémenté les threads, mais utilise un binding vers des libs (POSIX sur linux, l'API système sur Windows)

C'est exact, je ne parlais déjà plus de gcc à ce niveau mais des builds de mingw mentionnés dans le post précédent. Navré de ne pas avoir été suffisamment clair .
Avatar de gbdivers gbdivers - Inactif https://www.developpez.com
le 27/03/2013 à 14:38
J'ai l'habitude d'utiliser gcc compilé pour windows : http://www.equation.com/servlet/equation.cmd?fa=fortran mais je sais pas très bien les différences avec mingw
Avatar de Emmanuel Deloget Emmanuel Deloget - Expert confirmé https://www.developpez.com
le 28/03/2013 à 10:25
Citation Envoyé par Shaidak  Voir le message
Le seul bémol serait le non support des threads du C++11 pour windows sans passer par posix mais bon, on ne peut pas tout avoir.

pthread sur Windows, ce n'est qu'une API qui en encapsule une autre. Les différences de performance se font donc sur la création des threads, et pas sur l'exécutions de celle-ci (et encore, la perte de performance est vraiment minime). Sur de nombreux points, l'API posix ne fait qu'un mapping one-to-one avec l'API Windows (thread, mutex, sémaphores,...). Par contre, posix offre des possibilités que ne sont pas disponibles via l'API sans passer par des circonvolutions un peu extrêmes (lire : c'est tout à fait possible, mais c'est compliqué à mettre en oeuvre) : local thread storage (LTS ; à ne pas confondre avec le thread_local de C++11), once, spin lock, condition variables, read/write lock, contrôle du scheduler...

Pour ceux qui sont intéressés, les sources de pthread pour Windows sont visible ici : http://sourceware.org/cgi-bin/cvsweb...pthreads-win32

Ceci étant dit, au niveau C++11, le fait est que l'implémentation proposée par Visual C++ nécessite au final la réécriture d'une partie de pthread, car la sémantique des threads proposée par le standard est celle des threads posix et non pas celle des threads natives Windows.

De son coté, g++ fait sensiblement la même chose : l'API thread est encapsulée dans une API interne appelée gthread, qui passe par pthread quand cette librairie est disponible, ou par les threads natives sur les systèmes sans pthread. Du coup, l'implémentation Visual C++ et celle de g++ on sensiblement les même performances.

Au niveau des sources (pour vous faire une idée), ça se passe dans la libgcc :



Donc : n'ayez pas peur des threads g++ sous Windows
Avatar de Shaidak Shaidak - Membre actif https://www.developpez.com
le 28/03/2013 à 13:12
Citation Envoyé par Emmanuel Deloget  Voir le message
pthread sur Windows, ce n'est qu'une API qui en encapsule une autre.
...
Donc : n'ayez pas peur des threads g++ sous Windows

Je ne faisais que constater qu'il s'agissait d'un binding, loin de moi l'idée d'en avoir peur sinon je n'aurais pas téléchargé la version posix de mingw64 .
En ce qui concerne les performances je te fais confiance vu que tu as l'air d'avoir plus d'expérience à ce niveau et que cela va dans le sens de mes lectures (mon utilisation de la bibliothèque Pthreads sous windows date d'il y a un moment et ça n'était pas vraiment poussé). Ceci étant, cette version sera peut-être pour moi l'occasion de tester cet apsect et de pouvoir éliminer des dépendances à boost ou autres.
Avatar de minnesota minnesota - Membre émérite https://www.developpez.com
le 29/03/2013 à 15:58
Citation Envoyé par gbdivers  Voir le message
J'ai l'habitude d'utiliser gcc compilé pour windows : http://www.equation.com/servlet/equation.cmd?fa=fortran mais je sais pas très bien les différences avec mingw

En ce qui concerne gcc/mingw, j'utilise habituellement les versions de tdm-gcc, (je suis actuellement en 4.6.1), j'ai un instant était tenté par MinGW Distro de nuwen.net, et là je zyeute sur mingw- w64(32), mais y'a de fortes chances que je finisse par compiler mes propres versions... en tout il me faut passer de C++0x à C++11, et la 4.8 arrive à point nommé.
Offres d'emploi IT
Chef projet big data - pse flotte H/F
Safran - Ile de France - Évry (91090)
Ingénieur analyste programmeur (H/F)
Safran - Auvergne - Montluçon (03100)
Ingénieur intégration, validation, qualification du système de drone H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil