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

29
1952
Eric S. Raymond
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.

ŹRÓDŁOgcc.gnu.org
Poprzedni artykułValve udostępni źródła VOGL Debuggera
Następny artykułRichard Stallman nazywa LLVM tragicznym krokiem wstecz
Michał Olber
Interesuję się głównie sprzętem i działaniem jego pod systemami GNU/Linux. Testuję różne dystrybucje i robię recenzje. Interesuję się działaniem sprzętu pod Linuksem, dzięki czemu wiem, jaki zestaw komputerowy wybierać :)

29 KOMENTARZE

    • 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.

    • 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.

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

    • 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.

  1. 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ść

    • 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.

    • 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.

    • „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.

    • 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.

    • 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.

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

  2. 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)

    • 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.

    • 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.

    • 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.

  3. 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ą?

    • 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ą?

    • 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.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj