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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GCC Discussion :

GCC 4.8 sort et marque la fin de la réimplémentation de son code en C++


Sujet :

GCC

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut GCC 4.8 sort et marque la fin de la réimplémentation de son code en C++
    GCC 4.8 sort et marque la fin de la réimplémentation de son code en C++
    La suite de compilateurs open source gagne en performance et en optimisation

    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 souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Points : 3 892
    Points
    3 892
    Par défaut
    J'attends le MinGW associé pour pouvoir le tester

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2006
    Messages : 48
    Points : 97
    Points
    97

  4. #4
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 148
    Points : 232
    Points
    232
    Par défaut
    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 .

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    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)

  6. #6
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 148
    Points : 232
    Points
    232
    Par défaut
    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 .

  7. #7
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    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

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    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
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  9. #9
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 148
    Points : 232
    Points
    232
    Par défaut
    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.

  10. #10
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    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é.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/02/2015, 15h46
  2. Google sort la première bêta du SDK de Dart et son éditeur
    Par Hinault Romaric dans le forum Dart
    Réponses: 17
    Dernier message: 27/06/2013, 13h42
  3. petit jeu pour les fins limiés : Quizz où est le code
    Par crazykangourou dans le forum Langage
    Réponses: 10
    Dernier message: 08/10/2008, 17h29
  4. marque fin de ligne
    Par akremb22 dans le forum WinDev
    Réponses: 6
    Dernier message: 13/12/2007, 15h17
  5. [ MFC] Marque fin de chaine pour CDC::TextOut
    Par Denn's dans le forum MFC
    Réponses: 3
    Dernier message: 05/06/2007, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo