LLVM / Clang. U Mad GCC?

llvm-logotip

O tej polemiki sem moral napisati prispevek objavljeno v LWN. In to je, da prevajalnik LLVM / Clang začne skrbi na poštnih seznamih GNU.

Nekoč je obstajal prevajalnik z imenom GCC, ki s svojimi več kot 25 leti obstoja še naprej zelo spoštuje svojo brezplačno licenco in licenco copyleft, pa tudi prevajalnik, ki ga uporablja jedro linux in do nedavnega FreeBSD. Kdor se je želel naučiti razvijati v C ali C ++, je zagotovo uporabljal GCC ne glede na arhitekturo svojega stroja. Vendar je GCC trpel zaradi nekaterih tajnost, delno zaradi filozofije tistih, ki so jo ustvarili, deloma pa tudi zaradi katedralnega razvoja, kjer je bil močan nadzor nad dogajanjem v GCC in kaj ne (zdaj ne toliko, ampak še vedno obstaja), kar je odprlo način za gradnjo čelnih koncev in druge funkcije, ki jih je GCC sčasoma sprejel. Če želite izvedeti več o kratki zgodovini EGCS, Pustim to povezavo.

Medtem je na Univerzi v Illinoisu v Urbana-Champaign približno leta 2002 raziskovalni projekt privedel do oblikovanja modulatorja, ki je bil ustvarjen na modularni način, tako da so njegovi posamezni elementi, kot so front-end, generatorji kod in optimizatorji. Pokličejo ga LLVM ker je bil sprva navidezni stroj na nizki ravni, na koncu pa je bil več kot to. In licencirali so ga z njegovo lastno licenco, kar je bilo podobno kot BSD (brezplačno, brez kopiranja, skladno z GPL). Leta kasneje se je Apple zanimal za LLVM in ga sprejel za svoje operacijske sisteme iOS in OS X, pa tudi za gradnjo (in izdajo pod isto brezplačno licenco kot LLVM) poklican vaš lastni front-end Zvok, za C in cilj C. Slaba stran je možnost vključitve LLVM / Clang v lastniških programihTak primer je prevajalnik CUDA iz NVIDIA in IDE XCode iz Applea.

Toda nekega dne pred nekaj tedni na poštnem seznamu emacs, sredi razprave o načinu samodokončanja, zasnovanem za Clang, Dimitrij Gutov Pravi: "Že zdavnaj so mi rekli, da Richard Stallman tako sovražil Clang-a ki je nasprotoval vključevanju kode, ki jo uporablja v emacs. " To je kasneje pripeljalo do nove razprave o klanju in prosti programski opremi Richard sam pojasni: «Naš pravilnik je, da ne sprejemamo sprememb nobenega paketa GNU, ki lahko deluje s Clangom, ne pa tudi z GCC. Emacs ne bo spodbudil ljudi, da bi se oddaljili od GCC. Ko bomo imeli priložnost, bomo spodbujali uporabo GCC nad Clangom. "

Kmalu zatem se pojavi Eric Raymond (znan po ustvarjanju katedrale in bazarja, skupaj z definicijo odprtokodne kode), ki je na pol prepeval tekmo pol trolling, gre in reče da je bil LLVM / Clang odgovor na odpor projekta GCC, da bi bil bolj interoperabilen, poleg tega pa je Clang v več tehničnih ukrepih presegel GCC. Po njegovem (in prikazuje video iz predavanja Chandler Carruth), so razvijalci Clang Stallmana vprašali, ali obstaja razlog, zakaj čelnih koncev GCC ni mogoče spremeniti v dinamične knjižnice, ki jih lahko poveže kateri koli program, ki želi razčleniti izvorno kodo. Stallman je odgovoril, da je en cilj GCC izognili lastniške programe za uporabo katerega koli njegovega dela, zato so se namerno izogibali raznim stvarem, ki poiblemente bi olajšali takšno uporabo ... ... kar so menili koristen odgovor. Želeli so ustvariti IDE-je in druga orodja, ki si delijo kodo prevajalnika in jim GCC tega ne dovoli, zato ustvariti Clang in poslati GCC na / dev / null. Razvijalci GCC skočili so na njega kurba ker ni bil v celoti obveščen (s tem, da Clang v več tehničnih ukrepih presega GCC). Sredi kurbe se pojavi Stallman, ki to govori LLVM je grozno vračanje, ne iz tehničnih razlogov, ampak samo zaradi licence, ki nima avtorske pravice, kar koristi podjetju Apple.

Nato članek LWN posveča dolge odstavke o modularnosti GCC in ukrepih, ki so jih namerno vključili, da bi otežili uporabo njegove notranje zastopanosti z lastniškimi programi, o Izjema izvajalne knjižnice GCC ki rešuje vprašanje, ali naj GCC sestavi lastniško kodo. Dodal bi tudi primer FreeBSD (nedavno izdana različica 10, nadomešča GCC z LLVM / Clang kot glavnim prevajalnikom). Najnovejšo različico GCC, ki so jo uporabili je bila 4.2.1 (najnovejši z licenco GPLv2) in niti nor nameravali so ga posodobiti na različico z GPLv3 (samo hočejo BSD brez GPL), zato LLVM / Clang pride k njim kot rokavico.

Skratka, še ena bitka večne vojne GPL proti BSD.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   pandev92 je dejal

    Ni zanimivo, pustimo, da se razvijalci ubijajo.

    1.    eliotime3000 je dejal

      In tako imamo še enega nezadovoljnega delavca, ki bo delal v Microsoftu in Appleu.

    2.    marcos je dejal

      Prav imate, podpiram, da je programska oprema vedno brezplačna, tako da jo lahko prebere Kdorkoli človek (to je edini razlog, zakaj podpiram in uporabljam Linux), vendar imajo na koncu zadnjo besedo programerji.

  2.   f3niX je dejal

    Dober članek, članki o diazepanu so mi vedno všeč, nenavadni so.

  3.   Nemško je dejal

    Resnica je, da gre za zelo neumno misel tistih, ki gcc, bolj je takrat, ko je ustvarjalec LLVM ponudil kodo tistim gcc in so jo zavrnili, CLang zasnovan tako, da lahko IDE preverijo kodo pravočasno, ki ne koristi samo zasebnim aplikacijam, temveč tudi odprtokodnim, kot sta KDevelop ali QtCreator, razen naprednih urejevalnikov, kot so Vim, Kate, emacs itd. Predvidevam, da se bo nekaj podobnega zgodilo z egcs-ji in bodo to prevzeli pod licenco gpl, takoj ko bo z njim mogoče sestaviti linux, kot se je zgodilo z egcs

    1.    eliotime3000 je dejal

      Če ne bodo mogli izboljšati sistema EGCS in / ali ga bodo najbolje zamenjali za CLang, se odpravim na CLang in LLVM.

    2.    xlash je dejal

      Neumno? Jaz pa ne mislim tako. Dejstvo, da GCC ni mogoče uporabiti za ustvarjanje lastniške programske opreme, je način, kako dati prednost razvoju brezplačne programske opreme in je ne izkoristiti za razvoj lastniške programske opreme. To je način za zaščito proste programske opreme, zato jo je treba podpirati. Gospod Stallman ima popolnoma prav, to je korak nazaj. Poleg tega bodo podjetja, kot je Apple, kot je omenjeno v članku, imela koristi od LLVM / Clang, ne da bi popolnoma prispevala k skupnosti in ne dajala zaslug projektu.

      Na zdravje ljudje!

      1.    Nemško je dejal

        Tako GCC kot LLVM / CLANG lahko sestavljata lastniško programsko opremo, kar pa ni mogoče spremeniti, je GCC in teh sprememb ne da na znanje. LLVM / CLANG je mogoče znova licencirati kot gpl, največja razlika med njimi pa je, da morajo za LLVM / CLANG uporabljati C ++, tisti iz GCC pa ga do nedavnega niso želeli videti ali barvati. Z mojega vidika bi morali namesto prepisovanja GCC na C ++, kot to počnejo zdaj, prenesti arhitekture, ki jih podpira GCC, LLVM / CLANG pa ne, in jezike na slednje ter imeti čistejšo kodo in vzdrževati lastne razvojna veja.

    3.    artus je dejal

      Mislim, da je vaše mnenje neutemeljeno, nad tehničnimi težavami je prosta programska oprema. To je tisto, kar najbolj zadeva gospoda Stallmana. Kar se mi zdi najbolje za vas, je tehnični del in imate prav, toda ko ne boste imeli izbire, ker je podjetje prevzelo vašo tehnologijo, boste dvakrat premislili.
      Po drugi strani pa lahko z GCC kodo preverite sproti, kot ponavljam, vaše mnenje ni utemeljeno.

      1.    Nemško je dejal

        1-Če GCC forkne LLVM / CLANG in podjetje ter ga znova licencira kot GPL, bo vsa koda, vključena v omenjene vilice, pod GPL in LLVM bodo morali zahtevati dovoljenje za njeno nadaljnjo licenco in jo vključiti v svoj repo. Obveščam vas, da je vrsta licence MIT (XORG, WAYLAND, ...) ali BSD (FreeBSD, ...) dovoljena kot LLVM
        2 - Z GCC ne morete izvajati samodejnega dokončanja kode ali preveritelja kode v realnem času prek knjižnice, ki jo ponuja za razliko od CLANG
        3 - LLVM je vrhunska rešitev za GCC, ne samo tehnična, ampak tudi po učinkovitosti. Binoma LLVM / CLANG potrebuje polovico časa za sestavljanje

  4.   Sandekuera je dejal

    Živela GNU in GPL!

    1.    eliotime3000 je dejal

      Preverite, ali si lahko sami ustvarijo CLang z alkoholom, igrami na srečo in kurbami.

      1.    Sandekuera je dejal

        kajne?

    2.    eliotime3000 je dejal

      Ne, Richard. Dejstvo, da je SELinux delo NSA, še ne pomeni, da katero koli drugo orodje, ki nima dovoljenja GPL (na primer LLVM / CLang), prihaja iz iste matrike.

      Resno sem mislil, da je bil za to povsem racionalen motiv, vendar vidim, da so FSF bolj konzervativni kot Satoru Iwata ali kateri koli član MAFIAA.

      1.    Osebje je dejal

        Vidno je, da niste prebrali poštnega seznama in ste med vrsticami ostali pri tem, kar piše v članku.
        Navedeni so bili racionalni argumenti, tudi tehnične možnosti, a vseeno je zelo pogosto prebrati naslov in skočiti naravnost v komentarje.

  5.   slab taku je dejal

    Ñuhhhh GCC + Emacs. Če želite preživeti, me primite za roko

  6.   živahno je dejal

    Puritanci me bodo oprostili, vendar moram reči: Stallman mi ni bil nikoli všeč in se zdi, da je tako do konca svojih dni.

    Ne moreš biti tako zaprt. Zdi se kot fanatik, nor, in ja, toliko spoštovanja, kot si zasluži za svoje dosežke in to, za kar se zavzema, ga ne maram.

    1.    Zironid je dejal

      Strinjam se. Sprva mi je bil zelo všeč, zdaj pa se mi zdi preveč skrajno ...

      1.    Kanali je dejal

        Ekstremist ... nor ... fanatik ... ja, odvisno od tega, kako gledaš na to. Zame je gospod Richard Stallman oseba z veliko socialno vestjo. Smisel njegovega življenja je bil in je izboljšati družbo, ne programske opreme. Razlika med brezplačno in odprtokodno programsko opremo je v tem, da prva obravnava socialna vprašanja, druga pa tehnična vprašanja.

    2.    xlash je dejal

      Elav kolega, ni vprašanje biti puritanec ali ne. Prosta programska oprema se je rodila kot družbeno gibanje in to je tisto, kar gospod Stallman zagovarja, tako kot mnogi.

      Ne moreš biti tako zaprt. Zdi se kot fanatik, nor, in ja, ne glede na to, koliko spoštovanja si zasluži za svoje dosežke in za kar se zavzema, ga ne maram. »

      Pravzaprav je ravno obratno. Cilj je, da lahko vsakdo prosto dostopa do programske opreme, ne da bi kdo omejeval njeno uporabo z lastniškimi spremembami, in kot sem rekel v prejšnjem komentarju, dajejo prednost in poudarjajo razvoj brezplačne programske opreme.

      Mislim, da fanatizem zamenjujete z drugim izrazom. Fanatizem ubija, kot je dobro pokazala zgodovina. Izraz, ki ga iščete, je lahko radikalen, vendar brez tega radikalizma prosta programska oprema in gibanje GNU / linux ne bi obstajali, vsaj kot ga poznamo danes. Glede nore stvari se ne bom prepiral s tabo, toda potem, ko sem videl, kar sem videl v teh nekaj letih, nori ljudje niso tako nori.

      S tem odstavkom želim povedati, da gibanje proste programske opreme ni le računalniško, ampak tudi družbeno gibanje in ga je treba zagovarjati. In če Elav, moraš biti radikalen do družbenega. Podjetja, kot sta Apple ali Microsoft, ne bodo oklevala izkoristiti okoliščin. Ozavestiti moramo o pravicah uporabnikov in ljudi na splošno.

      PS Imenujem Elava, ker mu odgovarjam, vendar je komentar namenjen vsem GNU / linuxerjem.

      Na zdravje, ljudje!

      1.    Gospod_E je dejal

        @Xlash: GOSPOD! ... Hvala! To sem moral prebrati. +1

        Kopiral vas bom, natisnil in dal stran od Biblije. (Za zapis: ne v njem ali na vrhu).
        Na koncu se zahvaljujoč tej potezi in trudu Linusa in skupnosti doseže nekaj, kar je spremenilo svet:
        "Obstaja prej Linux in ZDAJ z LINUX."

      2.    Sandekuera je dejal

        +10

    3.    Gospod_E je dejal

      E @Elav:
      Ne opravičujem se, vendar sem moral reči:
      Nekaterim tvojim prejšnjim objavam sem bil všeč, ne pa tudi tej ... in če bodo nadaljevali tako: morda bo tako tudi do konca mojih dni.
      Ne bodite zaprti. Zdiš se fanatično, noro in spoštuješ toliko, kot si zaslužijo tvoji dosežki (ta forum) in to, kar zaslužiš ... Ne maram (tvoj komentar).
      😀 - hehe! zdaj lahko (malo) doživite enako kot RMS. Enostavno morate imeti enako difuzijsko pot kot on in počutiti se skoraj popolnoma enako.
      Lep pozdrav cuñao!

  7.   Zironid je dejal

    Ne razumem, zakaj je Stallman tako zaprt. Tvegam, da mislim, da je LLVM še bolj svoboden kot GCC, saj daje svobodo uporabe tudi v lastniških programih. Da, vem, da lahko omejitve v GCC pomagajo brezplačni programski opremi, vendar se mi zdi absurdno, da na tak način nasprotuje LLVM.

    pozdrav

    1.    wilson je dejal

      Stollman ni zaprt. Članek je zelo nagnjen k osebnim mnenjem avtorja.
      V resnici so odločitve GCC v glavnem tehnične narave. V GCC želijo modularnost in to počnejo, vendar na drugačen način (izogibanje težavam, ki obstajajo v CLANG-u).
      Za več informacij https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Tako je zapisal raymond in obstajajo odgovori razvijalcev.

  8.   Šantiluk je dejal

    Zdi se mi, da vidim, kdo ima večjega ... Ego, seveda.
    Oba prevajalnika sta odlična. Toda kot vsako orodje je odvisno od tega, kako ga uporabljate.
    V C # lahko napišemo brezplačno kodo in naredimo raketo z Linuxom.

  9.   gallux je dejal

    Mislim, da bi morali biti tukaj bolj pragmatični. Stollman bi moral imeti vizijo in se ne bi nehal izgubljati. Skrbi me, da sedanja skupnost ni razdrobljena, kar se tudi dogaja. Najbolj smiselno je, da čeprav licenca bsd omogoča uporabo v lastniških okoljih, če so avtorji prepoznani (in celo njihovi izpeljanki) uporabljajo isto logiko, vendar z gpl v2 ali novejšim.

  10.   pandev92 je dejal

    Na srečo stojnika že dolgo skorajda nismo slišali. Drugi, računalniški program ali prevajalnik, nikoli ne bo socialna težava, poleg tega pa so vedno obstajale alternative, ki niso brezplačne! če pa brezplačno.
    Glede llvm clang polemika ni smiselna, saj bo vir vedno bil, izdan je pod licenco bsd, torej je brezplačna programska oprema, ki jo lahko podjetje uporablja za svoje temne namene, ne pomeni, da vi ne more več dostopati do izvirne kode, vendar vidim, da tukaj nihče nima pojma, razen 2 ali 3.

    1.    xlash je dejal

      "Računalniški program ali prevajalnik ne bo nikoli družbeno vprašanje"
      Kako ne? Spoštujem, da ne zagovarjate gibanja proste programske opreme kot mnogi drugi, toda zanikanje tega, kar predstavlja brezplačna programska oprema, se zdi nespoštljivo do ljudi, ki v njeno obrambo in ustvarjanje vlagajo veliko časa, denarja in truda.

      Seveda je llvm brezplačna programska oprema, vendar to ne pomeni, da so njene spremembe in izpeljave. Ideja ni le prost dostop do izvirne programske opreme, temveč tudi do njenih sprememb. Če razvijem program in ga dam v skupno rabo z vami, bi rad, da to storite tudi za ljudi, katerim bi dali kopijo spremenjene različice. To je tisto, kar zagovarjata brezplačna programska oprema in copyleft, zato gre za socialno vprašanje.

      "Ampak vidim, tu nihče nima pojma, razen 2 ali 3."
      Ne vem več, kako ste prišli do takšnega zaključka, ko se tukaj objavljeni komentarji nanašajo na filozofijo in svobodo programske opreme, ki primerja razlike med dvema vrstama licenc, četudi sta med seboj združljivi.

      1.    diazepam je dejal

        Kako vpliva na vsakdanje življenje računovodje, ki ne ve ničesar o programiranju z uporabo računovodskega programa, ki je bil sestavljen s takim prevajalnikom?

        1.    xlash je dejal

          Sploh ne, dokler sem prosta. Toda tema, ki jo obravnavam v komentarjih, je druga, Diazepan. Govorim o uporabi prevajalnika X za prevajanje lastniške programske opreme, o licencah, ki jih uporablja vsak prevajalnik, in njihovih razlikah, omenjam tudi prednost GLP pred BSD, vedno z vidika svobode seveda.

    2.    Osebje je dejal

      LOL, trditev, da nihče nima ideje, je zelo močna beseda za nekoga, ki pravi, da programska oprema ni socialno vprašanje.
      Biti moraš slep ali vsaj nekoliko kratkoviden, da ga ne vidiš, ko obstajajo celo države, ki migrirajo (v večjem ali manjšem odstotku) na brezplačno programsko opremo, ko pa vsi mednarodni mediji odmevajo, kako je lastniška programska oprema orodje za vohunjenje v velikem obsegu, ko je najbogatejši človek na svetu natančno posvečen operacijskemu sistemu.
      Kaj je za prebrati.

    3.    Sandekuera je dejal

      ... Želim si, da bi se slišalo več stojnic in manj pandev ...

  11.   Osebje je dejal

    Članek je nekoliko tendenciozen, za začetek z naslovom, kajti tisti, ki bi ga morali vprašati, ali "se malo znorijo", je LLVM, saj se oni tisti, ki se grenko pritožujejo.

    In na tej temi lahko vidite hinavščino tistih, ki se najprej spoprimejo s tem, kar imenujejo "razdrobljenost", in kako grozno je za brezplačno programsko opremo.
    Ko pa nekdo, ki je skladen s tem, kar govori in počne, sledi njegovi vrstici in se ne strinja, da brezplačni prevajalnik postane platforma za neskončnost lastniških prevajalnikov, potem ja, Živeli vsi, da ustvarite vilice!

  12.   Kanali je dejal

    Prosta programska oprema je po definiciji družbeno gibanje od rojstva.

    Glede GPL vs BSD:
    »Freedom 3 vključuje svobodo objavljanja spremenjenih različic kot brezplačne programske opreme. Brezplačna licenca lahko dovoli tudi druge oblike objave; z drugimi besedami, ni nujno, da gre za licenco copyleft. Vendar licence, ki zahteva, da so spremenjene različice nesvobodne, ni mogoče šteti za brezplačno. "
    »Copyleft (zelo na kratko opredeljeno) je pravilo, na podlagi katerega pri prerazporeditvi programa ne morete dodati omejitev, da bi drugim zavrnili glavne svoboščine. To pravilo ni v nasprotju z glavnimi svoboščinami, temveč jih varuje. "

    Kot lahko vidite, copyleft, čeprav kratkoročno jemlje nekaj svobode, dolgoročno pa ga varuje. Zato gospod Stallman zagovarja GPL: "Moje delo na področju proste programske opreme je motivirano z idealističnim ciljem: širiti svobodo in sodelovanje."

  13.   Kanali je dejal

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

    »Odprtokodna je programska metodologija, prosta programska oprema je družbeno gibanje. Za gibanje proste programske opreme je prosta programska oprema etični imperativ, bistveno spoštovanje svobode uporabnikov. Nasprotno pa odprtokodna filozofija postavlja vprašanja v smislu, kako "izboljšati" programsko opremo v zgolj praktičnem smislu. Trdi, da lastniška programska oprema ni optimalna rešitev za praktične probleme, ki jih je treba rešiti. V večini primerov se pri razpravi o "odprtokodni kodi" ne upošteva dobro in zlo, temveč le priljubljenost in uspeh. "

  14.   Daniel Noriega je dejal

    Že nekajkrat sem to komentiral in ponavljam, linux mi je na splošno zelo všeč, če pa v Linuxu kaj sovražim, je to skupnost. Ko lahko skočite s pečine, da nadaljujete z ideologijo, ki je tako zaprta kot "brezplačna programska oprema", potem spoznate, da je svet na glavo. Mislim, da je bila prosta programska oprema v svojih začetkih jasna, danes je zgodba drugačna.

  15.   redek primer je dejal

    Verjamem, da mnogim ni bilo jasno glede pogojev in namenov licence GPL. Licenca GPL je zelo dovoljena, vendar z omejitvijo, da ne dovoli dobička iz programov, licenciranih z njo. Strinjam se s Stallmanom, vendar ne skrajno izključno z uporabo brezplačne programske opreme. Za uporabnika, ki želi uporabljati LLvm / Clang, je njihova pravica, če pa bi SLF želel zamenjati GCC z LLVM / Clang, bi bilo to v nasprotju z načeli proste programske opreme.