LLVM / Clang. U Mad GCC?

llvm-logo

Jeg var nødt til at skrive et indlæg om denne kontrovers udgivet i LWN. Og det er, at LLVM/Clang-kompileren begynder at gøre det bekymre på GNU-mailinglisten.

Der var engang en compiler kaldet GCC, der med sin mere end 25 års eksistens fortsat er højt respekteret for sin gratis og copyleft-licens, såvel som at være den compiler, der blev brugt af linux-kernen og indtil for nylig af FreeBSD. Enhver, der ønskede at lære at udvikle i C eller C++, ville helt sikkert bruge GCC uanset arkitekturen på deres maskine. GCC led dog af en vis hemmelighed, dels på grund af filosofien hos dem, der skabte den, og dels på grund af dens katedrallignende udvikling, hvor der blev udøvet en stærk kontrol over, hvad der gik i GCC, og hvad der ikke gjorde (nu ikke så meget, men det eksisterer stadig), hvilket åbnede vejen for bygningens front-ends og andre funktioner, som GCC endte med at tage i brug i det lange løb. For at lære mere om den korte historie EGCS, Jeg efterlader dig dette link.

I mellemtiden førte et forskningsprojekt ved University of Illinois i Urbana-Champaign omkring 2002 til oprettelsen af ​​en compiler bygget på en modulær måde, således at individuelle elementer såsom front-ends, kodegeneratorer og optimizere nemt kunne udskiftes. De ringer til ham LLVM fordi det først var en virtuel maskine på lavt niveau, men det endte med at blive mere end det. Og de licenserede det med deres egen licens, hvilket var BSD-lignende (gratis, ikke copyleft, kompatibel med GPL). År senere blev Apple interesseret i LLVM og adopterede det til sine iOS- og OS X-operativsystemer, såvel som at bygge (og frigive under samme gratis licens som LLVM) sin egen front-end kaldet Dunk, for C og Objective C. Ulempen er muligheden for at inkludere LLVM/Clang i proprietære programmer, sådan er tilfældet med NVIDIAs CUDA-kompiler og Apples XCode IDE.

Men en dag, for et par uger siden på emacs mailingliste, midt i en diskussion om en autofuldførelsestilstand designet til Clang, Dimitry Gutov siger "For et stykke tid siden fik jeg at vide, at Richard Stallman han hadede klang så meget at han var imod at inkludere kode, der bruger det i emacs." Dette førte så til endnu en diskussion om klang og gratis software hvor Richard selv præciserer: "Vores politik er ikke at acceptere ændringer til nogen GNU-pakke, der kan fungere med Clang, men ikke med GCC. Emacs vil ikke tilskynde folk til at flytte væk fra GCC. Når vi får muligheden, vil vi opfordre til brugen af ​​GCC over Clang."

Kort tid senere dukker Eric Raymond (berømt for at skabe The Cathedral and the Bazaar, sammen med definitionen af ​​Open Source) op, som halvt synger dyst, halvt trolling, går og siger at LLVM/Clang var et svar på GCC-projektets modstand mod at være mere interoperabel, plus at Clang overgår GCC på flere tekniske foranstaltninger. Ifølge ham (og viser en video fra et Chandler Carruth-foredrag), spurgte Clang-udviklerne Stallman, om der var nogen grund til, at GCC-frontends ikke kunne omdannes til dynamiske biblioteker, der kan linkes af et hvilket som helst program, der ønsker at parse kildekode. Stallman fortalte dem, at et GCC-mål var evitar proprietære programmer til at bruge nogen af ​​dens dele, så de undgik bevidst flere ting, der sandsynligt ville have lettet nævnte brug……..som de overvejede et ubrugeligt svar. De ønskede at skabe IDE'er og andre værktøjer, der deler compilerkode, og GCC ville ikke lade dem, så for at oprette Clang og kommando GCC til /dev/null. GCC-udviklere de sprang tæve på ham for ikke at være fuldt informeret (med det faktum, at Clang slår GCC i flere tekniske tiltag). Midt i puteadas dukker Stallman op og siger det LLVM er et frygteligt tilbageslag, ikke af tekniske årsager, men kun for dens ikke-copyleft-licens, som er til fordel for Apple.

Derefter bruger LWN-artiklen lange afsnit på GCC's modularitet og de foranstaltninger, de inkluderede med vilje for at gøre det vanskeligt for proprietære programmer at bruge deres interne repræsentation, på GCC Runtime Library Undtagelse som løser spørgsmålet om, hvorvidt GCC skal kompilere proprietær kode. Jeg vil også gerne tilføje sagen om FreeBSD (hvis nyligt udgivne version 10 erstatter GCC med LLVM/Clang som hovedkompiler). Den sidste version, de brugte af GCC det var 4.2.1 (den sidste licenseret under GPLv2) og ikke tosset de skulle opdatere den til en version med GPLv3 (de vil bare gerne en BSD uden nogen GPL), så LLVM/Clang kommer til dem som en handske.

Anyway, endnu en kamp i den evige GPL vs BSD krig.


38 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   pandev92 sagde han

    Ikke interessant, lad udviklerne dræbe hinanden.

    1.    eliotime3000 sagde han

      Og så har vi endnu en utilfreds medarbejder til at arbejde hos Microsoft og Apple.

    2.    marcos sagde han

      Du har ret, jeg understøtter, at software altid er gratis for ALLE MENNESKER at læse (det er den eneste grund til, at jeg understøtter og bruger linux), men i sidste ende har programmørerne det sidste ord.

  2.   f3niX sagde han

    God artikel, jeg kan altid lide diazepam-artikler, de kommer ud over det sædvanlige.

  3.   Tysk sagde han

    Sandheden er, at det er en meget dum tanke fra gcc-folkets side, faktisk, på det tidspunkt, hvor skaberen af ​​LLVM tilbød koden til gcc-folkene, og de afviste den, er CLang designet således, at IDE'erne kan verificere koden i realtid, hvilket ikke kun gavner private apps, men også open source-apps som KDevelop eller QtCreator, bortset fra avancerede editorer, etc. Jeg formoder, at noget lignende vil ende med at ske med egcs, og de vil absorbere det under gpl-licensen, så snart linux kan kompileres med det, som det skete med egcs

    1.    eliotime3000 sagde han

      Hvis de ikke kan forbedre EGCS og/eller gøre det til den bedste CLang-erstatning, går jeg til CLang og LLVM.

    2.    xlash sagde han

      Idiot? Det tror jeg ikke. At GCC ikke kan bruges til at skabe proprietær software er en måde at prioritere fri softwareudvikling og ikke udnytte det til proprietær softwareudvikling. Det er en måde at forsvare fri software på, derfor bør det understøttes. Mr. Stallman har fuldstændig ret, det er et tilbageskridt. Derudover vil virksomheder som Apple, som også nævnt i artiklen, drage fordel af LLVM/Clang uden at bidrage til fællesskabet og uden at give kredit til projektet.

      Skål folk!

      1.    Tysk sagde han

        Både GCC og LLVM/CLANG kan bygge proprietær software, men du kan ikke ændre GCC og ikke gøre disse ændringer kendt. LLVM/CLANG kan genlicenseres som gpl, den største forskel mellem disse er, at for LLVM/CLANG skal du bruge C++ og GCC ønskede ikke at se det før for nylig. Fra mit synspunkt burde de i stedet for at omskrive GCC til C++, som de gør nu, have overført de arkitekturer, som GCC understøtter, og som LLVM/CLANG ikke gør, og sprogene til sidstnævnte og have en renere kode og vedligeholde deres egen udviklingsgren.

    3.    Artus sagde han

      Jeg tror, ​​din mening er ubegrundet, ovenstående tekniske problemer er fri software. Det er det, der bekymrer hr. Stallman mest. Efter hvad jeg kan se, er det bedste for dig den tekniske del, og du er inden for dine rettigheder, men når du ikke har noget valg, fordi en virksomhed har overtaget din teknologi, vil du tænke dig om en ekstra gang.
      På den anden side kan du med GCC verificere koden i realtid, som jeg gentager, din mening er ubegrundet.

      1.    Tysk sagde han

        1-Hvis GCC laver en gaffel af LLVM/CLANG og virksomheden og genlicenserer den som GPL, vil al den kode, som de inkluderer i nævnte fork, være under GPL, og dem fra LLVM skal anmode om tilladelse til at genlicensere den og inkludere det i deres repo. Jeg informerer dig om, at MIT(XORG, WAYLAND,...) eller BSD(FreeBSD,...) typelicensen er lige så tilladelige som LLVM
        2 – Med GCC er det ikke muligt at implementere kodeautofuldførelse eller realtidskodebekræftelse gennem et bibliotek, som det leverer i modsætning til CLANG
        3 – LLVM er en overlegen løsning til GCC, ikke kun teknisk, men også i effektivitet, LLVM/CLANG-parringen tager halvt så lang tid at kompilere

  4.   Ñandekuera sagde han

    Længe leve GNU og GPL!

    1.    eliotime3000 sagde han

      Lad os se, om de kan lave deres eget CLang med alkohol, gambling og tøser.

      1.    Ñandekuera sagde han

        Hej?

    2.    eliotime3000 sagde han

      Nej, Richard. Bare fordi SELinux er NSA's arbejde, betyder det ikke, at noget andet ikke-GPL-licenseret værktøj (såsom LLVM/CLang) kommer fra den samme forælder.

      Seriøst, jeg troede, at der var en fuldstændig rationel grund til dette, men jeg kan se, at FSF er mere konservative end Satoru Iwata eller nogen i MAFIAA.

      1.    Personale sagde han

        Det er tydeligt, at du ikke har læst mailinglisten, og du blev ved, hvad artiklen siger mellem linjerne.
        Der blev givet rationelle argumenter, herunder tekniske muligheder, men alligevel er det meget almindeligt at læse titlen og springe direkte til kommentarerne.

  5.   dårlig taku sagde han

    Ñuhhhh GCC+Emacs. Hvis du vil overleve, tag min hånd (stallman)

  6.   Elav sagde han

    Puritanerne vil undskylde mig, men jeg må sige det: Jeg har aldrig kunnet lide Stallman, og tilsyneladende vil han fortsætte med at gøre det resten af ​​mine dage.

    Man kan ikke være så lukket. Han virker som en fanatiker, en galning, og ja, lige så meget respekt som han fortjener for sine præstationer og det han står for, kan jeg ikke lide ham.

    1.    Zironid sagde han

      Jeg er enig. Først kunne jeg godt lide det, men nu synes jeg det er for ekstremt...

      1.    Canales sagde han

        Ekstremist… skør… fanatisk… ja, det kommer an på hvordan man ser på det. For mig er hr. Richard Stallman en person med en enorm social samvittighed. Meningen med hans liv har været og er at forbedre samfundet, ikke software. Det er forskellen mellem fri software / open source software, ved at den første ser på sociale spørgsmål og den anden på tekniske spørgsmål.

    2.    xlash sagde han

      Elav makker, det er ikke et spørgsmål om at være puritaner eller ej. Fri software blev født som en social bevægelse, og det er, hvad hr. Stallman forsvarer, ligesom mange andre.

      ”Man kan ikke være så lukket. Han virker som en fanatiker, en sindssyg, og ja, lige så meget respekt som han fortjener for sine præstationer og det han står for, kan jeg ikke lide ham."

      Faktisk er det modsat. Målet er, at enhver frit kan få adgang til softwaren, uden at nogen begrænser brugen af ​​den gennem proprietære modifikationer, og som jeg sagde i min tidligere kommentar, prioriterer og understreger de udviklingen af ​​fri software.

      Jeg tror, ​​du forveksler fanatisme med et andet udtryk. Fanatisme dræber, som historien godt har vist. Udtrykket du leder efter kan være radikalt, men uden den radikalisme ville fri software-bevægelsen og GNU/linux ikke eksistere, i hvert fald som vi kender det i dag. Om skøre, jeg skændes ikke med dig, men set hvad jeg har set i disse par år, er skøre mennesker ikke så skøre.

      Med denne tirade vil jeg sige, at den frie softwarebevægelse ikke kun er en computerbevægelse, men også en social, og den skal forsvares. Og Si Elav man skal være radikal med hensyn til det sociale. Virksomheder som Apple eller Microsoft vil ikke tøve med at drage fordel af omstændighederne. Vi skal skabe opmærksomhed omkring brugernes og menneskers rettigheder generelt.

      PS Jeg navngiver Elav, fordi jeg svarer ham, men kommentaren er rettet til alle GNU/linuxere.

      Skål folk!

      1.    Hr_E sagde han

        @Xlash: MR!... Tak! Det var det, jeg havde brug for at læse. +1

        Jeg kopierer dig, udskriver den og sætter den på siden af ​​Bibelen. (for ordens skyld: ikke i eller oven på den).
        I sidste ende, takket være denne bevægelse og indsatsen fra Linus og samfundet, opnås noget, der har ændret verden:
        "Der er et før Linux og et NU med LINUX."

      2.    Ñandekuera sagde han

        + 10

    3.    Hr_E sagde han

      😀 @Elav:
      Jeg undskylder ikke, men jeg blev nødt til at sige det:
      Nogle af dine tidligere indlæg har kunnet lide mig, men ikke dette ene... og hvis de fortsætter sådan: måske bliver det ved med at være sådan resten af ​​mine dage.
      Vær ikke lukket sind. Du virker fanatisk, skør og lige så meget respekt, som dine præstationer (dette forum) og det du gør fortjener... Jeg kan ikke lide (din kommentar).
      😀 - hehe! nu kan du opleve (lidt) det samme som RMS. Du skal bare have den samme diffusionsbane som ham, og godt, føle dig næsten nøjagtig den samme.
      Hilsen svoger!

  7.   Zironid sagde han

    Jeg forstår ikke hvorfor Stallman er så lukket. Jeg vil gå ud over det ved at sige, at jeg tror, ​​at LLVM er endnu friere end GCC, da det giver dig frihed til at bruge det selv i proprietære programmer. Ja, jeg ved, at denne begrænsning i GCC kan hjælpe med fri software, men det forekommer mig absurd, at det er imod LLVM på den måde.

    hilsen

    1.    Wilson sagde han

      Stallman er ikke lukket. Artiklen er stærkt partisk med forfatterens personlige meninger.
      I virkeligheden er GCC's beslutninger stort set tekniske. I GCC vil de have modularitet, og de gør det, men på en anden måde (undgå problemer, der eksisterer i CLANG).
      For mere information https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Det er, hvad raymond skrev, og der er svarene fra udviklerne.

  8.   santicluke sagde han

    Det lyder for mig som at se, hvem der har det større... Egoet, selvfølgelig.
    Begge compilere er fremragende. Men som ethvert værktøj afhænger det af den brug, man giver det.
    Du kan skrive gratis kode i C# og lave et missil med Linux.

  9.   gallux sagde han

    Jeg mener, at her burde man være mere pragmatisk. Stallman burde have en vision og ikke holde op med at tabe sig. Det, der bekymrer, er, at det nuværende samfund ikke fragmenteres, hvilket er det, der sker. Det mest fornuftige er, at selvom bsd-licensen tillader det at blive brugt i proprietære miljøer, så længe forfatterne er genkendt (og endda at dem, der er afledt af dem), skal du bruge den samme logik, men med gpl v2 eller højere.

  10.   pandev92 sagde han

    Heldigvis har man næsten ikke hørt fra stallman i lang tid. Den anden ting, et computerprogram eller en compiler, vil aldrig være et socialt problem, udover at der altid har været alternativer, der ikke er gratis! men hvis det er gratis.
    Om llvm clang giver kontroversen ingen mening, da kilden altid vil være der, den er blevet udgivet under en bsd-licens, derfor er det fri software, som et firma kan bruge det til sine mørke formål, det betyder ikke, at du ikke længere kan få adgang til den originale kode, men jeg kan se, ingen her har nogen idé, undtagen 2 eller 3.

    1.    xlash sagde han

      "et computerprogram eller en compiler vil aldrig være et socialt problem"
      Hvordan ikke? Jeg respekterer, at du ikke kæmper for fri software-bevægelsen, som så mange af os gør, men at benægte, hvad fri software står for, virker respektløst over for dig for folk, der bruger en masse tid, penge og kræfter på at fremme og skabe det.

      Selvfølgelig er llvm fri software, men det betyder ikke, at dets modifikationer og afledninger er gratis. Idéen er ikke kun at kunne frit få adgang til den originale software, men også dens modifikationer. Hvis jeg udvikler et program og deler det med dig, vil jeg gerne have, at du gør det samme for de personer, som du vil give en kopi af din ændrede version til. Dette er hvad fri software og copyleft forsvarer, derfor er det et socialt problem.

      "men jeg kan se, ingen her har nogen idé, undtagen 2 eller 3."
      Jeg ved ikke, hvordan du nåede til den konklusion, når kommentarerne her refererer til softwarens filosofi og frihed ved at sammenligne forskellene mellem to typer licenser, selvom de er kompatible med hinanden.

      1.    diazepam sagde han

        Hvordan påvirker det dagligdagen for en revisor, der ikke ved noget om programmering ved hjælp af et regnskabsprogram, der er kompileret med sådan en compiler?

        1.    xlash sagde han

          Slet ikke, så længe jeg har fri. Men emnet, som jeg behandler i kommentarerne, er et andet, Diazepan. Jeg taler om brugen af ​​en X-compiler til at kompilere proprietær software, om de licenser, der bruges i hver compiler og deres forskelle, jeg nævner også fordelen ved GLP frem for BSD, selvfølgelig altid ud fra et frihedssynspunkt.

    2.    Personale sagde han

      LOL, at sige, at ingen har en anelse, er for stærkt et ord for nogen, der siger, at software ikke er et socialt problem.
      Man skal være blind eller i det mindste noget nærsynet for ikke at se det, når der endda er lande, der migrerer (i større eller mindre procent) til gratis software, når alle internationale medier giver genlyd af, hvordan proprietær software er et værktøj til storstilet spionage, når den rigeste mand i verden netop er dedikeret til et styresystem.
      Hvad der er at læse.

    3.    Ñandekuera sagde han

      ... Jeg ville ønske, at der var flere stallmans og færre pandevs hørt...

  11.   Personale sagde han

    Artiklen er noget tendentiøs, for at starte med titlen, for dem der skal spørges om "de bliver lidt skøre" er LLVM, fordi det er dem der brokker sig bittert.

    Og med hensyn til emnet er hykleriet hos dem, der først taler imod, hvad de kalder "fragmentering", og hvor "forfærdeligt" det er for fri software.
    Men når nogen, i overensstemmelse med hvad han siger og gør, følger hans linje og ikke er enig i, at en gratis compiler bliver en platform for et uendeligt antal proprietære compilere, så ja, længe leve alle til at skabe gafler!

  12.   Canales sagde han

    Fri software er per definition en social bevægelse fra dens fødsel.

    Angående GPL vs. BSD:
    "Frihed 3 inkluderer friheden til at udgive dine modificerede versioner som gratis software. En gratis licens kan også tillade andre former for offentliggørelse; med andre ord, det behøver ikke at være en copyleft-licens. En licens, der kræver, at ændrede versioner er ikke-frie, kan dog ikke betragtes som gratis."
    "Copyleft (meget kort defineret) er reglen om, at når du omdistribuerer programmet, kan du ikke tilføje begrænsninger for at nægte andre de vigtigste friheder. Denne regel er ikke i konflikt med de vigtigste friheder, den beskytter dem snarere."

    Som du kan se, copyleft, selvom det på kort sigt fjerner noget frihed, beskytter det det på lang sigt. Det er derfor, hr. Stallman forsvarer GPL: "Mit arbejde med fri software er motiveret af et idealistisk mål: at sprede frihed og samarbejde."

  13.   Canales sagde han

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

    "Open source er en programmeringsmetodologi, fri software er en social bevægelse. For fri softwarebevægelsen er fri software et etisk imperativ, essentiel respekt for brugernes frihed. I stedet stiller open source-filosofien spørgsmålene i forhold til, hvordan man "forbedrer" softwaren rent praktisk. Han argumenterer for, at proprietær software ikke er en optimal løsning på de praktiske problemer, der skal løses. I de fleste tilfælde, når man diskuterer "open source" tager man ikke godt og dårligt i betragtning, kun popularitet og succes."

  14.   Daniel Noriega sagde han

    Jeg har allerede kommenteret det flere gange, og jeg bliver ved med at gentage det, jeg kan virkelig godt lide Linux generelt, men hvis der er noget, jeg hader ved Linux, er det fællesskabet. Når man er i stand til at kaste sig ud af en klippe for at fortsætte med en ideologi så "lukket" som "fri software" er, så indser man, at verden er på hovedet. Jeg tror, ​​at fri software i sin begyndelse var klar over det, i dag er historien anderledes.

  15.   sjældent tilfælde sagde han

    Jeg tror, ​​at mange ikke har været klar over vilkårene og formålene med GPL-licensen. GPL-licensen er meget eftergivende, men med grænsen til ikke at tillade profit med de programmer, der er licenseret med den. Jeg er enig med Stallman, men ikke det ekstreme ved udelukkende at bruge gratis software. At en bruger ønsker at bruge LLvm/Clang er inden for deres rettigheder, men at SLF ønsker at erstatte GCC med LLVM/Clang ville være en modstrid med principperne for fri software.