Journal Clang-C++ a mangé du lion !

Posté par (page perso) .
Tags : aucun
10
14
oct.
2009
Bonjour,

Récemment, une dépêche est sortie pour annoncer les gagnants des livres, et je fus cité pour mon journal LLVM dans un gestionnaire de paquets ?. Je remercie encore une fois toute l'équipe de Linuxfr pour m'avoir désigné.

Petit rappel : LLVM, pour Low-Level Virtual Machine, est une "machine virtuelle" capable de compilation «Juste-à-temps» d'un pseudo-code généré par des compilateurs spéciaux. Dans mon journal, je proposais d'utiliser LLVM pour empaqueter des applications en prenant moins de place, indépendant de l'architecture, et surtout pour qu'une dernière phase de très forte optimisation soit faite du côté client. Clang est un compilateur C et C++ capable de sortir du pseudo-code LLVM, et est conçu pour être utilisé avec LLVM.

À l'époque, c'est à dire il y a deux mois, j'avais mis le projet en attente car, bien que le support du C par Clang soit très bon, celui du C++ était encore très très mauvais.

Aujourd'hui, par curiosité, je décide de me rendre à nouveau sur la page Clang C++ Support. Je ne me souviens plus très bien de comment elle était la dernière fois que je l'ai vue, il y a deux mois. La seule chose que me rappelle était son état désolant : «Au début, c'est vert. Puis le reste est orange, puis blancs et le reste est rouge. Plein de blanc, plein de rouge, quasi rien de supporté».

Je retourne donc sur cette page, m'attendant à retrouver cette marrée de rouge et de blanc. Je défile donc : «Le vert, comme d'habitude, la petite zone blanche comme avant, le gros bloc de vert qui fait plaisir à voir, encore du vert, ah tiens, un peu de orange, mais plein de vert encore, une zone vert foncé (donc presque supporté), un peu de vert, une petite zone rouge, une zone modérée de blanc, puis les spécifications C++0x».

Vous voyez la différence ? Dommage que je n'ai pas de sauvegarde, mais je suis quasiment certain que la quantité de vert a quadruplé, et que plein de blanc a été remplacé par du vert, ou du orange. Il n'y a quasiment plus de rouge, et juste une dernière zone de blanc.

Je n'ai pas encore testé (ce machin prend quand-même deux jours à compiler sur mon petit Atom), mais je vais le faire très bientôt. Le jour où Clang-LLVM me compilent Qt sans erreur, c'est ok, je l'intègre à mon gestionnaire de paquets ! Surtout que Clang est nettement plus rapide que GCC, donc je pourrai enfin compiler tout KDE plusieurs fois par jour, au lieu de devoir réserver une semaine complète.

Chapeau donc à l'équipe de développement de Clang. Ils ont mangé du lion, j'en suis presque certain. Ou alors, ils ont reçu l'aide de plein de gens. Ces temps-ci, je félicite beaucoup les développeurs du Libre, et avec la dépêche sur Xorg, je vais encore le faire.

Serait-on dans une période particulièrement faste, ou alors c'est moi ? C'est toujours comme ça, après un GSoC ?

C'était le journal qui ne sert à rien du mercredi ©®
  • # Apple ?

    Posté par . Évalué à 4.

    Si je me trompe pas beaucoup de développeurs de LLVM travaillent pour Apple non ?
    Du coup ça peut expliquer le développement très actif.
    • [^] # Re: Apple ?

      Posté par . Évalué à 5.

      T'as quand même une bonne moitié de contributeurs universitaires dans LLVM.
      Les employés d'Apple doivent également partager leur temps dans apple-gcc (ben oui, tant que Clang n'est feature-complete, faut bien faire évoluer le compilo existant)
    • [^] # Re: Apple ?

      Posté par (page perso) . Évalué à 2.

      Ce qu'il faut voir aussi, c'est qu'au départ, la priorité était au support du C, et tant qu'il n'était pas assez bon, y'avait pas tellement de raison de bosser sur le C++.

      Aujourd'hui, le support du C est raisonnable, donc c'est assez logique que la main d'oeuvre arrive sur le C++.
  • # Si, si ça avance

    Posté par . Évalué à 5.

    Le support de C++ a bien avancé dans Clang même si ça n'a pas "quadruplé" (où alors tu n'as pas visité la page depuis très longtemps)
    Si tu suis la liste de commits, tu remarqueras un léger coup d'accélérateur depuis fin 2008 notamment de la part des employés d'Apple (dont Douglas Gregor, le plus gros commiter).
    Apple pousse de plus en plus llvm dans sa suite de développement et clang a fait son apparition avec l'excellent clang-analyzer (qui a eu un très grand succès auprès des développeurs Fedora :o) ).

    llvm-gcc est une solution bâtarde dont le principal intérêt est de tester le backend llvm, et Apple cherche à faire évoluer sa suite de développement en intégrant analyse statique de sources & cie. Le seul frein à la généralisation de Clang est justement le C++, donc ça ne me surprend pas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.