LLVM / Clang. U Mad GCC?

logo-llvm

J'ai dû écrire un article sur cette polémique publié dans LWN. Et c'est que le compilateur LLVM / Clang commence à inquiéter sur les listes de diffusion GNU.

Il était une fois un compilateur appelé GCC qui, avec ses plus de 25 ans d'existence, continue à avoir un grand respect pour sa licence libre et copyleft, en plus d'être le compilateur utilisé par le noyau Linux et jusqu'à récemment par FreeBSD. Quiconque voulait apprendre à développer en C ou C ++, utilisait sûrement GCC quelle que soit l'architecture de sa machine. Cependant, GCC a souffert d'un certain secret, en partie à cause de la philosophie de ceux qui l'ont créé et en partie à cause de son développement de style cathédrale, où un contrôle fort a été exercé sur ce qui se passait à GCC et ce qui n'était pas (maintenant pas tellement mais existe toujours), qui a ouvert la voie à la construction de front-ends et d'autres fonctionnalités que GCC a finalement adoptées. Pour en savoir plus sur la courte histoire de EGC, Je laisse ce lien.

Pendant ce temps, à l'Université de l'Illinois à Urbana-Champaign vers 2002, un projet de recherche a conduit à la création d'un compilateur créé de manière modulaire afin que ses éléments individuels tels que les front-end, les générateurs de code et optimiseurs. Ils l'appellent LLVM car au début, c'était une machine virtuelle de bas niveau mais cela a fini par être plus que cela. Et ils l'ont autorisé avec sa propre licence, qui était similaire à BSD (gratuit, non copyleft, conforme GPL). Des années plus tard, Apple s'est intéressé à LLVM et l'a adopté pour ses systèmes d'exploitation iOS et OS X, ainsi que pour la construction (et version sous la même licence gratuite que LLVM) votre propre front-end appelé Bruit, pour C et Objectif C. L'inconvénient est la possibilité d'inclure LLVM / Clang dans des programmes propriétairesC'est le cas du compilateur CUDA de NVIDIA et de l'IDE XCode d'Apple.

Mais un jour, il y a quelques semaines sur la liste de diffusion emacs, au milieu d'une discussion sur un mode de saisie semi-automatique conçu pour Clang, Dimitry gutov dit: «On m'a dit il y a longtemps que Richard Stallman détestait tellement Clang qui était opposé à l'inclusion de code qui l'utilise dans emacs. " Cela a conduit plus tard à une autre discussion sur le clang et le logiciel libre où Richard lui-même clarifie: «Notre politique est de n'accepter les modifications d'aucun paquet GNU qui peut fonctionner avec Clang mais pas avec GCC. Emacs n'encouragera pas les gens à quitter GCC. Lorsque nous en aurons l'occasion, nous encouragerons l'utilisation de GCC sur Clang. "

Peu de temps après, apparaît Eric Raymond (célèbre pour avoir créé La Cathédrale et le Bazar, avec la définition d'Open Source) qui, chantant à moitié la joute, demi-pêche à la traîne, va et dit que LLVM / Clang était une réponse à la résistance du projet GCC à être plus interopérable, et que Clang surclasse GCC sur plusieurs mesures techniques. Selon le (et montrant une vidéo à partir d'une conférence Chandler Carruth), les développeurs de Clang ont demandé à Stallman s'il y avait une raison pour laquelle les frontaux GCC ne pouvaient pas être transformés en bibliothèques dynamiques pouvant être liées par n'importe quel programme souhaitant analyser le code source. Stallman a répondu que l'un des objectifs de GCC était evitar programmes propriétaires pour utiliser l'une de ses parties, afin d'éviter délibérément diverses choses éventuellement ils auraient facilité une telle utilisation …… .. ce qu'ils considéraient une réponse inutile. Ils voulaient créer des IDE et d'autres outils qui partagent le code du compilateur et GCC ne les laisserait pas, alors pour créer Clang et envoyer GCC à / dev / null. Développeurs GCC ils ont sauté sur lui en riant pour ne pas être pleinement informé (avec le fait que Clang surpasse GCC dans plusieurs mesures techniques). Au milieu de la putain, Stallman apparaît en disant que LLVM est un terrible retour en arrière, pas pour des raisons techniques mais uniquement pour sa licence sans copyleft qui profite à Apple.

Ensuite, l'article de LWN consacre de longs paragraphes à la modularité de GCC et aux mesures qu'ils ont intentionnellement incluses pour rendre difficile l'utilisation de sa représentation interne par des programmes propriétaires, sur le Exception de la bibliothèque d'exécution GCC ce qui résout la question de savoir si GCC doit compiler du code propriétaire. Je voudrais également ajouter le cas de FreeBSD (la version 10 récemment publiée, remplace GCC par LLVM / Clang comme compilateur principal). La dernière version de GCC qu'ils ont utilisée était 4.2.1 (le dernier avec licence GPLv2) et ni fou ils allaient le mettre à jour vers une version avec GPLv3 (ils veulent juste un BSD sans GPL), donc LLVM / Clang vient à eux comme un gant.

Bref, une autre bataille dans l'éternelle guerre GPL contre BSD.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   pandev92 dit

    Pas intéressant, laissons les développeurs s'entre-tuer.

    1.    éliotime3000 dit

      Et donc, nous avons un autre travailleur mécontent pour travailler chez Microsoft et Apple.

    2.    cadres dit

      Vous avez raison, je soutiens que le logiciel est toujours gratuit afin que TOUT HUMAIN puisse le lire (c'est la seule raison pour laquelle je supporte et utilise Linux), mais à la fin, les programmeurs ont le dernier mot.

  2.   f3niX dit

    Bon article, j'aime toujours les articles sur le diazépan, ils sortent de l'ordinaire.

  3.   Germán dit

    La vérité est que c'est une pensée très stupide de la part de ceux de gcc, c'est plus au moment où le créateur de LLVM a offert le code à ceux de gcc et ils l'ont rejeté, CLang est conçu pour que les IDE puissent vérifier le code à temps réel qui profite non seulement aux applications privées, mais aussi aux applications open source comme KDevelop ou QtCreator en dehors des éditeurs avancés comme Vim, Kate, emacs, etc. Je suppose que quelque chose de similaire finira par se produire avec egcs et ils l'absorberont sous licence gpl dès que linux pourra être compilé avec ceci comme cela s'est produit avec egcs

    1.    éliotime3000 dit

      S'ils ne peuvent pas améliorer l'EGCS et / ou en faire le meilleur remplacement pour CLang, je m'en vais à CLang et LLVM.

    2.    xlash dit

      Stupide? Je ne pense pas. Le fait que GCC ne puisse pas être utilisé pour créer des logiciels propriétaires est un moyen de donner la priorité au développement de logiciels libres et de ne pas en profiter pour le développement de logiciels propriétaires. C'est un moyen de défendre le logiciel libre donc il doit être soutenu. M. Stallman a absolument raison, c'est un pas en arrière. De plus, des entreprises comme Apple, comme mentionné dans l'article, bénéficieront de LLVM / Clang sans contribuer absolument à la communauté et sans donner aucun crédit au projet.

      Salut les gens!

      1.    Germán dit

        GCC et LLVM / CLANG peuvent compiler des logiciels propriétaires, ce qui ne peut pas être modifié est GCC et ne pas faire connaître ces modifications. LLVM / CLANG peut être ré-licencié en gpl, la plus grande différence entre ceux-ci est que pour LLVM / CLANG ils doivent utiliser C ++ et ceux de GCC ne voulaient pas le voir ou le peindre jusqu'à récemment. De mon point de vue, au lieu de réécrire GCC en C ++ comme ils le font maintenant, ils auraient dû porter les architectures que GCC prend en charge et LLVM / CLANG ne le fait pas et les langages vers ce dernier et avoir un code plus propre et maintenir leur propre branche de développement

    3.    Arthur dit

      Je pense que votre opinion n'est pas fondée, au-dessus des problèmes techniques, il y a le logiciel libre. C'est ce qui préoccupe le plus M. Stallman. D'après ce que je vois le mieux pour vous est la partie technique et vous avez raison, mais quand vous n'avez pas le choix parce qu'une entreprise a repris votre technologie, vous y réfléchirez à deux fois.
      Par contre avec GCC vous pouvez vérifier le code en temps réel, comme je le répète, votre opinion n'est pas fondée.

      1.    Germán dit

        1-Si GCC crée un fork de LLVM / CLANG et de la société et le renouvelle en GPL, tout le code qu'ils incluent dans ledit fork sera sous GPL et les LLVM devront demander la permission de le renouveler et de l'inclure dans leur repo. Je vous informe que les licences de type MIT (XORG, WAYLAND, ...) ou BSD (FreeBSD, ...) sont aussi permissives que la LLVM
        2 - Avec GCC il n'est pas possible d'implémenter un auto-complétion de code ou un vérificateur de code en temps réel à travers une librairie qu'il fournit contrairement à CLANG
        3 - LLVM est une solution supérieure à GCC non seulement technique mais aussi en efficacité le binôme LLVM / CLANG prend la moitié du temps à compiler

  4.   Ñandekuera dit

    Vive GNU et la GPL!

    1.    éliotime3000 dit

      Voyez s'ils peuvent faire leur propre CLang avec de l'alcool, des jeux de hasard et des salopes.

      1.    Ñandekuera dit

        hein?

    2.    éliotime3000 dit

      Non, Richard. Le fait que SELinux soit l'œuvre de la NSA ne signifie pas que tout autre outil sous licence non GPL (tel que LLVM / CLang) provient de la même matrice.

      Sérieusement, je pensais qu'il y avait un motif complètement rationnel à cela, mais je vois que la FSF est plus conservatrice que Satoru Iwata ou n'importe quel membre de la MAFIAA.

      1.    L'équipe dit

        On voit que vous n'avez pas lu la liste de diffusion et que vous êtes resté avec ce que l'article dit entre les lignes.
        Des arguments rationnels ont été donnés, même des options techniques, mais de toute façon, il est très courant de lire le titre et de sauter directement dans les commentaires.

  5.   pauvre taku dit

    Ñuhhhh GCC + Emacs. Si tu veux survivre prends ma main (stallman)

  6.   animé dit

    Les puritains vont m'excuser, mais je dois le dire: je n'ai jamais aimé Stallman, et cela semble être le cas pour le reste de mes jours.

    Vous ne pouvez pas être si fermé d'esprit. Il a l'air d'un fanatique, d'un fou, et oui, autant de respect qu'il mérite pour ses réalisations et ce qu'il représente, je ne l'aime pas.

    1.    Zironide dit

      Je suis d'accord. Au début je l'aimais beaucoup, mais maintenant il semble trop extrême ...

      1.    Canales dit

        Extrémiste ... fou ... fanatique ... oui, cela dépend de la façon dont vous le regardez. Pour moi, M. Richard Stallman est une personne dotée d'une grande conscience sociale. Le sens de sa vie a été et est d'améliorer la société, pas les logiciels. Il y a la différence entre le logiciel libre / logiciel open source, en ce que le premier recherche les problèmes sociaux et le second les problèmes techniques.

    2.    xlash dit

      Elav mate, ce n'est pas une question d'être puritain ou pas. Le logiciel libre est né en tant que mouvement social et c'est ce que défend M. Stallman, comme beaucoup.

      Vous ne pouvez pas être si fermé d'esprit. Il a l'air d'un fanatique, d'un fou, et oui, peu importe le respect qu'il mérite pour ses réalisations et ce qu'il représente, je ne l'aime pas. "

      En fait, c'est le contraire. L'objectif est que n'importe qui puisse accéder librement au logiciel sans que personne ne restreigne son utilisation par des modifications propriétaires et, comme je l'ai dit dans mon commentaire précédent, ils priorisent et mettent l'accent sur le développement du logiciel libre.

      Je pense que vous confondez fanatisme avec un autre terme. Le fanatisme tue, comme l'histoire l'a bien montré. Le terme que vous recherchez peut être radical mais sans ce radicalisme, le logiciel libre et le mouvement GNU / Linux n'existeraient pas, du moins tel que nous le connaissons aujourd'hui. En ce qui concerne la chose folle, je ne discuterai pas avec vous, mais après avoir vu ce que j'ai vu ces deux dernières années, les fous ne sont pas si fous.

      Avec ce paragraphe, je veux dire que le mouvement du logiciel libre n'est pas seulement un mouvement informatique, mais aussi un mouvement social et qu'il doit être défendu. Et si Elav, vous devez être radical sur le social. Des entreprises comme Apple ou Microsoft n'hésiteront pas à profiter des circonstances. Nous devons sensibiliser aux droits des utilisateurs et des personnes en général.

      PS Je nomme Elav parce que je lui réponds mais le commentaire s'adresse à tous les GNU / Linux.

      Vive les gens!

      1.    Monsieur_E dit

        @Xlash: SIR!… Merci! C'est ce que j'avais besoin de lire. +1

        Je te copie, je l'imprime et je la mets à côté de la Bible. (Pour mémoire: ni dedans ni dessus).
        En fin de compte, grâce à ce déménagement et aux efforts de Linus et de la communauté, quelque chose est en train d'être accompli qui a changé le monde:
        "Il y a un avant Linux et un MAINTENANT avec LINUX."

      2.    Ñandekuera dit

        +10

    3.    Monsieur_E dit

      @Elav :
      Je ne m'excuse pas mais j'ai dû dire:
      Certains de vos messages précédents m'ont aimé, mais pas celui-ci ... et s'ils continuent comme ça: peut-être que ça continuera à l'être pour le reste de mes jours.
      Ne soyez pas fermé d'esprit. Vous semblez fanatique, fou, et autant de respect que vos réalisations (ce forum) et ce que vous méritez… Je n'aime pas (votre commentaire).
      😀 - hehe! maintenant vous pouvez expérimenter (un peu) la même chose que RMS. vous avez juste besoin d'avoir la même trajectoire de diffusion que lui, et bien, ressentez presque exactement la même chose.
      Salutations cuñao!

  7.   Zironide dit

    Je ne comprends pas pourquoi Stallman est si fermé. Je risque de dire que je pense que LLVM est encore plus libre que GCC, car il donne la liberté de l'utiliser même dans des programmes propriétaires. Oui, je sais que la restriction dans GCC peut aider le logiciel libre, mais je trouve absurde qu'elle s'oppose à LLVM de cette manière.

    salutations

    1.    wilson dit

      Stallman n'est pas fermé. L'article est très enclin aux opinions personnelles de l'auteur.
      En réalité, les décisions de GCC sont largement techniques. Dans GCC, ils veulent la modularité et ils le font, mais d'une manière différente (en évitant les problèmes qui existent dans CLANG).
      Pour plus d'informations https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      C'est ce que Raymond a écrit et il y a les réponses des développeurs.

  8.   Sainticluke dit

    Cela me semble de voir qui a le plus gros ... L'ego, bien sûr.
    Les deux compilateurs sont excellents. Mais comme tout outil, cela dépend de la façon dont vous l'utilisez.
    On peut écrire du code libre en C # et fabriquer un missile avec Linux.

  9.   galux dit

    Je pense qu'ici vous devriez être plus pragmatique. Stallman devrait avoir une vision et ne pas cesser de se perdre. Ce qui inquiète, c'est que la communauté actuelle n'est pas fragmentée, c'est ce qui se passe. Le plus sensé est que bien que la licence bsd permette de l'utiliser dans des environnements propriétaires, tant que les auteurs sont reconnus (et même que leurs dérivés le sont) utilisent la même logique mais avec la gpl v2 ou supérieure.

  10.   pandev92 dit

    Heureusement, stallman a à peine été entendu depuis un moment. L'autre, un programme informatique ou un compilateur, ne sera jamais une question sociale, en plus qu'il y a toujours eu des alternatives qui ne sont pas gratuites! mais si gratuit.
    Concernant llvm clang, la polémique n'a pas de sens, puisque la source sera toujours là, elle a été publiée sous licence bsd, donc c'est un logiciel libre, qu'une entreprise peut l'utiliser à ses fins sombres, cela n'implique pas que vous ne pouvez plus accéder au code d'origine, mais je vois, personne ici n'a la moindre idée, sauf 2 ou 3.

    1.    xlash dit

      "Un programme informatique ou un compilateur ne sera jamais une question sociale"
      Comment non? Je respecte le fait que vous ne défendez pas le mouvement du logiciel libre comme beaucoup d'autres le font, mais nier ce que représente le logiciel libre semble irrespectueux de votre part envers les personnes qui investissent beaucoup de temps, d'argent et d'efforts pour le défendre et le créer.

      Bien sûr, llvm est un logiciel libre mais cela ne veut pas dire que ses modifications et ses dérivations le sont. L'idée n'est pas seulement de pouvoir accéder librement au logiciel d'origine, mais aussi à ses modifications. Si je développe un programme et le partage avec vous, j'aimerais que vous fassiez de même pour les personnes à qui vous donneriez une copie de votre version modifiée. C'est ce que défendent le logiciel libre et le copyleft, c'est donc une question sociale.

      "Mais je vois, personne ici n'a la moindre idée, sauf pour 2 ou 3."
      Je ne sais plus comment vous êtes arrivé à cette conclusion lorsque les commentaires postés ici font référence à la philosophie et à la liberté du logiciel comparant les différences entre deux types de licences, même si elles sont compatibles entre elles.

      1.    diazépan dit

        Comment cela affecte-t-il la vie quotidienne d'un comptable qui ne sait rien de la programmation à l'aide d'un programme comptable qui a été compilé avec un tel compilateur?

        1.    xlash dit

          Pas du tout, tant que je suis libre. Mais le sujet que j'aborde dans les commentaires en est un autre, le diazépan. Je parle de l'utilisation d'un compilateur X pour compiler des logiciels propriétaires, des licences utilisées dans chaque compilateur et de leurs différences, je mentionne également l'avantage de GLP par rapport à BSD, toujours du point de vue de la liberté bien sûr.

    2.    L'équipe dit

      LOL, affirmer que personne n'a d'idée est des mots très forts pour quelqu'un qui dit que le logiciel n'est pas un problème de société.
      Il faut être aveugle ou au moins un peu myope pour ne pas le voir, quand il y a même des pays qui migrent (dans un pourcentage plus ou moins grand) vers le logiciel libre, quand par tous les médias internationaux cela fait écho à la façon dont le logiciel propriétaire est un outil pour la l'espionnage à grande échelle, quand l'homme le plus riche du monde se consacre justement à un système d'exploitation.
      Ce qu'il y a à lire.

    3.    Ñandekuera dit

      ... Je souhaite que plus de stallmans et moins de pandev soient entendus ...

  11.   L'équipe dit

    L'article est quelque peu tendancieux, pour commencer par le titre, car ceux à qui on devrait demander s'ils «deviennent un peu fous» est LLVM, puisque ce sont eux qui se plaignent amèrement.

    Et sur le sujet, vous pouvez voir l'hypocrisie de ceux qui ont d'abord dénoncé ce qu'ils appellent la "fragmentation" et combien c'est "terrible" pour le logiciel libre.
    Mais quand quelqu'un conforme à ce qu'il dit et fait, suit sa ligne et n'accepte pas qu'un compilateur gratuit devienne une plateforme pour une infinité de compilateurs propriétaires, alors oui, vive, tout le monde pour créer des fourches!

  12.   Canales dit

    Le logiciel libre est un mouvement social depuis sa naissance par définition.

    Concernant GPL vs BSD:
    «La liberté 3 inclut la liberté de publier vos versions modifiées en tant que logiciel libre. Une licence gratuite peut également autoriser d'autres formes de publication; en d'autres termes, il n'est pas nécessaire que ce soit une licence de copyleft. Cependant, une licence qui exige que les versions modifiées soient non libres ne peut pas être considérée comme gratuite. »
    «Le copyleft (défini très brièvement) est la règle sur la base du fait que, lorsque vous redistribuez le programme, vous ne pouvez pas ajouter de restrictions pour refuser aux autres les principales libertés. Cette règle n'entre pas en conflit avec les libertés principales, mais les protège. "

    Comme vous pouvez le voir, le copyleft, bien qu'à court terme il enlève une certaine liberté, à long terme il le protège. C'est pourquoi M. Stallman défend la GPL: "Mon travail dans le logiciel libre est motivé par un objectif idéaliste: répandre la liberté et la coopération."

  13.   Canales dit

    http://www.gnu.org/philosophy/open-source-misses-the-point.html

    «L'open source est une méthodologie de programmation, le logiciel libre est un mouvement social. Pour le mouvement du logiciel libre, le logiciel libre est un impératif éthique, un respect essentiel de la liberté des utilisateurs. En revanche, la philosophie open source pose les questions en termes de comment «améliorer» le logiciel, dans un sens purement pratique. Il soutient que les logiciels propriétaires ne sont pas une solution optimale aux problèmes pratiques à résoudre. Dans la plupart des cas, quand on parle de «open source», le bien et le mal ne sont pas pris en considération, seulement la popularité et le succès. "

  14.   Daniel Noriega dit

    Je l'ai déjà commenté plusieurs fois et je ne cesse de le répéter, linux en général j'aime beaucoup, mais s'il y a quelque chose que je déteste à propos de linux, c'est la communauté. Quand on est capable de sauter d'une falaise pour continuer avec une idéologie aussi «fermée» que «logiciel libre», c'est alors que l'on se rend compte que le monde est à l'envers. Je pense qu'à ses débuts, le logiciel libre était clair à ce sujet, aujourd'hui l'histoire est différente.

  15.   cas rare dit

    Je pense que beaucoup n'ont pas été clairs sur les termes et les objectifs de la licence GPL. La licence GPL est très permissive mais avec la limite de ne pas permettre de profiter des programmes sous licence avec elle. Je suis d'accord avec Stallman, mais pas à l'extrême d'utiliser exclusivement des logiciels libres. Pour un utilisateur, vouloir utiliser LLvm / Clang est son droit, mais pour le SLF, vouloir remplacer GCC par LLVM / Clang serait une contradiction avec les principes du logiciel libre.