LLVM / Clang. U Mad GCC?

logo llvm

O tejto kontroverzii som musel napísať príspevok zverejnené v LWN. A je to tak, že kompilátor LLVM / Clang začína starosti na poštových zoznamoch GNU.

Kedysi existoval kompilátor s názvom GCC, ktorý si viac ako 25 rokov svojej existencie veľmi váži svoju licenciu free and copyleft, ako aj kompilátor používaný linuxovým jadrom a donedávna FreeBSD. Každý, kto sa chcel naučiť vývoj v C alebo C ++, určite používal GCC bez ohľadu na architektúru svojho stroja. GCC však trpela určitým tajomstvo, čiastočne kvôli filozofii tých, ktorí ju vytvorili, a čiastočne kvôli jej vývoju v štýle katedrály, kde sa vykonávala silná kontrola nad tým, čo sa dialo v GCC a čo nie (teraz už nie, ale stále existuje), čo vydláždilo spôsob konštrukcie front-endov a ďalších funkcií, ktoré nakoniec GCC prijala. Ak sa chcete dozvedieť viac o krátkej histórii EGCS, Tento odkaz nechávam.

Medzitým, na University of Illinois v Urbana-Champaign okolo roku 2002, výskumný projekt viedol k vytvoreniu kompilátora vytvoreného modulárnym spôsobom tak, aby jeho jednotlivé prvky, ako sú front-endy, generátory kódu a optimalizátory. Hovoria mu Llvm pretože spočiatku to bol virtuálny stroj na nízkej úrovni, ale nakoniec to bolo viac. A udelili mu licenciu jeho vlastnou licenciou, ktorá bola podobne ako BSD (zadarmo, nie copyleft, v súlade s GPL). Po rokoch sa Apple začal zaujímať o LLVM a prijal ho pre svoje operačné systémy iOS a OS X, ako aj pre budovanie (a vydanie pod rovnakou bezplatnou licenciou ako LLVM) volá sa váš vlastný front-end rinčanie, pre C a cieľ C. Nevýhodou je možnosť zahrnutia LLVM / Clang v proprietárnych programochTo je prípad kompilátora CUDA od spoločnosti NVIDIA a IDE XCode od spoločnosti Apple.

Jedného dňa, pred niekoľkými týždňami, v emailovej konferencii, uprostred diskusie o režime automatického dopĺňania určeného pre Clang, Dimitry gutov Hovorí „Už mi bolo dávno povedané, že Richard Stallman Clanga tak nenávidel kto bol proti zahrnutiu kódu, ktorý ho používa, do emacsu. “ To neskôr viedlo k ďalšej diskusii o clang a slobodnom softvéri Objasňuje sám Richard: «Našou politikou nie je akceptovať zmeny v akomkoľvek balíku GNU, ktorý môže pracovať s Clangom, ale nie s GCC. Emacs nebude povzbudzovať ľudí, aby odchádzali od GCC. Keď sa nám naskytne príležitosť, podporíme použitie GCC nad Clangom. ““

O chvíľu nato sa objaví Eric Raymond (známy tým, že vytvoril Katedrálu a bazár spolu s definíciou Open Source), ktorý napoly spieva rytmus, polovičný trolling, ide a povie že LLVM / Clang bola odpoveďou na odpor projektu GCC voči zvýšeniu interoperability, navyše Clang prekonáva GCC v niekoľkých technických opatreniach. Podľa neho (a ukazuje sa video z prednášky Chandler Carruth) sa vývojári Clangu opýtali Stallmana, či existuje nejaký dôvod, prečo by sa klientske rozhrania GCC nemohli premeniť na dynamické knižnice, ktoré môžu byť prepojené akýmkoľvek programom, ktorý chce analyzovať zdrojový kód. Stallman odpovedal, že jeden cieľ GCC bol vyhnúť sa proprietárne programy na použitie ktorejkoľvek z jeho častí, takže sa zámerne vyhýbali rôznym veciam posiblemente uľahčili by také použitie ..... ... o čom uvažovali neužitočná odpoveď. Chceli vytvoriť IDE a ďalšie nástroje, ktoré by zdieľali kód kompilátora a GCC by im to nedovolilo, takže vytvoriť Clang a poslať GCC na / dev / null. Vývojári GCC skočili na neho mrchy za to, že nebol úplne informovaný (s tým, že Clang prekonáva GCC v niekoľkých technických opatreniach). Uprostred ufňukania sa objaví Stallman, ktorý to hovorí LLVM je hrozný návrat, nie z technických dôvodov, ale iba pre jeho licenciu bez copyleftu, z ktorej profituje spoločnosť Apple.

Potom článok o LWN venuje dlhé odseky o modularite GCC a opatreniach, ktoré zámerne zahrnuli, aby sťažilo použitie jej internej reprezentácie proprietárnymi programami na Výnimka knižnice GCC Runtime čo rieši otázku, či má GCC zostaviť vlastnícky kód. Chcel by som tiež pridať prípad FreeBSD (nedávno vydaná verzia 10, ktorá nahradzuje GCC LLVM / Clang ako hlavným kompilátorom). Najnovšia verzia GCC, ktorú používali bola 4.2.1 (najnovšie s licenciou GPLv2) a ani blázon chystali ho aktualizovať na verziu s GPLv3 (len chcú BSD bez akejkoľvek GPL), takže k nim prichádza LLVM / Clang ako rukavica.

Stručne povedané, ďalšia bitka večnej vojny GPL proti BSD.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   pandev92 dijo

    Nie je zaujímavé, nechajme sa vývojárov zabiť navzájom.

    1.    eliotime3000 dijo

      Máme teda ešte jedného nespokojného pracovníka, ktorý bude pracovať v spoločnostiach Microsoft a Apple.

    2.    Marcos dijo

      Máte pravdu, podporujem, aby bol softvér vždy bezplatný, aby ho mohol PREČÍTAŤ KTOKOLI ĽUDIA (to je jediný dôvod, prečo podporujem a používam Linux), ale nakoniec majú posledné slovo programátori.

  2.   f3niX dijo

    Dobrý článok, vždy sa mi páčia články o diazepane, vychádzajú z obyčajnosti.

  3.   Nemecky dijo

    Pravdou je, že zo strany gcc je to veľmi hlúpa myšlienka, je to skôr v čase, keď tvorca LLVM ponúkol kód gcc a oni ho odmietli. CLang je navrhnutý tak, aby IDE mohli kód overiť v reálnom čase, že výhody nielen pre súkromné ​​aplikácie, ale aj pre aplikácie s otvoreným zdrojovým kódom, ako sú KDevelop alebo QtCreator, okrem pokročilých editorov ako Vim, Kate, emacs atď. Predpokladám, že niečo podobné sa nakoniec stane s egcs a bude absorbované pod licenciou gpl, akonáhle bude s týmto možné kompilovať linux, ako sa to stalo s egcs

    1.    eliotime3000 dijo

      Ak nemôžu vylepšiť EGCS a / alebo urobiť z neho najlepšiu náhradu za CLang, som na CLangu a LLVM.

    2.    xlash dijo

      Hlúpy? To si nemyslím. Skutočnosť, že GCC nie je možné použiť na vytvorenie proprietárneho softvéru, predstavuje spôsob uprednostnenia vývoja slobodného softvéru a jeho zneužitia na vývoj proprietárneho softvéru. Je to spôsob obrany slobodného softvéru, preto by mal byť podporovaný. Pán Stallman má úplnú pravdu, je to krok späť. Okrem toho spoločnosti ako Apple, ako sa uvádza v článku, budú mať prospech z programu LLVM / Clang bez toho, aby absolútne prispievali komunite a bez toho, aby projektu poskytli akýkoľvek kredit.

      Na zdravie ľudí!

      1.    Nemecky dijo

        GCC aj LLVM / CLANG môžu kompilovať proprietárny softvér. Čo sa však nedá zmeniť, je GCC a tieto úpravy nie sú známe. Na LLVM / CLANG je možné získať opätovnú licenciu ako gpl, najväčší rozdiel medzi nimi je v tom, že pre LLVM / CLANG musia používať C ++ a tí z GCC to donedávna nechceli vidieť alebo maľovať. Z môjho pohľadu namiesto prepisovania GCC na C ++ tak, ako to robia teraz, mali mať prenesené architektúry, ktoré GCC podporuje a LLVM / CLANG nie, a jazyky k nim a mať čistejší kód a udržiavať svoje vlastné odvetvie rozvoja.

    3.    Artus dijo

      Myslím si, že váš názor je neopodstatnený, nad technickými otázkami sa nachádza slobodný softvér. To je to, čo pána Stallmana najviac znepokojuje. To, čo pre vás vidím najlepšie, je technická časť a vy máte vo svojom práve, ale keď nemáte na výber, pretože vašu technológiu prevzala spoločnosť, dvakrát si to rozmyslíte.
      Na druhej strane pomocou GCC môžete overiť kód v reálnom čase, pretože opakujem, váš názor je neopodstatnený.

      1.    Nemecky dijo

        1 - Ak spoločnosť GCC urobí vidlicu LLVM / CLANG a spoločnosť a znova na ňu urobí licenciu ako GPL, všetok kód, ktorý na uvedenú vidličku zahrnie, bude pod GPL a tie z LLVM si budú musieť vyžiadať povolenie na opätovnú licenciu v ich repo. Informujem vás, že typ preukazu spôsobilosti MIT (XORG, WAYLAND, ...) alebo BSD (FreeBSD, ...) je rovnako prípustný ako LLVM
        2 - S GCC nemôžete implementovať automatické dokončovanie kódu alebo overovač kódu v reálnom čase prostredníctvom knižnice, ktorú poskytuje, na rozdiel od CLANG
        3 - LLVM je vynikajúce riešenie pre GCC nielen z technického hľadiska, ale aj z hľadiska efektívnosti kompilácie binomika LLVM / CLANG trvá kompilácia polovičnú dobu

  4.   Eandekuera dijo

    Nech žije GNU a GPL!

    1.    eliotime3000 dijo

      Zistite, či si môžu sami vytvoriť CLang s alkoholom, hazardnými hrami a dievkami.

      1.    Eandekuera dijo

        hm?

    2.    eliotime3000 dijo

      Nie, Richard. Skutočnosť, že SELinux je dielom NSA, neznamená, že akýkoľvek iný nástroj bez licencie GPL (napríklad LLVM / CLang) pochádza z rovnakej matice.

      Vážne som si myslel, že to má úplne racionálny motív, ale vidím, že FSF sú konzervatívnejšie ako Satoru Iwata alebo ktorýkoľvek člen MAFIAA.

      1.    Zamestnanci dijo

        Je vidno, že ste si neprečítali zoznam adries a zostali ste pri tom, čo hovorí článok, medzi riadkami.
        Boli dané racionálne argumenty, dokonca aj technické možnosti, ale každopádne je veľmi bežné prečítať si nadpis a skočiť priamo do komentára.

  5.   chudák taku dijo

    Guhhhh GCC + Emacs. Ak chceš prežiť, chyť ma za ruku (stallman)

  6.   živý dijo

    Puritáni ma ospravedlnia, ale musím to povedať: Stallmana som nikdy nemal rád a zdá sa mi to tak po zvyšok mojich dní.

    Nemôžeš byť taký uzavretý. Vyzerá ako fanatik, blázon a áno, toľko úcty, koľko si zaslúži za svoje úspechy a za tým, za čím si stojí, ho nemám rád.

    1.    zironid dijo

      Súhlasím. Spočiatku sa mi veľmi páčil, ale teraz sa mi zdá príliš extrémny ...

      1.    Canales dijo

        Extrémista ... blázon ... fanatik ... áno, záleží na tom, ako sa na to pozeráte. Pán Richard Stallman je pre mňa človek s obrovským sociálnym svedomím. Zmyslom jeho života bolo a je zlepšenie spoločnosti, nie softvéru. Rozdiel medzi slobodným softvérom a softvérom s otvoreným zdrojom je rozdiel v tom, že prvý vyhľadáva sociálne problémy a druhý technický problém.

    2.    xlash dijo

      Elav kámo, nejde o to, aby si bol puritán alebo nie. Slobodný softvér sa zrodil ako sociálne hnutie, a to sa pán Stallman rovnako ako mnohí obhajuje.

      Nemôžeš byť taký uzavretý. Vyzerá ako fanatik, blázon a áno, bez ohľadu na to, akú veľkú úctu si za svoje úspechy zaslúži a za čím si stojí, nemám ho rád. “

      V skutočnosti je to naopak. Cieľom je, aby ktokoľvek mohol slobodne pristupovať k softvéru bez toho, aby ktokoľvek obmedzoval jeho použitie prostredníctvom patentovaných úprav, a ako som uviedol v predchádzajúcom komentári, uprednostňuje a zdôrazňuje vývoj slobodného softvéru.

      Myslím, že si mýlite fanatizmus s iným pojmom. Fanatizmus zabíja, ako dobre ukázala história. Hľadaný výraz môže byť radikálny, ale bez tohto radikalizmu by hnutie slobodného softvéru a GNU / linux neexistovalo, aspoň ako ho dnes poznáme. Pokiaľ ide o bláznivú vec, nehádam sa s vami, ale vzhľadom na to, čo som videl za týchto pár rokov, blázni nie sú takí blázniví.

      Týmto odsekom chcem povedať, že hnutie slobodného softvéru nie je iba hnutím počítačom, ale aj spoločenským hnutím a treba ho brániť. A ak Elav, musíš byť radikálny v sociálnej oblasti. Spoločnosti ako Apple alebo Microsoft nebudú váhať využiť okolnosti. Musíme vytvoriť povedomie o právach používateľov a ľudí všeobecne.

      PS Ja menujem Elava, pretože mu odpovedám, ale komentár je zameraný na všetkých GNU / linuxerov.

      Na zdravie ľudia!

      1.    Pán_E dijo

        @Xlash: SIR!… Ďakujem! To som si potreboval prečítať. +1

        Skopírujem ťa, vytlačím a odložím na stranu Biblie. (Pre záznam: nie na ňom ani na ňom).
        Nakoniec sa vďaka tomuto ťahu a úsiliu Linusa a komunity darí dosiahnuť niečo, čo zmenilo svet:
        „Existuje pred Linuxom a TERAZ s LINUXom.“

      2.    Eandekuera dijo

        + 10

    3.    Pán_E dijo

      😀 @Elav:
      Neospravedlňujem sa, ale musel som to povedať:
      Niektoré vaše predchádzajúce príspevky sa mi páčili, ale tento nie ... a ak budú takto pokračovať: možno to tak bude aj po zvyšok mojich dní.
      Nebuď uzavretý. Vyzeráte fanaticky, šialene a rovnako rešpektujete svoje úspechy (toto fórum) a to, čo si zaslúžite ... Nepáči sa mi (váš komentár).
      😀 - hehe! teraz môžete zažiť (trochu) to isté ako RMS. len musíš mať rovnakú difúznu trajektóriu ako on, a dobre, cítiť sa takmer úplne rovnako.
      Zdravím vás!

  7.   zironid dijo

    Nechápem, prečo je Stallman taký uzavretý. Riskujem, že poviem, že si myslím, že LLVM je ešte slobodnejší ako GCC, pretože dáva slobodu ich použitia aj v proprietárnych programoch. Áno, viem, že obmedzenie v GCC môže pomôcť slobodnému softvéru, ale zdá sa mi absurdné, že sa takýmto spôsobom stavia proti LLVM.

    pozdravy

    1.    Wilson dijo

      Stallman nie je zatvorený. Článok je veľmi naklonený osobným názorom autora.
      V skutočnosti sú rozhodnutia GCC do značnej miery technické. V GCC chcú modularitu a robia to, ale iným spôsobom (bez problémov, ktoré v CLANGu existujú).
      Pre viac informácií https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      To napísal raymond a sú tu aj odpovede vývojárov.

  8.   santicluke dijo

    Zdá sa mi, že vidím, kto to má väčšie ... Ego, samozrejme.
    Oba kompilátory sú vynikajúce. Ako každý nástroj ale záleží na tom, ako ho použijete.
    Jeden môže napísať bezplatný kód v C # a vyrobiť raketu s Linuxom.

  9.   gallux dijo

    Myslím si, že tu by ste mali byť pragmatickejší. Stallman by mal mať víziu a neprestávať strácať smer. Bojí sa, že súčasná komunita nie je rozdrobená, čo sa aj deje. Najrozumnejšie je, že aj keď licencia bsd umožňuje jej použitie v proprietárnych prostrediach, autori sú uznávaní (a dokonca aj ich deriváty) používajú rovnakú logiku, ale s gpl v2 alebo vyššou.

  10.   pandev92 dijo

    Našťastie stallmana za chvíľu takmer nebolo počuť. Ten druhý, počítačový program alebo prekladač, nikdy nebude sociálnou otázkou, okrem toho vždy existovali alternatívy, ktoré nie sú zadarmo! ale zadarmo.
    Pokiaľ ide o llvm clang, kontroverzia nemá zmysel, pretože zdrojom vždy bude, bol vydaný pod licenciou bsd, preto je to slobodný softvér, ktorý ho môže spoločnosť používať na temné účely, neznamená to, že ste už nemôže získať prístup k pôvodnému kódu, ale vidím, že tu nikto nemá ani páru, okrem 2 alebo 3.

    1.    xlash dijo

      „Počítačový program alebo prekladač nikdy nebude spoločenskou otázkou“
      Ako nie? Rešpektujem, že nebránite hnutie slobodného softvéru ako mnoho iných, ale popieranie toho, čo predstavuje slobodný softvér, sa zdá byť neúctivé z vašej strany voči ľuďom, ktorí investujú veľa času, peňazí a úsilia do jeho obrany a vytvárania.

      Llvm je samozrejme slobodný softvér, ale to neznamená, že jeho modifikácie a derivácie sú. Cieľom nie je iba možnosť slobodného prístupu k pôvodnému softvéru, ale aj jeho modifikácie. Ak vytvorím program a budem ho zdieľať s vami, bol by som rád, keby ste urobili to isté pre ľudí, ktorým by ste poskytli kópiu vašej upravenej verzie. To bránia slobodný softvér a copyleft, a preto ide o sociálnu otázku.

      „Ale vidím, nikto tu nemá ani páru, okrem 2 alebo 3.“
      Už neviem, ako ste dospeli k tomuto záveru, keď sa tu uverejnené komentáre týkajú filozofie a slobody softvéru, ktorá porovnáva rozdiely medzi dvoma typmi licencií, aj keď sú navzájom kompatibilné.

      1.    diazepam dijo

        Ako to ovplyvní každodenný život účtovníka, ktorý nevie nič o programovaní pomocou účtovného programu, ktorý bol zostavený s takýmto prekladačom?

        1.    xlash dijo

          Vôbec nie, pokiaľ budem na slobode. Ale témou, ktorej sa v komentároch venujem, je iná, Diazepan. Hovorím o použití kompilátora X na kompiláciu proprietárneho softvéru, o licenciách použitých v jednotlivých kompilátoroch a ich rozdieloch, tiež uvádzam výhodu GLP oproti BSD, samozrejme vždy z pohľadu slobody.

    2.    Zamestnanci dijo

      LOL a tvrdenie, že nikto nemá ani potuchy, sú veľmi silné slová pre niekoho, kto tvrdí, že softvér nie je sociálny problém.
      Musíte byť slepí alebo aspoň trochu myopickí, aby ste to nevideli, keď existujú dokonca krajiny, ktoré migrujú (vo väčšom alebo menšom percente) na slobodný softvér, keď vo všetkých medzinárodných médiách odráža to, ako je proprietárny softvér nástrojom pre špionáž vo veľkom meradle, keď sa najbohatší človek sveta presne venuje operačnému systému.
      Čo je na čítanie.

    3.    Eandekuera dijo

      ... bol by som rád, keby bolo počuť viac stallmanov a menej pandevov ...

  11.   Zamestnanci dijo

    Článok je do istej miery tendenčný, počnúc názvom, pretože tí, ktorých sa treba opýtať, či sa „trochu zbláznia“, je LLVM, pretože tí sa sťažujú trpko.

    A na túto tému môžete vidieť pokrytectvo tých, ktorí sa najskôr búria proti tomu, čo nazývajú „fragmentácia“ a aké „strašné“ je to pre slobodný softvér.
    Ale keď niekto v súlade s tým, čo hovorí a robí, nasleduje jeho líniu a nesúhlasí s tým, že bezplatný kompilátor sa stane platformou pre nekonečno vlastných kompilátorov, potom áno, nech žije, aby každý vytvoril vidličky!

  12.   Canales dijo

    Slobodný softvér je podľa definície sociálnym hnutím od svojho zrodu.

    Pokiaľ ide o GPL proti BSD:
    „Sloboda 3 zahŕňa slobodu zverejňovať vaše upravené verzie ako slobodný softvér. Bezplatná licencia môže povoliť aj iné formy zverejnenia; inými slovami, nemusí to byť copyleftová licencia. Licenciu, ktorá vyžaduje neslobodnú verziu modifikovaných verzií, však nemožno považovať za bezplatnú. ““
    „Copyleft (definovaný veľmi stručne) je pravidlo založené na tom, že pri redistribúcii programu nemôžete pridať obmedzenia, ktoré ostatným upierajú hlavné slobody. Toto pravidlo nie je v rozpore s hlavnými slobodami, skôr ich chráni. ““

    Ako vidíte, copyleft, hoci z krátkodobého hľadiska odoberá určitú slobodu, z dlhodobého hľadiska ho chráni. Preto pán Stallman obhajuje GPL: „Moja práca v slobodnom softvéri je motivovaná idealistickým cieľom: šírenie slobody a spolupráce.“

  13.   Canales dijo

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

    „Open source je metodika programovania, slobodný softvér je sociálne hnutie. Pre pohyb slobodného softvéru je slobodný softvér etickým imperatívom, nevyhnutným rešpektovaním slobody používateľov. Naopak, filozofia otvoreného zdroja vyvoláva otázky, ako „vylepšiť“ softvér, a to iba v praktickom zmysle. Tvrdí, že patentovaný softvér nie je optimálnym riešením praktických problémov, ktoré sa majú vyriešiť. Vo väčšine prípadov sa pri diskusii o „otvorenom zdroji“ neberie do úvahy dobro a zlo, iba popularita a úspech. ““

  14.   Daniel Noriega dijo

    Už som sa k tomu viackrát vyjadril a stále to opakujem, linux sa mi všeobecne veľa páči, ale ak je niečo, čo na Linuxe neznášam, je to komunita. Keď ste schopní skočiť z útesu a pokračovať v ideológii „uzavretej“ ako „slobodného softvéru“, potom si uvedomíte, že svet je hore nohami. Myslím si, že v začiatkoch v tom mal slobodný softvér jasno, dnes je príbeh iný.

  15.   ojedinelý prípad dijo

    Myslím si, že mnohým nebolo jasné, čo sa týka podmienok a účelov licencie GPL. Licencia GPL je veľmi tolerantná, ale s obmedzením neumožňujúcim zisk z programov s ňou licencovaných. Súhlasím so Stallmanom, ale nie s extrémom výlučného používania slobodného softvéru. To, že užívateľ chce používať LLvm / Clang, je jeho právo, ale že SLF chce nahradiť GCC za LLVM / Clang, bolo by to v rozpore so zásadami slobodného softvéru.