LLVM / Clang. Er du gal GCC?

llvm-logo

Jeg måtte skrive et innlegg om denne kontroversen lagt ut i LWN. Og det er at LLVM / Clang-kompilatoren begynner å bekymre på GNU-postlistene.

Det var en gang en kompilator kalt GCC som med sine mer enn 25 års eksistens fortsetter å ha stor respekt for sin gratis og copyleft lisens, i tillegg til å være kompilatoren som brukes av Linux-kjernen og inntil nylig av FreeBSD. Alle som ønsket å lære å utvikle seg i C eller C ++, brukte sikkert GCC uavhengig av maskinens arkitektur. GCC led imidlertid av en viss hemmelighold, delvis på grunn av filosofien til de som skapte den, og delvis på grunn av dens katedralstil, hvor det ble utøvd sterk kontroll over hva som foregikk i GCC og hva som ikke var (nå ikke så mye, men fortsatt eksisterer), som åpnet måte for konstruksjon av frontender og andre funksjoner som GCC til slutt vedtok. For å lære mer om den korte historien til EGCS, Jeg legger igjen denne lenken.

I mellomtiden førte et forskningsprosjekt ved University of Illinois i Urbana-Champaign rundt 2002 til opprettelsen av en kompilator opprettet på en modulær måte slik at dens individuelle elementer som frontendene, kodegeneratorer og optimaliserere. De kaller ham LLVM fordi det først var en virtuell maskin på lavt nivå, men det endte med å bli mer enn det. Og de lisensierte ham med sin egen lisens, som var lik BSD (gratis, ikke kopyleft, i samsvar med GPL). År senere ble Apple interessert i LLVM og adopterte den for sine iOS- og OS X-operativsystemer, samt å bygge (og slippe under samme gratis lisens som LLVM) din egen front-end ringte klang, for C og mål C. Ulempen er muligheten for å inkludere LLVM / Clang i proprietære programmerSlik er tilfellet med CUDA-kompilatoren fra NVIDIA og IDE XCode fra Apple.

Men en dag, for noen uker siden, på emacs-postlisten, midt i en diskusjon om en autofullføringsmodus designet for Clang, Dimitry gutov sier "Jeg ble fortalt for lenge siden at Richard hatet Clang så mye som var imot å inkludere kode som bruker den i emacs. " Dette førte senere til en annen diskusjon om clang og gratis programvare hvor Richard avklarer selv: «Vår policy er ikke å godta endringer i noen GNU-pakke som kan fungere med Clang, men ikke med GCC. Emacs vil ikke oppmuntre folk til å gå bort fra GCC. Når vi får sjansen, vil vi oppmuntre til å bruke GCC fremfor Clang. "

Kort tid etter vises Eric Raymond (kjent for å lage katedralen og basaren, sammen med definisjonen av åpen kildekode) som halvparten synger jousten, halvt trolling, går og sier at LLVM / Clang var et svar på GCC-prosjektets motstand mot å være mer interoperable, pluss at Clang overgår GCC på flere tekniske tiltak. I følge han (og viser en video fra et Chandler Carruth-foredrag) spurte Clang-utviklerne Stallman om det var noen grunn til at GCC-frontendene ikke kunne gjøres om til dynamiske biblioteker som kan kobles sammen med ethvert program som ønsker å analysere kildekoden. Stallman svarte at ett mål med GCC var unngå proprietære programmer for å bruke noen av delene, så de unngikk bevisst forskjellige ting som posiblemente ville ha tilrettelagt for slik bruk …… ..som de vurderte et lite nyttig svar. De ønsket å lage IDEer og andre verktøy som deler kompilatorkode, og GCC ville ikke la dem, så det for å opprette Clang og sende GCC til / dev / null. GCC-utviklere de hoppet på ham tindrende for ikke å være fullstendig informert (med det faktum at Clang slår GCC i flere tekniske tiltak). Midt i horingen dukker Stallman opp og sier det LLVM er en forferdelig throwback, ikke av tekniske grunner, men bare for sin ikke-kopyleft lisens som gagner Apple.

Deretter viet LWN-artikkelen lange avsnitt om GCCs modularitet og tiltakene de med vilje inkluderte for å gjøre det vanskelig å bruke den interne representasjonen av proprietære programmer, på GCC Runtime Library Unntak som løser spørsmålet om GCC skal kompilere proprietær kode. Jeg vil også legge til saken om FreeBSD (nylig utgitt versjon 10, erstatter GCC med LLVM / Clang som hovedkompilator). Den siste versjonen av GCC de brukte var 4.2.1 (det siste med GPLv2-lisens) og ei heller gal de skulle oppdatere den til en versjon med GPLv3 (de vil bare en BSD uten GPL), så LLVM / Clang kommer til dem som en hanske.

Kort sagt, nok en kamp i den evige GPL vs BSD-krigen.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   pandev92 sa

    Ikke interessant, la oss la utviklerne drepe hverandre.

    1.    eliotime3000. sa

      Og så har vi en mer misfornøyd ansatt til å jobbe hos Microsoft og Apple.

    2.    rammeverk sa

      Du har rett, jeg støtter at programvaren alltid er gratis, slik at ALLE MENNESKER kan lese den (det er den eneste grunnen til at jeg støtter og bruker Linux), men til slutt har programmererne det siste ordet.

  2.   f3niX sa

    God artikkel, jeg liker alltid diazepan-artikler, de kommer utenom det vanlige.

  3.   Germán sa

    Sannheten er at det er en veldig dum tanke fra de av gcc, det er mer på det tidspunktet skaperen av LLVM tilbød koden til gcc og de avviste den, CLang er designet slik at IDEene kan bekrefte kode i sanntid som ikke bare fordeler private apper også åpen kildekode som KDevelop eller QtCreator bortsett fra avanserte redaktører som Vim, Kate, emacs, etc. Jeg antar at noe lignende vil ende opp med egcs og det vil bli absorbert under gpl lisens så snart linux kan kompileres med dette som skjedde med egcs

    1.    eliotime3000. sa

      Hvis de ikke kan forbedre EGCS og / eller gjøre det til den beste erstatningen for CLang, drar jeg til CLang og LLVM.

    2.    xlash sa

      Dum? Jeg tror ikke det. Det faktum at GCC ikke kan brukes til å lage proprietær programvare, er en måte å prioritere utvikling av gratis programvare og ikke dra nytte av den til utvikling av proprietær programvare. Det er en måte å forsvare fri programvare på, derfor bør den støttes. Mr. Stallman har helt rett, det er et skritt bakover. Videre vil selskaper som Apple, som nevnt i artikkelen, ha nytte av LLVM / Clang uten å absolutt bidra til samfunnet og uten å gi noen kreditt til prosjektet.

      Skål folk!

      1.    Germán sa

        Både GCC og LLVM / CLANG kan kompilere proprietær programvare. Det som ikke kan endres er GCC og ikke gjøre disse endringene kjent. LLVM / CLANG kan lisensieres på nytt som gpl, den største forskjellen mellom disse er at for LLVM / CLANG må de bruke C ++, og de fra GCC ønsket ikke å se den eller male den før nylig. Fra mitt synspunkt i stedet for å omskrive GCC til C ++ slik de gjør nå, burde de ha portet arkitekturen som GCC støtter, og LLVM / CLANG ikke og språkene til sistnevnte og har en renere kode og opprettholder sin egen utviklingsgren.

    3.    Arthur sa

      Jeg tror din mening er ubegrunnet, over de tekniske problemene er gratis programvare. Det er det som bekymrer Mr. Stallman mest. Fra det jeg ser best for deg er den tekniske delen, og du har din rett, men når du ikke har noe valg fordi et selskap overtok teknologien din, vil du tenke deg om to ganger.
      På den annen side med GCC kan du bekrefte koden i sanntid, som jeg gjentar, din mening er ubegrunnet.

      1.    Germán sa

        1-Hvis GCC gafler LLVM / CLANG og firma og lisensierer det på nytt som GPL, vil all koden som er inkludert i gaffelen være under GPL, og LLVMs må be om tillatelse til å omlisensiere den og inkludere den i repoen. Jeg informerer deg om at lisenstypen MIT (XORG, WAYLAND, ...) eller BSD (FreeBSD, ...) er like tillatende som LLVM
        2 - Med GCC kan du ikke implementere en kodefullføringsautomat eller kodeverifiser i sanntid gjennom et bibliotek som den tilbyr i motsetning til CLANG
        3 - LLVM er en overlegen løsning for GCC, ikke bare teknisk, men også når det gjelder effektivitet, tar LLVM / CLANG binomial halv tid å kompilere

  4.   Ñandekuera sa

    Leve GNU og GPL!

    1.    eliotime3000. sa

      Se om de kan lage sin egen CLang med alkohol, pengespill og slamp.

      1.    Ñandekuera sa

        Hei?

    2.    eliotime3000. sa

      Nei, Richard. Det faktum at SELinux er NSAs arbeid, betyr ikke at noe annet ikke-GPL-lisensiert verktøy (som LLVM / CLang) kommer fra samme matrise.

      Seriøst, jeg trodde det var et helt rasjonelt motiv for dette, men jeg ser at FSF er mer konservative enn Satoru Iwata eller noe medlem av MAFIAA.

      1.    Staff sa

        Det er sett at du ikke leste adresselisten, og du holdt deg med det artikkelen sier mellom linjene.
        Det ble gitt rasjonelle argumenter, til og med tekniske muligheter, men uansett er det veldig vanlig å lese tittelen og hoppe rett inn i kommentarene.

  5.   dårlig taku sa

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

  6.   livlig sa

    Puritanerne kommer til å unnskylde meg, men jeg må si det: Jeg har aldri likt Stallman, og det virker slik resten av dagene mine.

    Du kan ikke være så lukket. Han virker som en fanatiker, en gal, og ja, uansett hvor mye respekt han fortjener for prestasjonene og hva han står for, jeg liker ham ikke.

    1.    Zironid sa

      Jeg er enig. Først likte jeg ham veldig, men nå virker han for ekstrem ...

      1.    Canales sa

        Ekstremist ... gal ... fanatisk ... ja, det kommer an på hvordan du ser på det. For meg er Mr. Richard Stallman en person med en enorm sosial samvittighet. Betydningen av livet hans har vært og er å forbedre samfunnet, ikke programvare. Det er forskjellen mellom fri programvare / åpen kildekode, ved at den første ser etter sosiale problemer og den andre for tekniske problemer.

    2.    xlash sa

      Elav kompis, det handler ikke om å være puritaner eller ikke. Gratis programvare ble født som en sosial bevegelse, og det er det Mr. Stallman forsvarer, som mange gjør.

      Du kan ikke være så lukket. Han virker som en fanatiker, en gal, og ja, uansett hvor mye respekt han fortjener for prestasjonene og hva han står for, jeg liker ham ikke. »

      Egentlig er det motsatt. Målet er at alle kan få fri tilgang til programvaren uten at noen begrenser bruken av den gjennom proprietære modifikasjoner, og som jeg sa i min forrige kommentar, prioriterer de og understreker utviklingen av gratis programvare.

      Jeg tror du forveksler fanatisme med et annet begrep. Fanatisme dreper, som historien har vist godt. Begrepet du leter etter kan være radikalt, men uten den radikalismen ville ikke fri programvare og GNU / linux-bevegelse eksistere, i det minste slik vi kjenner det i dag. Når det gjelder den sprø tingen, vil jeg ikke krangle med deg, men etter å ha sett det jeg har sett i disse par årene, er ikke sprø folk så sprø.

      Med dette avsnittet vil jeg si at fri programvarebevegelse ikke bare er en datamaskinbevegelse, men også en sosial bevegelse, og den må forsvares. Og hvis Elav må du være radikal om det sosiale. Bedrifter som Apple eller Microsoft vil ikke nøle med å utnytte omstendighetene. Vi må skape bevissthet om brukernes og menneskers rettigheter generelt.

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

      Skål Folk!

      1.    Mr_E sa

        @Xlash: SIR! ... Takk! Det var det jeg trengte å lese. +1

        Jeg kopierer deg, jeg skriver den ut og legger den til siden av Bibelen. (For ordens skyld: ikke i eller på toppen av det).
        Til slutt, takket være dette trekket og innsatsen til Linus og samfunnet, blir det oppnådd noe som har forandret verden:
        "Det er en før Linux og en NÅ med LINUX."

      2.    Ñandekuera sa

        + 10

    3.    Mr_E sa

      😀 @Elav:
      Jeg beklager ikke, men jeg måtte si:
      Noen av dine tidligere innlegg har likt meg, men ikke dette ... og hvis de fortsetter slik: kanskje det vil fortsette å være slik resten av dagene mine.
      Ikke vær lukket. Du virker fanatisk, gal og like mye respekt som prestasjonene dine (dette forumet) og det du fortjener ... Jeg liker ikke (kommentaren din).
      😀 - hehe! nå kan du oppleve (litt) det samme som RMS. Du trenger bare å ha samme diffusjonsbane som ham, og vel, føl deg nesten nøyaktig den samme.
      Hilsen cuñao!

  7.   Zironid sa

    Jeg forstår ikke hvorfor Stallman er så lukket. Jeg risikerer å si at jeg tror LLVM er enda friere enn GCC, siden det gir frihet til å bruke det selv i proprietære programmer. Ja, jeg vet at begrensning i GCC kan hjelpe gratis programvare, men det virker absurd for meg at det motsetter seg LLVM på den måten.

    Hilsen

    1.    Wilson sa

      Stallman er ikke stengt. Artikkelen er veldig tilbøyelig til personlige meninger fra forfatteren.
      I virkeligheten er GCCs avgjørelser stort sett tekniske. I GCC ønsker de modularitet, og de gjør det, men på en annen måte (unngår problemer som finnes i CLANG).
      For mer informasjon https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Det er hva raymond skrev, og det er utviklerens svar.

  8.   santicluke sa

    Dette virker for meg å se hvem som har det større ... Egoet, selvfølgelig.
    Begge kompilatorene er utmerkede. Men som ethvert verktøy, avhenger det av hvordan du bruker det.
    Man kan skrive gratis kode i C # og lage en rakett med Linux.

  9.   gallux sa

    Jeg synes at her burde du være mer pragmatisk. Stallman skal ha en visjon og ikke slutte å miste sin vei. Det som bekymrer seg er at det nåværende samfunnet ikke fragmenterer det som skjer. Det mest fornuftige er at selv om bsd-lisensen tillater at den brukes i proprietære miljøer, så lenge forfatterne er anerkjent (og til og med at deres derivater er), bruker den samme logikken, men med gpl v2 eller høyere ..

  10.   pandev92 sa

    Heldigvis har stallman knapt blitt hørt på en stund. Det andre, et dataprogram eller en kompilator, vil aldri være et sosialt problem, i tillegg til at det alltid har vært alternativer som ikke er gratis! men gratis.
    Når det gjelder llvm clang, er ikke kontroversen fornuftig, siden kilden alltid vil være der, den er utgitt under en bsd-lisens, derfor er det gratis programvare at et selskap kan bruke den til sine mørke formål, det betyr ikke at du kan ikke lenger få tilgang til den opprinnelige koden, men jeg ser at ingen her har en anelse, bortsett fra 2 eller 3.

    1.    xlash sa

      "Et dataprogram eller en kompilator vil aldri være et sosialt spørsmål"
      Hva mener du ikke? Jeg respekterer at du ikke forsvarer den frie programvarebevegelsen som mange andre gjør, men å benekte det gratis programvare representerer virker respektløst fra din side overfor de menneskene som investerer mye tid, penger og krefter i å forsvare og skape det.

      Selvfølgelig er llvm gratis programvare, men det betyr ikke at dens modifikasjoner og avledninger er det. Ideen er ikke bare å ha fri tilgang til den originale programvaren, men også dens modifikasjoner. Hvis jeg utvikler et program og deler det med deg, vil jeg at du gjør det samme for menneskene du vil gi en kopi av din modifiserte versjon til. Dette er hva fri programvare og copyleft forsvarer, derfor er det et sosialt spørsmål.

      "Men jeg ser, ingen her har en anelse, bortsett fra 2 eller 3."
      Jeg vet ikke hvordan du kom til den konklusjonen lenger når kommentarene som er lagt ut her, refererer til filosofien og friheten til programvare som sammenligner forskjellene mellom to typer lisenser, selv om de er kompatible med hverandre.

      1.    diazepam sa

        Hvordan påvirker det hverdagen til en regnskapsfører som ikke vet noe om programmering ved hjelp av et regnskapsprogram som ble samlet med en slik kompilator?

        1.    xlash sa

          Ikke i det hele tatt, så lenge jeg er fri. Men emnet jeg behandler i kommentarene er et annet, Diazepan. Jeg snakker om bruk av en X-kompilator for å kompilere proprietær programvare, om lisensene som brukes i hver kompilator og deres forskjeller, jeg nevner også fordelen med GLP fremfor BSD, alltid fra frihetssynet selvfølgelig.

    2.    Staff sa

      LOL, og hevder at ingen har en idé, er veldig sterke ord for noen som sier at programvare ikke er et sosialt problem.
      Du må være blind eller i det minste noe nærsynt for ikke å se det, når det til og med er land som migrerer (i større eller mindre prosentandel) til gratis programvare, når det av alle internasjonale medier gjenspeiler hvor proprietær programvare er et verktøy for spionasje i stor skala, når den rikeste mannen i verden nettopp er viet til et operativsystem.
      Hva det er å lese.

    3.    Ñandekuera sa

      ... Jeg skulle ønske at flere stallmans og mindre pandevs ble hørt ...

  11.   Staff sa

    Artikkelen er noe tendensiøs, til å begynne med tittelen, fordi de som burde bli spurt om de "blir litt gale" er LLVM, siden det er de som klager bittert.

    Og om emnet kan du se hykleriet til de som først raser mot det de kaller "fragmentering" og hvor "forferdelig" det er for gratis programvare.
    Men når noen stemmer overens med det han sier og gjør, følger hans linje og ikke er enige om at en gratis kompilator blir en plattform for uendelig mange proprietære kompilatorer, så ja, Leve, alle skal lage gafler!

  12.   Canales sa

    Gratis programvare er per definisjon en sosial bevegelse fra fødselen.

    Når det gjelder GPL vs BSD:
    “Freedom 3 inkluderer friheten til å publisere dine modifiserte versjoner som gratis programvare. En gratis lisens kan også autorisere andre former for publisering; med andre ord trenger det ikke å være en kopiløftlisens. En lisens som krever at modifiserte versjoner ikke er gratis, kan imidlertid ikke betraktes som gratis. "
    “Copyleft (veldig kort definert) er regelen basert på at når du omfordeler programmet, kan du ikke legge til begrensninger for å nekte andre de viktigste frihetene. Denne regelen er ikke i konflikt med hovedfrihetene, men den beskytter dem. "

    Som du kan se, copyleft, selv om det på kort sikt tar bort litt frihet, på lang sikt beskytter det det. Derfor forsvarer Mr. Stallman GPL: "Mitt arbeid innen fri programvare er motivert av et idealistisk mål: å spre frihet og samarbeid."

  13.   Canales sa

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

    “Åpen kildekode er en programmeringsmetodikk, gratis programvare er en sosial bevegelse. For fri programvarebevegelse er fri programvare et etisk imperativ, en viktig respekt for brukernes frihet. Derimot reiser åpen kildekodefilosofi spørsmålene når det gjelder hvordan man kan "forbedre" programvaren, bare i praktisk forstand. Den hevder at proprietær programvare ikke er en optimal løsning på praktiske problemer som skal løses. I de fleste tilfeller, når man diskuterer 'åpen kildekode', blir ikke godt og ondt vurdert, bare popularitet og suksess. "

  14.   Daniel noriega sa

    Jeg har allerede kommentert det flere ganger, og jeg fortsetter å gjenta det, Linux generelt liker jeg mye, men hvis det er noe jeg hater med Linux, er det fellesskapet. Når du klarer å hoppe nedover en klippe for å fortsette med en ideologi som er "lukket" som "fri programvare", så innser du at verden er opp ned. Jeg tror at gratis programvare i begynnelsen var tydelig om det, i dag er historien annerledes.

  15.   sjelden tilfelle sa

    Jeg tror at mange ikke har vært tydelige på vilkårene og formålene med GPL-lisensen. GPL-lisensen er veldig tillatelig, men med den grensen å ikke tillate fortjeneste fra programmene som er lisensiert med den. Jeg er enig med Stallman, men ikke det ekstreme ved å utelukkende bruke gratis programvare. For en bruker å ønske å bruke LLvm / Clang er deres rett, men for SLF å ønske å erstatte GCC med LLVM / Clang vil det være en motsetning til prinsippene for fri programvare.