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

C++ Discussion :

Le compilateur C++ Clang passe en version 10


Sujet :

C++

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut Le compilateur C++ Clang passe en version 10
    Le compilateur C++ Clang passe en version 10
    Et apporte le support des concepts du C++20

    Le compilateur C, C++ et Objective C open source Clang est maintenant disponible en version 10.0.0 (ainsi que l'infrastructure LLVM dans laquelle Clang est un frontend). L'un des grands ajouts de cette version est le support des concepts, nouveauté du C++20. Vous pourrez l'activer grâce à l'option -std=c++2a. L'ancienne option -fconcepts-ts a été dépréciée. Évidemment, ce n'est pas le seul changement. Voici un résumé :

    • la compilation se fait maintenant dans le même processus que le processus lançant la compilation. L'ancien comportement (un sous-processus séparé) peut être rétabli avec l'option -fno-integrated-cc1 ;
    • le diagnostic des sources a été amélioré :
      • -Wtautological-overlap-compare ajoute un avertissement sur les nombres négatifs et types non entiers,
      • -Wbitwise-conditional-parentheses ajoute un avertissement sur la précédence lorsque les opérateurs bit à bit & et | sont combinés avec l'opérateur ternaire ?:,
      • ajout d'un avertissement sur l'indentation trompeuse qui pourrait induire une mauvaise lecture du code (indentation d'un code, alors qu'il ne se trouve pas dans un bloc) (-Wmisleading-indentation) (c'est une reprise de l'avertissement déjà présent dans GCC),
      • désactivation de -Wbitwise-op-parentheses et -Wlogical-op-parentheses par défaut,
      • ajout d'un avertissement d'utilisation d'un mauvais type lors d'une division reposant sur sizeof() (par exemple, pour trouver la taille d'un tableau statique) (-Wsizeof-array-div) ;
    • ajout de vérification sur le déroulement du programme (Control Flow Guard) spécifique à Windows ;
    • respect de l'élision de copie du C++17 ;
    • correction des listes d'initialisations ;
    • correction de l'opérateur virgule , ;
    • ajout d'une option -fgnuc-version= pour contrôler la valeur des macros __GNUC__ ;
    • ajout de l'attribut __attribute__((target("branch-protection=..."))) ;
    • le comportement de gnu_inline est calé sur celui-ci de GCC lors d'une utilisation sans le mot-clé extern ;
    • amélioration de l'analyseur statique et du sanitizer de comportement indéfini (UBSan) ;
    • amélioration du support des noyaux OpenCL ;
    • ajout de fonctionnalités et amélioration du support d'OpenMP 5 (activable avec l'option -fopenmp-version=50.


    La liste complète des changements de Clang est disponible dans les notes de publication. Aussi, vous pouvez découvrir les changements globaux à LLVM dans cette page dédiée.


    Votre opinion

    Que pensez-vous de Clang ? L'utilisez-vous dans vos projets ? Pourquoi ?


    Source

    Notes de publication
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Membre confirmé

    Homme Profil pro
    Ingénieur DevOps
    Inscrit en
    Août 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur DevOps

    Informations forums :
    Inscription : Août 2009
    Messages : 28
    Points : 498
    Points
    498
    Par défaut
    Ce compilateur est devenu très bon. Je l'utilise en priorité pour les premières erreurs de build afin de mieux cerner mes problèmes.

    Il m'aide avec gcc 10.1 à trouver et à mieux optimiser mes quelques programmes personnels (ex alignement mémoire -> défaut de page).

    Concernant les builds finaux j'utilise gcc car il compile encore mieux mais cela se tient à un cheveu parfois et puis je fais des test régulièrement et c'est incroyable que le projet LLVM ait réussi à en arriver la.

    Je pense que ce projet à vraiment bousculé gcc : comme quoi un peu de concurrence à vraiment aider ce projet à avancer et à rester dans l'air du temps.

    Pour cela j'utilise ce package pour windows : http://winlibs.com/
    Il est régulièrement mis à jour et très simple tout est fusionné dans le répertoire /bin ce qui aide grandement à switcher de l'un à l'autre une fois l'IDE configuré avec des profils de compilateur.
    Je précise qu'il y a les versions 32 bits et 64 bits.
    Et surprise : la version 10 de chacun de ces compilateurs y sont!

    Il manque des outils à la Intel Compiler Studio et ces compilateurs seront encore plus proche de la perfection!!!

    En tout cas : chapeau à eux!

Discussions similaires

  1. Clang passe en version 6.0.0
    Par LittleWhite dans le forum C++
    Réponses: 3
    Dernier message: 12/03/2018, 18h57
  2. Google App Engine passe en version 1.2.5, découvrez les nouvelles fonctionnalités
    Par Gordon Fowler dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 04/09/2009, 17h09
  3. Réponses: 0
    Dernier message: 04/09/2009, 17h09
  4. Yellow Dog Linux passe à la version 6.2
    Par matrix788 dans le forum Distributions
    Réponses: 0
    Dernier message: 30/06/2009, 13h00
  5. Yellow Dog Linux passe à la version 6.2
    Par matrix788 dans le forum Actualités
    Réponses: 0
    Dernier message: 30/06/2009, 13h00

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