LLVM / Clang. Är du galna GCC?

llvm-logotyp

Jag var tvungen att skriva ett inlägg om denna kontrovers publicerad i LWN. Och det är att LLVM / Clang-kompilatorn börjar oroa på GNU-postlistor.

Det fanns en gång en kompilator som heter GCC som med sina mer än 25 år av existens fortsätter att ha stor respekt för sin fria licens och copyleft-licens, liksom att vara den kompilator som används av Linux-kärnan och tills nyligen av FreeBSD. Den som ville lära sig att utvecklas i C eller C ++, använde säkert GCC oavsett maskinens arkitektur. GCC led dock av en viss sekretess, dels på grund av filosofin hos de som skapade den, dels på grund av dess utveckling i katedralstil, där stark kontroll utövades över vad som pågick i GCC och vad som inte var (nu inte så mycket men fortfarande finns), vilket banade väg för sätt för konstruktion av frontendar och andra funktioner som GCC så småningom antog. För att lära dig mer om EGCS, Jag lämnar den här länken.

Under tiden, vid University of Illinois i Urbana-Champaign ca 2002, ledde ett forskningsprojekt till skapandet av en kompilator skapad på ett modulärt sätt så att dess enskilda element som frontend, kodgeneratorer och optimerare. De kallar honom LLVM eftersom det först var en virtuell maskin på låg nivå men det blev mer än så. Och de licensierade honom med sin egen licens, vilket var liknar BSD (gratis, icke-copyleft, GPL-kompatibel). År senare blev Apple intresserad av LLVM och antog det för sina iOS- och OS X-operativsystem samt bygga (och släpp under samma gratis licens som LLVM) din egen front-end ringde Klang, för C och mål C. Nackdelen är möjligheten att inkludera LLVM / Clang i egna programSå är fallet med CUDA-kompilatorn från NVIDIA och IDE XCode från Apple.

Men en dag, för några veckor sedan, på emacs e-postlista, mitt i en diskussion om ett autoslutföringsläge utformat för Clang, Dimitry gutov Han säger "Jag fick veta för länge sedan att Richard Stallman hatade Clang så mycket som var emot att inkludera kod som använder den i emacs. " Detta ledde senare till en ny diskussion om clang och fri programvara där Richard själv klargör: «Vår policy är att inte acceptera ändringar i något GNU-paket som kan fungera med Clang men inte med GCC. Emacs uppmuntrar inte människor att gå bort från GCC. När vi får möjlighet kommer vi att uppmuntra att använda GCC över Clang. "

Strax efter dyker Eric Raymond upp (känd för att skapa katedralen och basaren, tillsammans med definitionen av öppen källkod) som halvt sjunger halvt trolling, går och säger att LLVM / Clang var ett svar på GCC-projektets motstånd mot att vara mer driftskompatibla, plus att Clang överträffar GCC på flera tekniska åtgärder. Enligt honom (och visar en video från en Chandler Carruth-föreläsning) frågade Clang-utvecklarna Stallman om det fanns någon anledning till att GCC-frontändarna inte kunde förvandlas till dynamiska bibliotek som kan länkas av något program som vill analysera källkoden. Stallman svarade att ett mål för GCC var undvika egna program för att använda någon av dess delar, så de undvek medvetet olika saker som posiblemente de skulle ha underlättat en sådan användning ... som de ansåg ett ohjälpsamt svar. De ville skapa IDE: er och andra verktyg som delar kompilerkod och GCC skulle inte låta dem, så för att skapa Clang och skicka GCC till / dev / null. GCC-utvecklare de hoppade på honom tikande för att inte vara helt informerad (med det faktum att Clang överträffar GCC i flera tekniska åtgärder). Mitt i horan verkar Stallman säga det LLVM är en fruktansvärd throwback, inte av tekniska skäl utan bara för dess icke-copyleft-licens som gynnar Apple.

Sedan tillägnar LWN-artikeln långa stycken om GCC: s modularitet och de åtgärder som de medvetet inkluderade för att göra det svårt att använda dess interna representation av egna program, på GCC Runtime Library Undantag som löser frågan om GCC ska sammanställa proprietär kod. Jag skulle också vilja lägga till fallet med FreeBSD (nyligen släppt version 10, ersätter GCC med LLVM / Clang som huvudkompilator). Den senaste versionen av GCC som de använde var 4.2.1 (det senaste med GPLv2-licensen) och inte heller galen de skulle uppdatera den till en version med GPLv3 (de vill bara en BSD utan GPL), så LLVM / Clang kommer till dem som en handske.

Kort sagt, en annan strid med det eviga GPL vs BSD-kriget.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   pandev92 sade

    Inte intressant, låt oss utvecklarna döda varandra.

    1.    eliotime3000 sade

      Och så har vi ytterligare en missnöjd medarbetare att arbeta hos Microsoft och Apple.

    2.    marcos sade

      Du har rätt, jag stöder att programvaran alltid är gratis så att MÄNNISKOR kan läsa den (det är den enda anledningen till att jag stöder och använder Linux), men till slut har programmerarna det sista ordet.

  2.   f3niX sade

    Bra artikel, jag gillar alltid diazepanartiklar, de kommer utöver det vanliga.

  3.   Germán sade

    Sanningen är att det är en mycket dum tanke från gcc: s, det är mer när skaparen av LLVM erbjöd koden till gcc och de avvisade den, CLang är utformad så att IDE kan verifiera kod i realtid som inte bara gynnar privata appar, även öppna källkod som KDevelop eller QtCreator bortsett från avancerade redaktörer som Vim, Kate, emacs, etc. Jag antar att något liknande kommer att hända med egcs och de kommer att absorbera det under gpl-licens så snart linux kan kompileras med detta eftersom det hände med egcs

    1.    eliotime3000 sade

      Om de inte kan förbättra EGCS och / eller göra det till den bästa ersättningen för CLang, går jag till CLang och LLVM.

    2.    xlash sade

      Korkad? Jag tror inte det. Det faktum att GCC inte kan användas för att skapa egen programvara är ett sätt att prioritera utvecklingen av fri programvara och inte utnyttja den för utveckling av egen programvara. Det är ett sätt att försvara fri programvara därför bör det stödjas. Mr. Stallman har helt rätt, det är ett steg bakåt. Dessutom kommer företag som Apple, som nämnts i artikeln, att dra nytta av LLVM / Clang utan att absolut bidra till samhället och utan att ge någon kredit till projektet.

      Skål människor!

      1.    Germán sade

        Både GCC och LLVM / CLANG kan kompilera egen programvara, det som inte kan modifieras är GCC och inte göra dessa ändringar kända. LLVM / CLANG kan licensieras på nytt som gpl, den största skillnaden mellan dessa är att för LLVM / CLANG måste de använda C ++ och de av GCC ville inte se det eller målade det förrän nyligen. Från min synpunkt istället för att skriva om GCC till C ++ som de gör nu, borde de ha porterat arkitekturerna som GCC stöder och LLVM / CLANG inte och språken till den senare och har en renare kod och behåller sina egen utvecklingsfilial

    3.    Arthur sade

      Jag tror att din åsikt är ogrundad, ovanför de tekniska problemen är fri programvara. Det är det som oroar Mr. Stallman mest. Från det jag ser bäst för dig är den tekniska delen och du har rätt, men när du inte har något val eftersom ett företag tog över din teknik kommer du att tänka två gånger.
      Å andra sidan med GCC kan du verifiera koden i realtid, som jag upprepar är din åsikt ogrundad.

      1.    Germán sade

        1-Om GCC tillverkar en gaffel av LLVM / CLANG och företag och licensierar den igen som GPL, kommer all kod som de innehåller i gaffeln att vara under GPL och de av LLVM måste begära tillstånd att omlicensera den och inkludera det i deras repo. Jag meddelar er att licenstypen MIT (XORG, WAYLAND, ...) eller BSD (FreeBSD, ...) är lika tillåtande som LLVM
        2 - Med GCC kan du inte implementera en kodavslutningsautomat eller kodverifierare i realtid genom ett bibliotek som den tillhandahåller till skillnad från CLANG
        3 - LLVM är en överlägsen lösning för GCC, inte bara tekniskt utan också i effektivitet, tar LLVM / CLANG binomial halv tid att kompilera

  4.   Ñandekuera sade

    Länge leve GNU och GPL!

    1.    eliotime3000 sade

      Se om de kan skapa sin egen CLang med alkohol, spel och slampor.

      1.    Ñandekuera sade

        va?

    2.    eliotime3000 sade

      Nej, Richard. Det faktum att SELinux är NSA: s arbete betyder inte att något annat icke-GPL-licensierat verktyg (som LLVM / CLang) kommer från samma matris.

      På allvar, jag trodde att det fanns ett helt rationellt motiv för detta, men jag ser att FSF är mer konservativa än Satoru Iwata eller någon medlem i MAFIAA.

      1.    Personal sade

        Det framgår att du inte läste e-postlistan och att du stannade med vad artikeln säger mellan raderna.
        Rationella argument gavs, även tekniska alternativ, men hur som helst är det mycket vanligt att läsa titeln och hoppa direkt in i kommentarerna.

  5.   dålig taku sade

    Ñuhhhh GCC + Emacs. Om du vill överleva ta min hand (stallman)

  6.   livlig sade

    Puritanerna kommer att ursäkta mig, men jag måste säga det: Jag har aldrig gillat Stallman, och det verkar så under resten av mina dagar.

    Du kan inte vara så sluten. Han verkar som en fanatiker, en galning, och ja, så mycket respekt som han förtjänar för sina prestationer och vad han står för, gillar jag honom inte.

    1.    Zironid sade

      Jag håller med. Först gillade jag honom mycket, men nu verkar han för extrem ...

      1.    Canales sade

        Extremist ... galen ... fanatisk ... ja, det beror på hur du ser på det. För mig är Richard Stallman en person med ett stort socialt samvete. Betydelsen av hans liv har varit och är att förbättra samhället, inte programvara. Det finns skillnaden mellan fri programvara / öppen källkodsprogram, genom att den första letar efter sociala frågor och den andra för tekniska problem.

    2.    xlash sade

      Elav kompis, det handlar inte om att vara puritan eller inte. Gratis mjukvara föddes som en social rörelse och det är det som Stallman försvarar, liksom många.

      Du kan inte vara så sluten. Han verkar som en fanatiker, en galning, och ja, oavsett hur mycket respekt han förtjänar för sina prestationer och vad han står för, jag gillar honom inte. "

      Egentligen är det tvärtom. Målet är att vem som helst kan få fri tillgång till programvaran utan att någon begränsar dess användning genom egna ändringar och, som jag sa i min tidigare kommentar, prioriterar och betonar de utvecklingen av fri programvara.

      Jag tror att du förväxlar fanatism med en annan term. Fanatism dödar, som historien har visat väl. Termen du letar efter kan vara radikal men utan den radikalismen skulle fri programvara och GNU / linux-rörelse inte existera, åtminstone som vi känner till den idag. När det gäller den galna saken argumenterar jag inte med dig, men med tanke på vad jag har sett under de här par åren är galna människor inte så galna.

      Med denna punkt vill jag säga att fri programvarurörelse inte bara är en datorrörelse utan också en social rörelse och den måste försvaras. Och om Elav måste du vara radikal om det sociala. Företag som Apple eller Microsoft kommer inte att tveka att dra nytta av omständigheterna. Vi måste skapa medvetenhet om användarnas och människors rättigheter i allmänhet.

      PS Jag heter Elav eftersom jag svarar på honom men kommentaren riktar sig till alla GNU / linuxers.

      Skål Människor!

      1.    Herr_E sade

        @Xlash: SIR! ... Tack! Det var vad jag behövde läsa. +1

        Jag kopierar dig, jag skriver ut den och lägger den på sidan av Bibeln. (För posten: inte i eller ovanpå den).
        Till slut tack vare detta drag och Linus och samhällets ansträngningar uppnås något som har förändrat världen:
        "Det finns en före Linux och en NU med LINUX".

      2.    Ñandekuera sade

        +10

    3.    Herr_E sade

      😀 @Elav:
      Jag ber inte om ursäkt men jag var tvungen att säga det:
      Några av dina tidigare inlägg har gillat mig, men inte den här ... och om de fortsätter så här: kanske kommer det att fortsätta vara så resten av mina dagar.
      Var inte sluten. Du verkar fanatisk, galen och lika mycket respekt som dina prestationer (det här forumet) och vad du förtjänar ... Jag gillar inte (din kommentar).
      😀 - hehe! nu kan du uppleva (lite) samma som RMS. Du behöver bara ha samma diffusionsbana som han, och väl, känna dig nästan exakt densamma.
      Hälsningar cuñao!

  7.   Zironid sade

    Jag förstår inte varför Stallman är så stängd. Jag riskerar att säga att jag tycker att LLVM är ännu friare än GCC, eftersom det ger friheten att använda det även i egna program. Ja, jag vet att begränsning i GCC kan hjälpa gratis programvara, men jag tycker det är absurt att det motsätter sig LLVM på det sättet.

    hälsningar

    1.    wilson sade

      Stallman är inte stängd. Artikeln är mycket benägen med författarens personliga åsikter.
      I verkligheten är GCC: s beslut till stor del tekniska. I GCC vill de ha modularitet och de gör det, men på ett annat sätt (undviker problem som finns i CLANG).
      För mer information https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Det är vad raymond skrev och det finns utvecklarnas svar.

  8.   santicluke sade

    Det verkar för mig att se vem som har det större ... Egot, naturligtvis.
    Båda kompilatorerna är utmärkta. Men som alla verktyg beror det på hur du använder det.
    Man kan skriva gratis kod i C # och göra en missil med Linux.

  9.   gallux sade

    Jag tycker att du borde vara mer pragmatisk. Stallman borde ha en vision och inte sluta förlora sin väg. Det som oroar sig är att det nuvarande samhället inte är fragmenterat, vilket är vad som händer. Det mest förnuftiga är att även om bsd-licensen tillåter att den används i egna miljöer så länge författarna känns igen (och till och med att derivaten av dem är) använder de samma logik men med gpl v2 eller högre ..

  10.   pandev92 sade

    Lyckligtvis har stallman knappt hörts på ett tag. Det andra, ett datorprogram eller en kompilator, kommer aldrig att vara en social fråga, förutom att det alltid har funnits alternativ som inte är gratis! men om det är gratis.
    När det gäller llvm clang är kontroversen inte meningsfullt, eftersom källan alltid kommer att vara, den har släppts under en bsd-licens, därför är det gratis programvara, att ett företag kan använda den för sina mörka ändamål, det innebär inte att du kan inte längre komma åt den ursprungliga koden, men jag förstår, ingen här har en aning, förutom 2 eller 3.

    1.    xlash sade

      "Ett datorprogram eller en kompilator blir aldrig en social fråga"
      Vad menar du inte? Jag respekterar att du inte försvarar den fria programvarurörelsen som många andra gör, men att förneka vad fri programvara representerar verkar respektlöst från din sida mot de människor som investerar mycket tid, pengar och ansträngningar för att försvara och skapa det.

      Naturligtvis är llvm gratis mjukvara men det betyder inte att dess modifieringar och härledningar är det. Tanken är inte bara att ha fri tillgång till den ursprungliga programvaran utan också dess modifieringar. Om jag utvecklar ett program och delar det med dig skulle jag vilja att du gör detsamma för de personer som du skulle ge en kopia av din modifierade version till. Detta är vad fri programvara och copyleft försvarar, det är därför en social fråga.

      "Men jag förstår, ingen här har en aning, förutom 2 eller 3."
      Jag vet inte hur du nådde den slutsatsen längre när kommentarerna som publiceras här hänvisar till programvarans filosofi och frihet som jämför skillnaderna mellan två typer av licenser, även om de är kompatibla med varandra.

      1.    diazepam sade

        Hur påverkar det vardagen för en revisor som inte vet något om programmering med ett redovisningsprogram som sammanställts med en sådan kompilator?

        1.    xlash sade

          Inte alls, så länge jag är fri. Men ämnet som jag behandlar i kommentarerna är ett annat, Diazepan. Jag pratar om användningen av en X-kompilator för att kompilera egen programvara, om licenserna som används i varje kompilator och deras skillnader, jag nämner också fördelen med GLP jämfört med BSD, alltid ur frihetssynpunkt naturligtvis.

    2.    Personal sade

      LOL, att hävda att ingen har en aning är mycket starka ord för någon som säger att programvara inte är ett socialt problem.
      Du måste vara blind eller åtminstone lite närsynt för att inte se det, när det till och med finns länder som migrerar (i större eller mindre procent) till fri programvara, när det av alla internationella medier upprepar hur egen programvara är ett verktyg för spionage i stor skala, när den rikaste mannen i världen exakt är tillägnad ett operativsystem.
      Vad det finns att läsa.

    3.    Ñandekuera sade

      ... Jag önskar att fler stallmans och mindre pandevs hördes ...

  11.   Personal sade

    Artikeln är lite tendenser, till att börja med titeln, för de som bör frågas om de "blir lite galna" är LLVM, eftersom det är de som klagar bittert.

    Och i ämnet kan du se hyckleriet från dem som först stöter mot vad de kallar "fragmentering" och hur "fruktansvärt" det är för fri programvara.
    Men när någon överensstämmer med vad han säger och gör, följer hans linje och inte håller med om att en gratis kompilator blir en plattform för en oändlighet av proprietära kompilatorer, så ja, så länge, alla ska skapa gafflar!

  12.   Canales sade

    Gratis mjukvara är per definition en social rörelse från dess födelse.

    När det gäller GPL vs BSD:
    ”Freedom 3 inkluderar friheten att publicera dina modifierade versioner som fri programvara. En gratis licens kan också godkänna andra former av publicering; med andra ord behöver det inte vara en copyleftlicens. En licens som kräver att modifierade versioner inte är fria kan dock inte betraktas som gratis. "
    ”Copyleft (mycket kortfattat definierat) är den regel som baseras på att när du omfördelar programmet kan du inte lägga till begränsningar för att neka andra de viktigaste friheterna. Denna regel strider inte mot de viktigaste friheterna, utan skyddar dem. "

    Som du kan se, copyleft, även om det på kort sikt tar bort viss frihet, på lång sikt skyddar det det. Därför försvarar Stallman GPL: "Mitt arbete inom fri programvara motiveras av ett idealistiskt mål: att sprida frihet och samarbete."

  13.   Canales sade

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

    «Öppen källkod är en programmeringsmetodik, fri programvara är en social rörelse. För den fria programvarurörelsen är fri programvara ett etiskt krav, en viktig respekt för användarnas frihet. Däremot ställer open source-filosofin frågorna i termer av hur man "förbättrar" programvaran i en rent praktisk mening. Den hävdar att egen programvara inte är en optimal lösning på praktiska problem som ska lösas. I de flesta fall, när man diskuterar "öppen källkod", anses inte gott och ont bara vara popularitet och framgång. "

  14.   Daniel noriega sade

    Jag har redan kommenterat det flera gånger och fortsätter att upprepa det, Linux i allmänhet gillar jag mycket, men om det finns något jag hatar om Linux är det samhället. När du kan hoppa nerför en klippa för att fortsätta med en ideologi som är "stängd" som "fri programvara", inser du att världen är upp och ner. Jag tror att gratis programvara i början var tydlig om det, idag är historien annorlunda.

  15.   sällsynt fall sade

    Jag tror att många inte har varit tydliga med villkoren för GPL-licensen. GPL-licensen är mycket tillåtande men med begränsningen att inte tillåta vinst från de program som licensierats med den. Jag håller med Stallman, men inte det extrema med att endast använda gratis programvara. För en användare att vilja använda LLvm / Clang är deras rätt, men att SLF vill ersätta GCC med LLVM / Clang skulle vara en motsägelse till principerna för fri programvara.