Clang / LLVM est-il prêt pour les heures de grande écoute? [fermé]

9

Clang peut-il être utilisé à la place de gcc? Quelle est votre expérience là-dessus? Quels inconvénients y a-t-il encore?

Les performances de compilation sont très meilleures que gcc mais sur les performances du code généré lors de son exécution?

Existe-t-il de bons outils comme front-end (IDE) pour fonctionner sous Linux ou Windows?

EDIT: Je veux dire compilateur C. C ++ ce n'est pas encore si bon.

Maniero
la source

Réponses:

9

Mise à jour: maintenant (2013) Clang est prêt pour les heures de grande écoute et utilisé par certaines entreprises comme Google. Cependant il n'est pas totalement utilisable sous Windows, le travail sur cette plateforme est un "work in progress". LLVM / Clang est actuellement le compilateur par défaut sur MacOSX / XCode mais ce ne sont pas exactement les mêmes versions que celles de LLVM, donc méfiez-vous des différences mineures (principalement la différence des numéros de version).


Bien après la liste de diffusion de Clang Dev , la version du tronc a récemment été construite avec succès:

  • le noyau linux (une révision récente)
  • Qt (avec son processus de construction spécial aussi, apparemment)
  • Chrome (une révision récente)

Donc, je dirais que la prochaine version (2.9) pourrait être un bon compilateur "prêt pour le prime time".

Cependant, si votre projet a une planification et un budget, ce n'est peut-être pas une bonne idée d'essayer un compilateur qui n'est pas encore très testé. Si vous êtes autorisé à expérimenter et à fournir des commentaires à la communauté des développeurs Clang, alors allez-y, c'est gagnant-gagnant pour tout le monde. Sinon, vous devriez peut-être utiliser un compilateur mature et très utilisé comme gcc (dans ses versions récentes) pour avoir un "terrain stable" sur lequel s'appuyer tout en travaillant sur votre projet.

Klaim
la source
Juste pour compléter, ce n'est pas un projet professionnel ... pourtant, c'est presque un projet de 20% de temps de travail.
Maniero
J'aurais essayé clang sur un projet multiplateforme non professionnel. En fait, c'est ce que j'essaie en ce moment.
Klaim
Merci. Ma préoccupation concerne l'avenir du projet. Je vais commencer comme une expérience mais je souhaite faire plus que ça bientôt.
Maniero
S'il s'agit d'un projet à long terme, il pourrait bénéficier de CLang une fois qu'il est stable, correct, optimisé et entièrement en C ++ 0x (si vous utilisez c ++). Parce que son objectif est d'être le compilateur le plus rapide et apparemment, il l'est déjà. Et c'est important.
Klaim
1
Clang construit également iOS, Xcode et à peu près tout ce qu'Apple expédie.
Mike Weller
8

Eh bien, il est certainement prêt pour les heures de grande écoute sur Mac OS X, car de nombreuses applications Mac OS X sont compilées à l'aide de clang. Mais même sur d'autres plateformes, le support C est assez solide, et l'équipe a fait de grands progrès avec le support C ++.

De manière générale, clang compile le code plus rapidement que gcc, mais gcc génère un code mieux optimisé. (Il y a des cas marginaux où ce n'est pas vrai, mais en général, c'est le statut actuel.)

mipadi
la source
Je vois le même problème, Clang est encore trop lié à MacOS / BSD.
Maniero
J'ai essayé CLang sur Windows 7 et cela a fonctionné correctement. Je l'ai aussi essayé sur Ubuntu. Je pense que vos informations ne sont pas à jour, mais c'est logique, car de nombreux efforts de correction multiplateforme ont été déployés au cours des derniers mois. Alors peut-être que ce ne sera pas aussi centré sur le mac une fois la prochaine version sortie.
Klaim
1
@Klaim: Je ne parle pas de Clang en soi , mais de tout l'écosystème. J'ai essayé certaines choses sur les problèmes de voile blanc de Win7, mais juste le compilateur sur cli.
Maniero
J'ai trouvé que Clang a créé un binaire plus rapide que GCC pour mon projet. Cela vaut au moins l'essayer.
Kendall Hopkins
En outre, c'est le compilateur par défaut maintenant pour iOS.
mamcx
3

Vous ne devriez pas vraiment dépendre d'un compilateur spécifique, sauf si vous en avez vraiment besoin. Vous devriez donc être en mesure de changer le compilateur dans un Makefile ou quelque chose et tout devrait bien fonctionner.

Ici, j'utilise principalement le clang pour mes projets de jouets, car il est plus rapide et beaucoup plus important: ses messages d'erreur sont tellement plus clairs. Mais quand j'ai besoin d'utiliser gdb, je compile avec gcc et -ggdb. Donc clang n'est pas encore complet, et ne peut pas être mon seul compilateur.

(BTW: je suis sur x86 gentoo, et les projets sont en C et C ++)

edit : pour clarifier, clang s'exécute plus rapidement (dans certains cas, beaucoup plus rapidement). Je me fiche des optimisations fantaisistes.


la source