LLVM / Clang. Kas meeletu GCC?

llvm-logo

Pidin sellest vaidlusest postituse kirjutama postitatud LWN-sse. Ja just LLVM / Clangi kompilaator hakkab seda tegema muretsema GNU meililistides.

Kunagi oli kompilaator nimega GCC, mis oma enam kui 25-aastase eksisteerimisega austab jätkuvalt väga oma tasuta ja copylefti litsentsi ning on ka Linuxi tuuma ja kuni viimase ajani FreeBSD poolt kasutatav kompilaator. Igaüks, kes soovis õppida arenema C või C ++ keeles, kasutas kindlasti GCC-d hoolimata oma masina arhitektuurist. Kuid GCC kannatas kindla all saladus, osalt selle loojate filosoofia ja osalt selle katedraali stiilis arengu tõttu, kus teostati tugevat kontrolli GCC-s toimuva ja mitte-selle üle (mis praegu pole nii palju, kuid on endiselt olemas), mis sillutas viis kasutajaliideste ja muude funktsioonide ehitamiseks, mille GCC lõpuks vastu võttis. Lisateavet filmi lühikese ajaloo kohta EGCS, Ma jätan selle lingi.

Samal ajal viis Illinoisi ülikoolis Urbana-Champaignis umbes 2002. aastal uurimisprojekt kompilaatori loomiseni, mis loodi modulaarselt, nii et selle üksikud elemendid nagu esiotsa, koodigeneraatorid ja optimeerijad. Nad kutsuvad teda LLVM sest algul oli tegemist madala tasemega virtuaalmasinaga, kuid lõpuks oli see midagi enamat. Ja nad andsid talle litsentsi tema enda litsentsiga, mis oli sarnane BSD-ga (tasuta, mitte copyleft, vastab GPL-le). Aastaid hiljem tundis Apple huvi LLVM-i vastu ja võttis selle kasutusele oma iOS-i ja OS X operatsioonisüsteemide ning ehitamise jaoks (ja vabastage sama tasuta litsentsi alusel nagu LLVM) teie enda kasutajaliides Klähvima, C ja eesmärgi C jaoks. Negatiivne külg on võimalus lisada LLVM / Clang varalistes programmidesNii on NVIDIA CUDA kompilaatori ja Apple IDE XCode'i puhul.

Kuid ühel päeval, mõni nädal tagasi emacsi meililoendis, keset arutelu Clangi jaoks loodud automaatse täitmise režiimi üle, Dimitry gutov Ta ütleb: "Mulle öeldi juba ammu, et Richard Stallman vihkas Clangi nii väga kes oli vastu seda kasutava koodi lisamisele emacs'i. " See tõi hiljem kaasa veel ühe arutelu klantsimise ja tasuta tarkvara teemal Richard ise täpsustab: «Meie poliitika ei ole aktsepteerida muudatusi üheski GNU paketis, mis võib töötada Clangiga, kuid mitte GCC-ga. Emacs ei innusta inimesi GCC-st eemale minema. Kui saame võimaluse, soovitame kasutada Gangsi kliendikeskust Clangi asemel. "

Veidi aega hiljem ilmub Eric Raymond (kes on kuulus katedraali ja basaari loomise ning avatud lähtekoodiga definitsiooni poolest), kes pooleldi turniiri lauldes pool trollimist, läheb ja ütleb et LLVM / Clang oli vastus GCC projekti vastupanule koostalitlusvõimelisusele ja lisaks edestas Clang GCC-d mitmete tehniliste meetmete osas. Tema arvates (ja näitab video Chandler Carruthi loengust) küsisid Clangi arendajad Stallmanilt, kas on mingit põhjust, miks GCC esiotsi ei saaks muuta dünaamilisteks teekideks, mida saab linkida mis tahes programmiga, mis soovib lähtekoodi sõeluda. Stallman vastas, et GCC üks eesmärk oli vältima varalisi programme selle mis tahes osa kasutamiseks, seega vältisid nad teadlikult mitmesuguseid asju posiblemente nad oleksid sellist kasutamist hõlbustanud ... ... mida nad kaalusid kasutu vastus. Nad tahtsid luua IDE-sid ja muid tööriistu, mis jagaksid kompilaatori koodi ja GCC neil seda ei lubanud Clangi loomiseks ja GCC saatmiseks aadressile / dev / null. Pärsia lahe koostöönõukogu arendajad nad hüppasid talle lipates täieliku teabe puudumise eest (asjaoluga, et Clang ületab GCC-d mitmes tehnilises meetmes). Hooramise keskel ilmub Stallman seda ütlema LLVM on kohutav tagasilöök, mitte tehnilistel põhjustel, vaid ainult selle jaoks, mis pole Apple'ile kasulik.

Seejärel pühendatakse LWN-i artiklis pikad lõigud GCC modulaarsusele ja nende teadlikult kaasatud meetmetele, et muuta selle sisemine esindatus varaliste programmide abil keerukaks. GCC käitusteabe erand mis lahendab küsimuse, kas GCC peaks koostama varalise koodi. Tahaksin lisada ka juhtumi FreeBSD (hiljuti välja antud versioon 10 asendab GCC peamise kompilaatorina LLVM / Clangiga). GCC uusim versioon, mida nad kasutasid oli 4.2.1 (viimane GPLv2 litsentsiga) ja ega hullu nad kavatsesid selle värskendada versiooniga GPLv3 (nad lihtsalt tahavad BSD ilma GPL-ta), nii et LLVM / Clang tuleb nende juurde nagu kinnas.

Lühidalt, järjekordne lahing igaveses GPL vs BSD sõjas.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   92 DIJO

    Pole huvitav, laseme arendajatel üksteist tappa.

    1.    eliotime3000 DIJO

      Ja nii on meil veel üks rahulolematu töötaja Microsoftis ja Apple'is töötamiseks.

    2.    Marcos DIJO

      Teil on õigus, ma toetan seda, et tarkvara on alati tasuta, et KÕIK INIMED saaksid seda lugeda (see on ainus põhjus, miks ma Linuxit toetan ja kasutan), kuid lõpuks on programmeerijatel viimane sõna.

  2.   f3niX DIJO

    Hea artikkel, mulle meeldivad alati diasepani artiklid, need tulevad tavapärasest erinevad.

  3.   Germán DIJO

    Tõde on see, et see on gcc-i poolt väga rumal mõte, pigem siis, kui LLVM-i looja pakkus koodi gcc-le ja nad lükkasid selle tagasi, CLang on loodud nii, et IDE-d saaksid kontrollida õigeaegne kood, mis ei too kasu ainult privaatsetele rakendustele, vaid ka avatud lähtekoodiga rakendustele nagu KDevelop või QtCreator, välja arvatud arenenud redaktorid nagu Vim, Kate, emacs Ma arvan, et midagi sarnast juhtub lõpuks ka egcs-iga ja nad neelavad selle gpl-litsentsi alla niipea, kui linuxi saab sellega kompileerida, nagu juhtus egcs-iga

    1.    eliotime3000 DIJO

      Kui nad ei suuda EGCS-i täiustada ja / või muuta selle CLangi parimaks asendajaks, lähen CLangi ja LLVM-i.

    2.    xlash DIJO

      Loll? Ma ei arva nii. Asjaolu, et GCC-d ei saa kasutada varalise tarkvara loomiseks, on viis vabatarkvara arendamise prioriteetseks seadmiseks ja selle ärakasutamiseks varalise tarkvara arendamisel. See on viis vabatarkvara kaitsmiseks, seetõttu tuleks seda toetada. Hr Stallmanil on täiesti õigus, see on samm tagasi. Lisaks saavad sellised ettevõtted nagu Apple, nagu artiklis mainitud, LLVM / Clangist kasu, ilma et kogukonnale absoluutselt kaasa aitataks ja projektile au ei antaks.

      Terviseks inimesed!

      1.    Germán DIJO

        Nii GCC kui ka LLVM / CLANG saavad kompileerida patenteeritud tarkvara, mida ei saa muuta, on GCC ja neid muudatusi teatavaks teha. LLVM / CLANGi saab litsentsida uuesti kui gpl, suurim erinevus nende vahel on see, et LLVM / CLANGi jaoks peavad nad kasutama C ++ ja GCC omad ei tahtnud seda näha ega maalinud alles hiljuti. Minu vaatepunktist peaks GCC ümber kirjutamise asemel C ++ -sse kirjutama, nagu nad seda praegu teevad, nad oleks pidanud GCC toetatud ja LLVM / CLANG mitte toetavad arhitektuurid ning keeled teisele üle kandma ning neil peaks olema puhtam kood ja nende koodide säilitamine omaenda haru

    3.    artus DIJO

      Ma arvan, et teie arvamus on alusetu, tehniliste probleemide kohal on vaba tarkvara. See puudutab kõige enam hr Stallmani. Mis minu arvates on teie jaoks parim, on tehniline osa ja teil on õigus, kuid kui teil pole valikut, sest ettevõte võttis teie tehnoloogia üle, mõtlete kaks korda.
      Teiselt poolt saate GCC abil koodi reaalajas kontrollida, nagu ma kordan, teie arvamus on alusetu.

      1.    Germán DIJO

        1 - Kui GCC hargistab LLVM / CLANGi ja ettevõtte ning litsentsib selle uuesti GPL-i, on kogu nimetatud kahvlis sisalduv kood GPL-i all ja LLVM-id peavad taotlema luba selle uuesti litsentsimiseks ja lisama oma repo-sse. Teatan teile, et litsentsitüüp MIT (XORG, WAYLAND, ...) või BSD (FreeBSD, ...) on sama lubav kui LLVM
        2 - GCC-ga ei saa te koodi lõpuleviimise automaatset või kooditõendajat reaalajas juurutada teegi kaudu, mida see pakub erinevalt CLANG-ist
        3 - LLVM on suurepärane lahendus GCC-le mitte ainult tehniline, vaid ka efektiivne, LLVM / CLANG binoomi koostamine võtab pool aega

  4.   Ekandekuera DIJO

    Elagu GNU ja GPL!

    1.    eliotime3000 DIJO

      Vaadake, kas nad saavad alkoholi, hasartmängude ja slutsidega ise CLangi teha.

      1.    Ekandekuera DIJO

        huh

    2.    eliotime3000 DIJO

      Ei, Richard. Asjaolu, et SELinux on NSA töö, ei tähenda, et mõni muu GPL-litsentsimata tööriist (näiteks LLVM / CLang) pärineks samast maatriksist.

      Tõsiselt, arvasin, et selleks on täiesti ratsionaalne motiiv, kuid näen, et FSF on konservatiivsem kui Satoru Iwata või mõni MAFIAA liige.

      1.    Personal DIJO

        On näha, et te ei lugenud meililistit ja jäite artiklite ridade vahele.
        Esitati ratsionaalseid argumente, isegi tehnilisi võimalusi, kuid igatahes on väga tavaline lugeda pealkirja ja hüpata otse kommentaaridesse.

  5.   vaene taku DIJO

    Ñuhhhh GCC + Emacs. Kui soovite ellu jääda, võtke mu käsi (tallimees)

  6.   elav DIJO

    Puritaanid vabandavad mind, kuid ma pean seda ütlema: mulle pole Stallman kunagi meeldinud ja ülejäänud päevad tundub nii.

    Nii kinnine ei saa olla. Ta näib olevat fanaatik, hull ja jah, ükskõik kui suurt austust ta ka oma saavutuste eest väärib ja mille eest ta seisab, mulle ta ei meeldi.

    1.    Zironiid DIJO

      Ma nõustun. Alguses meeldis ta mulle väga, kuid nüüd tundub ta liiga ekstreemne ...

      1.    Laadige alla DIJO

        Äärmuslane ... hull ... fanaatik ... jah, see sõltub sellest, kuidas te seda vaatate. Minu jaoks on hr Richard Stallman tohutu sotsiaalse südametunnistusega inimene. Tema elu mõte on olnud ja on ühiskonna, mitte tarkvara parandamine. Vaba tarkvara ja avatud lähtekoodiga tarkvara vahel on vahe selles, et esimene otsib sotsiaalseid ja teine ​​tehnilisi probleeme.

    2.    xlash DIJO

      Elav tüürimees, küsimus pole puritaanis olemises või mitte. Vaba tarkvara sündis sotsiaalse liikumisena ja seda kaitseb hr Stallman, nagu paljud.

      Nii kinnine ei saa olla. Ta näib olevat fanaatik, hull ja jah, ükskõik kui suurt austust ta ka oma saavutuste eest väärib ja mille eest ta seisab, mulle ta ei meeldi. »

      Tegelikult on see vastupidi. Eesmärk on, et igaüks saaks tarkvarale vabalt juurde pääseda, ilma et keegi piiraks selle kasutamist varaliste muudatuste kaudu. Nagu ma oma eelmises kommentaaris ütlesin, seavad nad prioriteediks ja rõhutavad vaba tarkvara arendamist.

      Ma arvan, et ajate fanatismi segamini teise terminiga. Fanatism tapab, nagu ajalugu on hästi näidanud. Otsitav termin võib olla radikaalne, kuid ilma selle radikalismita poleks vaba tarkvara ja GNU / linuxi liikumist olemas, vähemalt nagu me seda täna teame. Hullu kohta ma ei vaidle teiega vastu, kuid olles näinud seda, mida olen selle paari aasta jooksul näinud, pole hullud nii hullud.

      Selle lõiguga tahan öelda, et vaba tarkvara liikumine pole mitte ainult arvuti, vaid ka sotsiaalne liikumine ja seda tuleb kaitsta. Ja kui Elav peate olema sotsiaalse suhtes radikaalne. Sellised ettevõtted nagu Apple või Microsoft ei kõhkle asjaolusid ära kasutada. Peame suurendama teadlikkust kasutajate ja inimeste õigustest üldiselt.

      PS panen Elavile nimeks, sest vastan talle, kuid kommentaar on suunatud kõigile GNU / linuxeritele.

      Terviseks Inimesed!

      1.    Härra_E DIJO

        @Xlash: SIR! ... aitäh! Seda mul oli vaja lugeda. +1

        Kopeerin teid, trükin selle ja panen piibli kõrvale. (Teadmiseks: mitte selle sees ega peal).
        Lõpuks on tänu sellele sammule ning Linuse ja kogukonna jõupingutustele saavutatud midagi, mis on maailma muutnud:
        "Linuxil on enne Linuxi ja KOHE Linuxiga."

      2.    Ekandekuera DIJO

        + 10

    3.    Härra_E DIJO

      E @Elav:
      Ma ei vabanda, aga pidin ütlema:
      Mõni teie eelmine postitus on mulle meeldinud, aga mitte see ... ja kui nad nii jätkavad: võib-olla on see ka mu ülejäänud päevad.
      Ära ole suletud. Tundub fanaatiline, pöörane ja sama lugupidav kui teie saavutused (see foorum) ja see, mida te väärite ... mulle ei meeldi (teie kommentaar).
      😀 - hehe! nüüd saate kogeda (natuke) sama, mis RMS. Teil peab lihtsalt olema sama difusiooni trajektoor kui temal, ja tunnete end peaaegu täpselt sama.
      Tervitused cuñao!

  7.   Zironiid DIJO

    Ma ei saa aru, miks Stallman nii suletud on. Riskin öelda, et minu arvates on LLVM isegi vabam kui GCC, kuna see annab vabaduse seda kasutada isegi varalistes programmides. Jah, ma tean, et GCC piirangud võivad tasuta tarkvara aidata, kuid pean absurdseks, et see vastandub LLVM-ile sel viisil.

    seoses

    1.    Wilson DIJO

      Stallman pole suletud. Artikkel on väga kallutatud autori isiklike arvamustega.
      Tegelikult on Pärsia lahe koostöönõukogu otsused suures osas tehnilised. GCC-s soovivad nad modulaarsust ja teevad seda, kuid teistmoodi (vältides CLANGis esinevaid probleeme).
      Lisateavet https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Nii kirjutas Raymond ja arendajate vastused on olemas.

  8.   santicluke DIJO

    Mulle tundub, et näen, kellel on see suurem ... Ego muidugi.
    Mõlemad koostajad on suurepärased. Kuid nagu iga tööriist, sõltub see ka sellest, kuidas te seda kasutate.
    Võib kirjutada C-koodis tasuta koodi ja teha Linuxiga raketi.

  9.   gallux DIJO

    Ma arvan, et siin peaksite olema pragmaatilisem. Stallmanil peaks olema visioon ja ta ei peaks enam oma teed kaotama. Muret teeb see, et praegune kogukond ei killustu, mis ka toimub. Kõige mõistlikum on see, et kuigi bsd-litsents lubab seda kasutada varalistes keskkondades, kasutavad autorid samasugust loogikat (ja isegi kui nende tuletised on) sama loogikat, kuid gpl v2 või uuemaga.

  10.   92 DIJO

    Õnneks pole tallimeest ammu vaevalt kuulda olnud. Teine, arvutiprogramm või kompilaator, ei saa kunagi olema sotsiaalne teema, lisaks on alati olnud alternatiive, mis pole tasuta! aga kui vaba.
    Llvm clangi osas pole poleemikul mõtet, kuna allikas on alati olemas, see on välja antud bsd-litsentsi alusel, seetõttu on tegemist tasuta tarkvaraga, et ettevõte saab seda kasutada oma pimedatel eesmärkidel, see ei tähenda, et te ei pääse enam juurde algsele koodile, kuid ma näen, et siin pole kellelgi aimugi, välja arvatud 2 või 3.

    1.    xlash DIJO

      "Arvutiprogramm või kompilaator ei ole kunagi sotsiaalne küsimus"
      Mida sa mõtled mitte? Ma austan, et te ei kaitse vaba tarkvara liikumist nagu paljud teisedki, kuid eitada seda, mida vaba tarkvara esindab, tundub teie poolt lugupidamatu nende inimeste suhtes, kes investeerivad selle kaitsmisse ja loomisse palju aega, raha ja vaeva.

      Muidugi on llvm vaba tarkvara, kuid see ei tähenda, et selle muudatused ja tuletised oleksid. Idee ei ole mitte ainult võimalus pääseda algsele tarkvarale vabalt juurde, vaid ka selle muudatustele. Kui töötan välja programmi ja jagan seda teiega, sooviksin, et teeksite sama ka nende inimeste jaoks, kellele annaksite oma muudetud versiooni koopia. See on see, mida vaba tarkvara ja copyleft kaitsevad, seega on see sotsiaalne küsimus.

      "Aga ma näen, siin pole kellelgi aimugi, välja arvatud 2 või 3."
      Ma ei tea, kuidas te selle järelduseni jõudsite, kui siia postitatud kommentaarid viitavad tarkvara filosoofiale ja vabadusele, võrreldes kahe litsentsitüübi erinevusi, isegi kui need üksteisega ühilduvad.

      1.    diasepaan DIJO

        Kuidas mõjutab raamatupidaja igapäevane elu, kes programmeerimisest midagi ei tea, sellise kompilaatoriga koostatud raamatupidamisprogrammi?

        1.    xlash DIJO

          Üldse mitte, kui ma olen vaba. Kuid teema, millega ma kommentaarides tegelen, on teine, Diazepan. Räägin X kompilaatori kasutamisest varalise tarkvara koostamiseks, igas kompilaatoris kasutatavatest litsentsidest ja nende erinevustest, mainin ka GLP eeliseid BSD ees, alati muidugi vabaduse seisukohast.

    2.    Personal DIJO

      LOL, väites, et kellelgi pole ideed, on väga tugevad sõnad inimesele, kes ütleb, et tarkvara pole sotsiaalne teema.
      Selle nägemiseks peate olema pime või vähemalt mõnevõrra lühinägelik, kui on isegi riike, mis rändavad (suuremal või vähemal määral) tasuta tarkvarale, kui kogu rahvusvaheline meedia kajab, kui varaline tarkvara on spionaaži vahend suures plaanis, kui maailma rikkaim mees on pühendunud just opsüsteemile.
      Mida on lugeda.

    3.    Ekandekuera DIJO

      ... ma soovin, et rohkem tallimehi ja vähem pandevi kuuleks ...

  11.   Personal DIJO

    Artikkel on pealkirjaga alustades mõnevõrra tendentslik, sest need, kellelt tuleks küsida, kas nad "lähevad natuke hulluks", on LLVM, kuna just nemad kaebavad kibedalt.

    Ja sellel teemal võite näha silmakirjalikkust nende seas, kes kõigepealt möllavad selle vastu, mida nad nimetavad "killustatuseks" ja kui "kohutav" see on vaba tarkvara jaoks.
    Aga kui keegi vastab sellele, mida ta ütleb ja teeb, järgib tema joont ega nõustu, et tasuta kompilaatorist saab platvorm varaliste kompilaatorite lõpmatuse jaoks, siis jah, elagu kõik, et nad saaksid kahvleid luua!

  12.   Laadige alla DIJO

    Vaba tarkvara on sotsiaalne liikumine alates selle sünnist definitsiooni järgi.

    Seoses GPL vs BSD:
    „Freedom 3 hõlmab vabadust avaldada oma muudetud versioone tasuta tarkvarana. Tasuta litsents võib lubada ka muid avaldamisvorme; teisisõnu, see ei pea olema copylefti litsents. Litsentsi, mis nõuab, et muudetud versioonid oleksid tasuta, ei saa siiski lugeda tasuta. "
    „Copyleft (väga lühidalt määratletud) on reegel, mille alusel ei saa programmi ümberjagamisel lisada piiranguid, et keelata teistele peamised vabadused. See reegel ei ole vastuolus põhivabadustega, pigem kaitseb neid. "

    Nagu näete, võtab copyleft, ehkki lühiajaliselt võtab see teatud vabaduse, kuid pikemas perspektiivis kaitseb see seda. Seetõttu kaitseb hr Stallman GPL-i: "Minu tööd vabatarkvaras motiveerib idealistlik eesmärk: levitada vabadust ja koostööd."

  13.   Laadige alla DIJO

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

    “Avatud lähtekood on programmeerimise metoodika, vaba tarkvara on sotsiaalne liikumine. Vaba tarkvara liikumise jaoks on vaba tarkvara eetiline kohustus, mis on oluline kasutajate vabaduse austamine. Seevastu avatud lähtekoodiga filosoofia tekitab küsimusi selle kohta, kuidas tarkvara "täiustada" pelgalt praktilises mõttes. Ta väidab, et patenteeritud tarkvara ei ole lahendatavate praktiliste probleemide optimaalne lahendus. Enamasti ei peeta "avatud lähtekoodiga" arutlemisel head ja kurja, vaid ainult populaarsust ja edukust. "

  14.   Daniel noriega DIJO

    Olen seda juba mitu korda kommenteerinud ja kordan seda, linux üldiselt meeldib mulle palju, aga kui linuxis on midagi, mida ma vihkan, on see kogukond. Kui suudate hüpata kaljusse, et jätkata sama "suletud" ideoloogiaga nagu "vaba tarkvara", siis mõistate, et maailm on tagurpidi. Ma arvan, et selle alguses oli vabatarkvara selge, täna on lugu teine.

  15.   harva DIJO

    Usun, et paljudele pole GPL-i litsentsi tingimuste ja eesmärkide osas selge olnud. GPL-litsents on väga lubav, kuid selle litsentsiga programmidest kasumit mitte lubades. Olen Stallmaniga nõus, kuid mitte ainult tasuta tarkvara kasutamise äärmus. Kui kasutaja soovib kasutada LLvm / Clangi, on tema õigus, kuid kui SLF soovib GCC-d asendada LLVM / Clangiga, oleks see vastuolus vaba tarkvara põhimõtetega.