Eric S. Raymond nawołuje do zmian w kompilatorze GCC

Eric S. Raymond nawołuje do zmian w kompilatorze GCC

    przez -
    29 392
    Eric S. Raymond
    Eric S. Raymond, programista i promotor wolnego oprogramowania, wezwał Free Software Foundation do wprowadzenia zmian w kompilatorze GCC. Od długiego czasu trwa debata nad tym, który z kompilatorów: GCC czy LLVM/Clang jest lepszy. Z jednej strony restrykcyjna licencja GCC uniemożliwia jego bardzo dynamiczny rozwój, z drugiej strony chroni przed wieloma zakusami. LLVM/Clang natomiast to projekt oparty na licencji BSD, dzięki której w ciągu ostatnich 10 lat stał się bardzo popularny, a z jego udziałem powstało bardzo dużo znakomitych projektów.

    Eric S. Raymond pragnie, aby GCC stał się bardziej liberalnym projektem, szczególnie jeżeli chodzi o system wtyczek. LLVM dzięki swojej licencji doczekał się sporej liczby dodatków, w tym wielu niewolnych. Eric zauważa, że przy obecnym tempie rozwoju, LLVM/Clang zdominuje GCC w ciągu 3 – 5 lat, jeżeli Free Software Foundation nie zmieni swojego podejścia do jego rozwoju.

    • Pingback: Richard Stallman nazywa LLVM tragicznym krokiem wstecz | OSWorld.pl()

    • quest

      LLVM/Clang – rekomendowany przez NSA.

      • Staszek

        przecież to jest wolny program

      • sprae

        Otwarty. Co to zmienia?

      • Jakub Konieczny

        To znaczy że jeśli się panicznie boisz NSA to możesz nauczyć się języka i legalnie przestudiować cały kod programu w celu znalezienia jakiś backdoorów dla NSA i ewentualnie ich usunięcia i ręcznej kompilacji. A jak nie chcesz się nauczyć, pozostaje zaufać innym.

      • sprae

        Nauka języka nie pomaga. Trzeba się znać na architekturze procesora i zależnościach w przetwarzaniu wielowątkowym.
        Niektóre błędy wychodzą w bardzo specyficznych sytuacjach i z prawdopodobieństwem kilku razy na sekundę.
        W xach niedawno znaleźli jakieś po 20 latach.

        Takich specjalistów jest kilkuset na świecie i dobrze zarabiają w takich firmach jak Google.

      • Jakub Konieczny

        Błąd jest efektem nieprzewidzianego zachowania. Backdoor jest raczej świadomym fragmentem kodu który znacznie łatwiej znaleźć

      • sprae

        Dziś bacdory robi się jako dziury. Dopiero przez nie wpuszcza się odpowiedni soft. Jedyna nadzieja w tym, że wykorzystuje się raczej poznane wady. Tylko od programisty zależy jak będzie to zakamuflowane.
        Myślę że 99% ludzi wspierających open source by ich nie dostrzegła, nawet gdyby kopały w tyłek.
        Zobacz, że większość rootów telefonów robiło się przez libpng.

      • Krzysztof Abramowicz

        Ciekawe info o tych rootkitach , plus leci

    • Krzysztof Abramowicz

      Eric dobrze gada polać mu!

      “Eric S. Raymond pragnie, aby GCC stał się bardziej liberalnym projektem, szczególnie jeżeli chodzi o system wtyczek. LLVM dzięki swojej licencji doczekał się sporej liczby dodatków, w tym wielu niewolnych.”

      O to właśnie chodzi modularność i elastyczność

      • Jakub Konieczny

        Chodzi też o to żeby nie stał się produktem żadnej konkretnej firmy, tak jak Apple może w każdej chwili zrobić z LLVM: „to teraz nasz kompilator z naszymi zmianami, dostaniecie go za jedyne 200$ na stanowisko” zamykając go i tym samym blokując jego rozwój na tej gałęzi.
        Nie ma dobrego rozwiązania.

      • mateusz

        muszą sobie wykalkulować, czy im się to opłaca czy nie. ale spójrz na to z tej strony – wydając kod na wolnej licencji dostają całkowicie gratis rzeszę testerów a nawet i nowy kod do kompilatora. i to uwaga (tak tak, to trudne do uwierzenia) nie wymagając w zamian kodu innego programu.

        z tą pseudowolnością FSF jest chyba tak jak z fundacjami charytatywnymi. jeśli jesteś osobą publiczną, możesz pokazywać jak to wspierasz biednych ludzi. a można też robić to po cichu, dla własnej satysfakcji.

      • siekacz

        No patrz – jakoś z Webkitem czy CUPS tak nie robią. Ciekawe…

      • sirsimon

        Z tym webkitem nie płynąłbym za bardzo, w końcu wzięli go z projektu KHtml z KDE

      • sprae

        Potem przepisali na nowo i mimo to oddali społeczności.

      • mikolajs

        “Eric dobrze gada polać mu!”

        Gada byleby gadać i wkładać kij w mrowisko. Powiedz jaka jest szansa aby zmienić licencję GCC na bardziej liberalną. Wymagałoby to zgody wszystkich kontrybutorów kodu, lub przepisywania części kodu, którego autorzy nie wyrazili zgody. Poza tym oznaczałoby to również stratę części deweloperów, którzy nie przystaliby na zmianę licencjonowania kodu. Przecież jak ktoś woli licencje BSD to pójdzie sobie kodować do LLVM/Clang.

      • Krzysztof Abramowicz

        Odnosiłem się do koncepcji wtyczek i modularności LLVM. oraz do konkurencji między oboma kompilatorami.
        Co do samego zamykania kodu na BSD to co zostało wydane na BSD będzie istniało dalej chyba że zgłoszą roszczenia patentowe ale na to chyba nie ma obecnie skutecznego lekarstwa.

      • mikolajs

        A jak do kodu GPL dołączyć kod nie GPL, aby implementował system wtyczek? Z tego co wiem to się nie da, taki sam problem ma projekt Blender.

      • Krzysztof Abramowicz

        Zrobić linking exception dla gpla jak jest np. w projekcie rtems.
        Lub po prostu przymknąć oko na binary bloob.

    • Adam

      Wybaczcie wtrącenie laika, ale jako “nie-programator”, po prostu chciałbym wiedzieć, bo to ciekawe… No a co właściwie daje ta masa wtyczek kompilatorowi i inne dobrodziejstwa płynące z LLVM? Czy to poprawi optymalizację, wpłynie na czas kompilacji ? Whatever… co ma z tego end-user (jeżeli w ogóle ma cokolwiek)

      • Nicram

        Też programistom nie jestem ale… Mogą to być np. dodatki przetwarzające kod i poprawiające błędy, bądź zastępujące instrukcje np. pod kątem konkretnego sprzętu czy jego sterownika. Wprowadzające optymalizacje kodu (np. zastępowanie zdefiniowanych linii innymi, które wg. autorów wtyczki są lepsze bo działają szybciej na nowych CPU czy lepiej wykorzystując RAM). Użytkownik końcowy ma po prostu kod skompilowany wg. autora lepiej (może być wydajniejszy, albo wolniejszy bp używa np. jakiejś wtyczki do debugowania). Wszystko zależy od autora aplikacji, a chodzi o to, aby ułatwiać mu prace, automatyzować niektóre procesy.

      • herr

        LLVM to nie tyle po prostu kompilator, co framework do budowy takowych. Dzięki niemu możliwe jest skompilowanie jednego języka do drugiego co jest np. wykorzystywane w LLVM-PIPE albo przez mozillę do translacji kodu w C do tego ich podzbioru JS. Umożliwia rzeczy które nie tak dawno były albo nie możliwe, albo bardzo trudne.

      • mikolajs

        Przykładowo Digital Mars zamiast robić własny kompilator języka D mógłby przejąć projekt gdc (kompilator gcc dla języka D) i zrobić z niego wtyczkę. Na pewno lepiej miałaby ta firma, część społeczności zgromadzona wokół języka D, ale gdyby ta wtyczka była zamknięta to raczej społeczność GNU nie miałby z niej korzyści i byłaby uzależniona w tej kwestii od firmy.

    • Pingback: Apple chciało zintegrować LLVM z GCC, ale deweloperzy odmówili | OSWorld.pl()

    • o_O

      Co go obchodzi GCC?
      To jego kod, żeby miał prawo mówić autorom na jakiej licencji mają go wydawać?!

      Nie pasuje GPL, to niech nie używa. Niech sam napisze coś lepszego, zamiast tylko zasmradzać atmosferę.

      Skąd się tacy ludzie biorą?

      • O_o

        Co go obchodzi zamknięty kod?
        To jego kod, żeby miał prawo mówić autorom że na zamkniętej licencji mają go nie wydawać?!

        Nie pasuje closed source, to niech nie używa. Niech sam napisze coś lepszego, zamiast tylko zasmradzać atmosferę.

        Skąd się tacy ludzie biorą?

      • o_O

        Tak właśnie robi. Nie używa.
        I mówi innym, że to dobry sposób użytkowania komputera. A kto chce, to go słucha, przyznaje rację, i mu pomaga.

        Natomiast włażenie z brudnymi butami do czyjegoś projektu to już przegięcie.
        To tak, jakby Stallman poszedł pod Microsoft i żądał (!), by Windows był na GPL. Popukał byś się pewnie w czoło? To tak samo zareaguj na pierdolenie Raymonda.