LLVM / Clang. U gekke GCC?

llvm-logo

Ik moest een bericht schrijven over deze controverse geplaatst in LWN. En het is dat de LLVM / Clang-compiler begint zich zorgen maken op de GNU-mailinglijsten.

Er was eens een compiler genaamd GCC die met zijn meer dan 25 jaar bestaan ​​nog steeds groot respect heeft voor zijn vrije licentie en copyleft-licentie, maar ook voor de compiler die werd gebruikt door de linux-kernel en tot voor kort door FreeBSD. Iedereen die wilde leren ontwikkelen in C of C ++, heeft zeker GCC gebruikt, ongeacht de architectuur van hun machine. GCC leed echter aan een bepaald punt geheimhouding, deels vanwege de filosofie van degenen die het creëerden en deels vanwege de ontwikkeling in kathedraalstijl, waar sterke controle werd uitgeoefend over wat er gaande was in GCC en wat niet (nu niet zozeer maar nog steeds bestaat), waardoor de manier voor de constructie van front-ends en andere functies die GCC uiteindelijk heeft overgenomen. Voor meer informatie over de korte geschiedenis van EGCS, Ik verlaat deze link.

Ondertussen leidde een onderzoeksproject aan de Universiteit van Illinois in Urbana-Champaign rond 2002 tot de creatie van een compiler die op een modulaire manier was gemaakt, zodat de afzonderlijke elementen zoals front-ends, codegeneratoren en optimizers. Ze bellen hem LLVM omdat het aanvankelijk een virtuele machine op laag niveau was, maar het werd uiteindelijk meer dan dat. En ze gaven hem een ​​vergunning met zijn eigen vergunning, en dat was ook zo vergelijkbaar met BSD (gratis, geen auteursplicht, in overeenstemming met de GPL). Jaren later raakte Apple geïnteresseerd in LLVM en adopteerde het het voor zijn iOS- en OS X-besturingssystemen, evenals het bouwen van (en vrijgeven onder dezelfde gratis licentie als LLVM) uw eigen front-end genaamd kletteren, voor C en Doelstelling C. De keerzijde is de mogelijkheid om LLVM / Clang op te nemen in eigen programma'sDat is het geval met de CUDA-compiler van NVIDIA en de IDE XCode van Apple.

Maar op een dag, een paar weken geleden op de emacs-mailinglijst, midden in een discussie over een autocomplete-modus ontworpen voor Clang, Dmitry Gutov Hij zegt: "Mij is lang geleden verteld dat Richard Stallman haatte Clang zo erg die er tegen was om code die het gebruikt in emacs op te nemen. " Dit leidde later tot een andere discussie over clang en vrije software waar Richard zelf verduidelijkt: «Ons beleid is om geen wijzigingen te accepteren aan een GNU-pakket dat wel kan werken met Clang maar niet met GCC. Emacs zal mensen niet aanmoedigen om weg te lopen van GCC. Als we de kans krijgen, zullen we het gebruik van GCC boven Clang aanmoedigen. "

Een korte tijd later verschijnt Eric Raymond (beroemd vanwege het creëren van The Cathedral and the Bazaar, samen met de definitie van Open Source) die half het steekspel zingt, half trollen, gaat en zegt dat LLVM / Clang een reactie was op de weerstand van het GCC-project om meer interoperabel te zijn, en Clang presteert beter dan GCC op verschillende technische maatregelen. Volgens hem (en laten zien een video van een Chandler Carruth-lezing), vroegen de Clang-ontwikkelaars Stallman of er een reden was waarom GCC-frontends niet konden worden omgezet in dynamische bibliotheken die kunnen worden gekoppeld door elk programma dat de broncode wil parseren. Stallman antwoordde dat een doel van GCC was evitar propriëtaire programma's om een ​​van de onderdelen ervan te gebruiken, dus hebben ze opzettelijk verschillende dingen vermeden posiblemente ze zouden zulk gebruik hebben gefaciliteerd …… ..wat ze overwogen een onbehulpzaam antwoord. Ze wilden IDE's en andere tools maken die compilercode delen en GCC zou dat niet toestaan, dus om Clang te maken en GCC naar / dev / null te sturen. GCC-ontwikkelaars ze sprongen op hem te zeuren omdat ze niet volledig geïnformeerd waren (met het feit dat Clang GCC overtreft in verschillende technische maatregelen). Midden in de hoererij lijkt Stallman dat te zeggen LLVM is een vreselijke erfenis, niet om technische redenen, maar alleen vanwege de niet-auteursplichtige licentie waarvan Apple profiteert.

Vervolgens wijdt het LWN-artikel lange paragrafen aan de modulariteit van GCC en de maatregelen die ze opzettelijk hebben opgenomen om het moeilijk te maken om de interne vertegenwoordiging ervan door eigen programma's te gebruiken, over de Uitzondering GCC Runtime Library wat de vraag oplost of GCC propriëtaire code moet compileren. Ik zou ook de casus van willen toevoegen FreeBSD (onlangs uitgebrachte versie 10, vervangt GCC met LLVM / Clang als de belangrijkste compiler). De nieuwste versie van GCC die ze hebben gebruikt was 4.2.1 (de nieuwste met GPLv2-licentie) en noch gek ze gingen het updaten naar een versie met GPLv3 (ze willen gewoon een BSD zonder enige GPL), dus LLVM / Clang komt naar hen toe als een handschoen.

Kortom, een nieuwe strijd in de eeuwige GPL versus BSD-oorlog.


38 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   pandev92 zei

    Niet interessant, laten we de ontwikkelaars elkaar laten vermoorden.

    1.    eliotime3000 zei

      En dus hebben we nog een ontevreden werknemer om bij Microsoft en Apple te werken.

    2.    kaders zei

      Je hebt gelijk, ik ondersteun dat de software altijd gratis is, zodat ELKE MENS het kan lezen (dat is de enige reden waarom ik Linux ondersteun en gebruik), maar uiteindelijk hebben de programmeurs het laatste woord.

  2.   f3niX zei

    Goed artikel, ik hou altijd van diazepan-artikelen, ze komen uit het gewone.

  3.   Germán zei

    De waarheid is dat het een heel domme gedachte is van degenen van gcc, het is meer in die tijd dat de maker van LLVM de code aanbood aan die van gcc en ze verwierpen het, CLang is zo ontworpen dat de IDE's de code in real time die niet alleen privé-apps ten goede komt, maar ook open source-apps zoals KDevelop of QtCreator, afgezien van geavanceerde editors zoals Vim, Kate, emacs, enz. Ik veronderstel dat er iets soortgelijks zal gebeuren met egcs en het zal worden geabsorbeerd onder de gpl-licentie zodra linux hiermee kan worden gecompileerd zoals gebeurde met egcs

    1.    eliotime3000 zei

      Als ze de EGCS niet kunnen verbeteren en / of de beste vervanging voor CLang kunnen maken, ga ik naar CLang en LLVM.

    2.    xlash zei

      Dom? Ik dacht het niet. Het feit dat GCC niet kan worden gebruikt om propriëtaire software te maken, is een manier om prioriteit te geven aan de ontwikkeling van vrije software en er geen gebruik van te maken voor de ontwikkeling van propriëtaire software. Het is een manier om vrije software te verdedigen, daarom moet het worden ondersteund. Meneer Stallman heeft volkomen gelijk, het is een stap achteruit. Bovendien zullen bedrijven zoals Apple, zoals vermeld in het artikel, profiteren van LLVM / Clang zonder absoluut bij te dragen aan de gemeenschap en zonder enige eer te geven aan het project.

      Proost mensen!

      1.    Germán zei

        Zowel GCC als LLVM / CLANG kunnen propriëtaire software compileren, wat niet kan worden gewijzigd is GCC en die wijzigingen niet bekend maken. LLVM / CLANG kan opnieuw worden gelicentieerd als gpl, het grootste verschil daartussen is dat ze voor LLVM / CLANG C ++ moeten gebruiken en die van GCC het tot voor kort niet wilden zien of geverfd. Vanuit mijn oogpunt, in plaats van GCC te herschrijven naar C ++ zoals ze nu doen, hadden ze de architecturen die GCC ondersteunt en LLVM / CLANG niet en de talen naar de laatste moeten porten en een schonere code hebben en hun eigen ontwikkelingstak onderhouden

    3.    artus zei

      Ik denk dat uw mening ongegrond is, boven de technische problemen is vrije software. Dat is waar meneer Stallman zich het meest zorgen over maakt. Van wat ik het beste voor jou zie, is het technische gedeelte en je hebt gelijk, maar als je geen keus hebt omdat een bedrijf je technologie heeft overgenomen, zul je twee keer nadenken.
      Aan de andere kant kunt u met GCC de code in realtime verifiëren, zoals ik herhaal, uw mening is ongegrond.

      1.    Germán zei

        1-Als GCC LLVM / CLANG en het bedrijf splitst en het opnieuw in licentie geeft als GPL, valt alle code die in die splitsing is opgenomen onder GPL en moeten LLVM's toestemming vragen om het opnieuw te licentiëren en op te nemen in hun repo. Ik informeer u dat het licentietype MIT (XORG, WAYLAND, ...) of BSD (FreeBSD, ...) net zo tolerant zijn als de LLVM
        2 - Met GCC kunt u geen automatische code-aanvulling of code-verificator in realtime implementeren via een bibliotheek die deze in tegenstelling tot CLANG biedt
        3 - LLVM is een superieure oplossing voor GCC, niet alleen technisch maar ook wat betreft efficiëntie, de LLVM / CLANG binominale neemt de helft van de tijd in beslag om te compileren

  4.   andekuera zei

    Lang leve GNU en de GPL!

    1.    eliotime3000 zei

      Kijk of ze hun eigen CLang kunnen maken met alcohol, gokken en sletten.

      1.    andekuera zei

        eh?

    2.    eliotime3000 zei

      Nee, Richard. Het feit dat SELinux het werk is van de NSA betekent niet dat enig ander niet-GPL-gelicentieerd hulpmiddel (zoals LLVM / CLang) uit dezelfde matrix komt.

      Serieus, ik dacht dat hier een volledig rationeel motief voor was, maar ik zie dat de FSF conservatiever is dan Satoru Iwata of enig ander lid van de MAFIAA.

      1.    Medewerkers zei

        Het is duidelijk dat je de mailinglijst niet hebt gelezen en je bleef bij wat het artikel tussen de regels zegt.
        Er werden rationele argumenten gegeven, zelfs technische opties, maar hoe dan ook, het is heel gebruikelijk om de titel te lezen en meteen in de commentaren te springen.

  5.   arme taku zei

    Ñuhhhh GCC + Emacs. Als je wilt overleven, neem mijn hand (stallman)

  6.   levendig zei

    De puriteinen zullen me excuseren, maar ik moet het zeggen: ik heb Stallman nooit gemogen, en zo lijkt het voor de rest van mijn dagen.

    Je kunt niet zo bekrompen zijn. Hij lijkt een fanatiekeling, een gek, en ja, zoveel respect als hij verdient voor zijn prestaties en waar hij voor staat, ik mag hem niet.

    1.    Zironide zei

      Ik ga akkoord. In het begin vond ik hem erg leuk, maar nu lijkt hij te extreem ...

      1.    Canales zei

        Extremistisch ... gek ... fanatiek ... ja, het hangt ervan af hoe je ernaar kijkt. Voor mij is meneer Richard Stallman een persoon met een enorm sociaal geweten. De zin van zijn leven was en is om de samenleving te verbeteren, niet om software. Er is het verschil tussen vrije software / open source software, dat de eerste op zoek gaat naar sociale problemen en de tweede naar technische problemen.

    2.    xlash zei

      Elav mate, het is geen kwestie van puritein zijn of niet. Vrije software werd geboren als een sociale beweging en dat is wat de heer Stallman verdedigt, net als velen.

      Je kunt niet zo bekrompen zijn. Hij lijkt een fanatiekeling, een gek, en ja, hoeveel respect hij ook verdient voor zijn prestaties en waar hij voor staat, ik mag hem niet. »

      Eigenlijk is het het tegenovergestelde. Het doel is dat iedereen vrij toegang heeft tot de software zonder dat iemand het gebruik ervan beperkt door middel van eigen aanpassingen en, zoals ik al zei in mijn vorige opmerking, ze geven prioriteit aan en benadrukken de ontwikkeling van vrije software.

      Ik denk dat je fanatisme verwarren met een andere term. Fanatisme is dodelijk, zoals de geschiedenis goed heeft aangetoond. De term waarnaar u op zoek bent, is misschien radicaal, maar zonder dat radicalisme zouden de vrije software en GNU / linux-beweging niet bestaan, tenminste zoals we die vandaag kennen. Wat het gekke betreft, ik zal niet met je in discussie gaan, maar gezien wat ik de afgelopen jaren heb gezien, zijn gekke mensen niet zo gek.

      Met deze paragraaf wil ik zeggen dat de vrije softwarebeweging niet alleen een computerbeweging is, maar ook een sociale beweging en die moet worden verdedigd. En als Elav moet je radicaal zijn over het sociale. Bedrijven als Apple of Microsoft zullen niet aarzelen om in te spelen op de omstandigheden. We moeten bewustzijn creëren over de rechten van gebruikers en mensen in het algemeen.

      PS Ik noem Elav omdat ik hem antwoord, maar de opmerking is gericht aan alle GNU / linuxers.

      Proost mensen!

      1.    Meneer_E zei

        @Xlash: SIR!… Bedankt! Dat is wat ik nodig had om te lezen. +1

        Ik kopieer je, ik druk het af en ik leg het naast de Bijbel. (Voor de duidelijkheid: niet erin of er bovenop).
        Dankzij deze stap en de inspanning van Linus en de gemeenschap wordt er uiteindelijk iets bereikt dat de wereld heeft veranderd:
        "Er is een voor Linux en een NU met LINUX."

      2.    andekuera zei

        + 10

    3.    Meneer_E zei

      😀 @Elav:
      Ik bied geen excuses aan, maar ik moest zeggen:
      Sommige van je eerdere berichten vonden me leuk, maar deze niet ... en als ze zo doorgaan: misschien zal het zo blijven voor de rest van mijn dagen.
      Wees niet bekrompen. Je lijkt fanatiek, gek en evenveel respect als je prestaties (dit forum) en wat je verdient ... Ik hou niet van (je commentaar).
      😀 - hehe! nu kun je (een beetje) hetzelfde ervaren als RMS. Je moet gewoon hetzelfde diffusietraject hebben als hij, en nou ja, je voelt je bijna precies hetzelfde.
      Groeten cuñao!

  7.   Zironide zei

    Ik begrijp niet waarom Stallman zo gesloten is. Ik durf te zeggen dat ik denk dat LLVM zelfs vrijer is dan GCC, omdat het de vrijheid geeft om het zelfs in eigen programma's te gebruiken. Ja, ik weet dat beperking in GCC vrije software kan helpen, maar het lijkt mij absurd dat het op die manier tegen LLVM is.

    groeten

    1.    Wilson zei

      Stallman is niet gesloten. Het artikel is erg geneigd met persoonlijke meningen van de auteur.
      In werkelijkheid zijn de beslissingen van de GCC grotendeels technisch. In GCC willen ze modulariteit en dat doen ze, maar op een andere manier (problemen vermijden die wel bestaan ​​in CLANG).
      Voor meer informatie https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Dat is wat Raymond schreef en er zijn de reacties van de ontwikkelaars.

  8.   santicluke zei

    Dit lijkt mij om te zien wie het groter heeft ... Het ego, natuurlijk.
    Beide compilers zijn uitstekend. Maar zoals bij elk hulpmiddel, hangt het af van hoe u het gebruikt.
    Men kan gratis code schrijven in C # en een raket maken met Linux.

  9.   gallux zei

    Ik vind dat je hier pragmatischer moet zijn. Stallman moet een visie hebben en niet ophouden de weg kwijt te raken. Wat zorgen baart, is dat de huidige gemeenschap niet gefragmenteerd is, en dat is wat er gebeurt. Het meest verstandige is dat, hoewel de bsd-licentie het gebruik in propriëtaire omgevingen toestaat, zolang de auteurs worden herkend (en zelfs dat de afgeleiden ervan zijn) dezelfde logica gebruiken, maar met de gpl v2 of hoger.

  10.   pandev92 zei

    Gelukkig is stallman al een tijdje nauwelijks gehoord. De andere, een computerprogramma of een compiler, zal nooit een sociale vraag zijn, daarnaast zijn er altijd alternatieven geweest die niet gratis zijn! maar indien gratis.
    Wat betreft llvm clang, de controverse is niet logisch, aangezien de bron er altijd zal zijn, het is vrijgegeven onder een bsd-licentie, daarom is het gratis software, dat een bedrijf het kan gebruiken voor zijn duistere doeleinden, het betekent niet dat je niet langer kunt toegang tot de originele code, maar ik begrijp dat niemand hier een idee heeft, behalve 2 of 3.

    1.    xlash zei

      "Een computerprogramma of een compiler zal nooit een sociale vraag zijn"
      Wat bedoel je niet? Ik respecteer dat je de vrije softwarebeweging niet verdedigt zoals vele anderen doen, maar ontkennen wat vrije software vertegenwoordigt lijkt van jouw kant respectloos tegenover de mensen die veel tijd, geld en moeite investeren in het verdedigen en creëren ervan.

      Natuurlijk is llvm gratis software, maar dat betekent niet dat de aanpassingen en afleidingen dat ook zijn. Het idee is niet alleen om vrij toegang te hebben tot de originele software, maar ook om de aanpassingen ervan. Als ik een programma ontwikkel en het met u deel, zou ik willen dat u hetzelfde doet voor de mensen aan wie u een kopie van uw aangepaste versie zou geven. Dit is wat vrije software en copyleft verdedigen, daarom is het een sociale kwestie.

      'Maar ik begrijp het, niemand heeft hier een idee, behalve twee of drie.'
      Ik weet niet meer hoe u tot die conclusie bent gekomen toen de opmerkingen die hier zijn geplaatst verwijzen naar de filosofie en vrijheid van software, waarbij de verschillen tussen twee soorten licenties worden vergeleken, zelfs als ze compatibel zijn met elkaar.

      1.    diazepam zei

        Hoe beïnvloedt het het dagelijks leven van een accountant die niets weet van programmeren met een boekhoudprogramma dat is samengesteld met zo'n compiler?

        1.    xlash zei

          Helemaal niet, zolang ik maar vrij ben. Maar het onderwerp dat ik in de commentaren behandel, is een ander, Diazepan. Ik spreek over het gebruik van een X-compiler om propriëtaire software te compileren, over de licenties die in elke compiler worden gebruikt en hun verschillen. Ik noem ook het voordeel van GLP ten opzichte van BSD, altijd vanuit het oogpunt van vrijheid natuurlijk.

    2.    Medewerkers zei

      LOL, beweren dat niemand een idee heeft, zijn zeer sterke woorden voor iemand die zegt dat software geen sociaal probleem is.
      Je moet blind zijn of op zijn minst enigszins bijziend om het niet te zien, als er zelfs landen zijn die (in meer of mindere mate) migreren naar vrije software, terwijl door alle internationale media wordt weerspiegeld hoe propriëtaire software een hulpmiddel is voor de spionage op grote schaal, als de rijkste man ter wereld precies toegewijd is aan een besturingssysteem.
      Wat er te lezen is.

    3.    andekuera zei

      ... Ik wou dat er meer stallmans en minder pandevs werden gehoord ...

  11.   Medewerkers zei

    Het artikel is enigszins tendentieus, om met de titel te beginnen, omdat degenen aan wie gevraagd zou moeten worden of ze "een beetje gek worden" LLVM zijn, aangezien zij degenen zijn die bitter klagen.

    En wat dit onderwerp betreft, kun je de hypocrisie zien van degenen die als eerste tekeer gingen tegen wat zij "fragmentatie" noemen en hoe "verschrikkelijk" het is voor gratis software.
    Maar als iemand consistent is met wat hij zegt en doet, zijn lijn volgt en het er niet mee eens is dat een gratis compiler een platform wordt voor een oneindig aantal propriëtaire compilers, ja, lang leve, iedereen om forks te maken!

  12.   Canales zei

    Vrije software is per definitie een sociale beweging vanaf de geboorte.

    Met betrekking tot GPL versus BSD:
    “Freedom 3 omvat de vrijheid om uw aangepaste versies als gratis software te publiceren. Een gratis licentie kan ook andere vormen van publicatie autoriseren; met andere woorden, het hoeft geen auteursplichtlicentie te zijn. Een licentie die vereist dat gewijzigde versies niet-vrij zijn, kan echter niet als gratis worden beschouwd. "
    “Copyleft (heel kort gedefinieerd) is de regel waarop je, wanneer je het programma herdistribueert, geen beperkingen kunt toevoegen om anderen de belangrijkste vrijheden te ontzeggen. Deze regel is niet in strijd met de belangrijkste vrijheden, maar beschermt ze. "

    Zoals u kunt zien, neemt copyleft, hoewel het op korte termijn enige vrijheid wegneemt, het op lange termijn bescherming. Dat is de reden waarom de heer Stallman de GPL verdedigt: "Mijn werk in vrije software wordt gemotiveerd door een idealistisch doel: vrijheid en samenwerking verspreiden."

  13.   Canales zei

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

    “Open source is een programmeermethodologie, vrije software is een sociale beweging. Voor de vrije softwarebeweging is vrije software een ethische noodzaak, een essentieel respect voor de vrijheid van gebruikers. Daarentegen roept de open source-filosofie de vragen op in termen van hoe de software kan worden "verbeterd", in louter praktische zin. Het stelt dat propriëtaire software geen optimale oplossing is voor praktische problemen die moeten worden opgelost. In de meeste gevallen wordt bij het bespreken van 'open source' geen rekening gehouden met goed en kwaad, maar alleen met populariteit en succes. "

  14.   Daniël Noriega zei

    Ik heb er al verschillende keren op gereageerd en ik blijf het herhalen, linux in het algemeen vind ik erg leuk, maar als er iets is dat ik haat aan linux, dan is het de gemeenschap. Als je in staat bent om van een klif af te springen om door te gaan met een ideologie die zo ‘gesloten’ is als ‘vrije software’, dan realiseer je je dat de wereld op zijn kop staat. Ik denk dat vrije software er aanvankelijk duidelijk over was, vandaag is het verhaal anders.

  15.   zeldzaam geval zei

    Ik geloof dat velen niet duidelijk zijn geweest over de voorwaarden en doeleinden van de GPL-licentie. De GPL-licentie is zeer tolerant, maar met de limiet om geen winst toe te staan ​​uit de programma's die ermee zijn gelicentieerd. Ik ben het met Stallman eens, maar niet het uiterste van uitsluitend gratis software gebruiken. Dat een gebruiker LLvm / Clang wil gebruiken is zijn recht, maar dat de SLF GCC wil vervangen door LLVM / Clang zou in strijd zijn met de principes van vrije software.