PCC – fundusze zebrane!
- Dodano: 8 maja 2010
- Wprowadził: blinkkin
- Komentarze: 59
Portable C Compiler to kompilator języka C, który był rozpowszechniany wraz z systemem BSD, aż do wydania wersji 4.4BSD w 1994 roku. Został on wtedy zastąpiony przez GCC. Jednak historia zatoczyła koło.
W 2002 roku kilka osób postanowiło przenieść NetBSD na platformę PDP-10, dokładniej na emulator KLH10 PDP-10. Miał to być swojego rodzaju test przenośności NetBSD. Architektura KLH10 była interesująca ze względu na 36-bitowe instrukcje i adresowanie 30-bitowe.
Wśród tych osób był Anders Magnusson. Początki były bardzo obiecujące. Jednak szybko okazało się, że to nie NetBSD jest głównym problemem, a GCC. Naprawienie jednego problemu w kompilatorze skutkowało znalezieniem następnego. W ten sposób Anders w 2003 roku zainteresował się kompilatorem PCC.
Lata dominacji jednego kompilatora doprowadziły, do znacznego obniżenia jakości kodu GCC. Słów krytyki na temat ogromnej liczby błędów nie szczędził w szczególności Theo de Raadt. Natomiast społeczność NetBSD była zainteresowana kompilatorem, który wspiera dawno zapomniane przez deweloperów GCC platformy.
W ten sposób PCC szybko trafił do repozytorium NetBSD i OpenBSD, chociaż z różnych przyczyn. W 2007 roku ogłoszono, że nowe wersje GCC będą rozpowszechniane na licencji GPL w wersji 3, która jest także licencją patentową. Zainteresowanie pracą Magnussona jeszcze wzrosło.
W 2008 roku powstał Fundusz BSD, a PCC zostało objęte sponsoringiem. Docelowo miała zostać zebrana kwota 12 tysięcy dolarów, aby pokryć koszty pracy Andersona. Cel ten udało się osiągnąć 29 kwietnia tego roku.
Anonimowy sponsor podarował tysiąc dolarów w imieniu społeczności OpenBSD. Tym samym planowana kwota została przekroczona. Oznacza to, że ostatni cel – ulepszenie obsługi SSA, powinien niedługo zostać zrealizowany. Pozostaje czekać na wersję 1.0.
Więcej informacji: http://netbsd.pl/2010/05/04/pcc-fundusze...e-zebrane/
Znalazłeś literówkę? Zgłoś ją używając formularza!
Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.
Niusy na podobny temat:
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.
59 komentarzy
Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.


Miałem wątpliwości czy wrzucić ten tekst na OSnews.pl, z tego powodu został opublikowany dopiero teraz. Nie jestem do końca pewny czy publikacja spełnia wymagania tego serwisu – sporo w niej subiektywnych stwierdzeń.
W każdym razie więcej tutaj historii PCC niż samego tematu.
Ja uważam, że to porządny nius. I bardzo cieszę się z ostatniego rozwoju zarówno PCC jak i LLVM. GCC cenię, ale dobrze że jest realna konkurencja WiOO w tym strategicznym polu.
IMO jeden nius wart 30 b.YKIEPSKICH. I zapewne podlinkowanie odpowiednich stwierdzeń jakimiś mailami na listach, artykułami w innich serwisach zwiększyło by jego neutralność.
Więcej linków już nie ma sensu wpychać – to nie jest Wikipedia. Jest dużo faktów, a opinie i uogólnienia nie są agresywne.
$12000 zbierali aż przez 2 lata? To ja już nie mam wątpliwości, że licencja BSD jest milion razy lepsza od GPL…
Jak na młody, mały i jednoosobowy projekt bez praktycznych zastosowań (do niedawna) to i tak dużo. Większość dotacji pochodzi zapewne od samych deweloperów OpenBSD i NetBSD.
Tobie natomiast polecam przeczytać moje tłumaczenie tekstu Bankrupt Software Distribution niejakiego Trollaxora. Zapewne odnajdziesz się w nim świetnie, bo prezentujesz podobne podejście jak autor wspomnianego tekstu.
@oO: LLVM, tez na licencji BSD, rozwija sie szybciej niz GCC kiedykolwiek mialo szanse. PostgreSQL, mimo mniejszej popularnosci niz MySQL, dzieki licencji BSD daje rade. Zaden sensowny serwer HTTP na licencji GPL nigdy nie powstal, a na liberalnych – sporo, z Apachem na czele. Wiec tak, BSD jest ok.
Tak, tak, to wszystko zasługa cudotwórczej licencji.
Żeby nie było: spór uważam za jałowy, bo o ile do zasobów kodu źródłowego licencja ma jakieś odniesienie, tak do zbierania środków pieniężnych dokładnie nijak. Każdy zbiera to samo i na takich samych warunkach.
Nie masz racji. Od licencji zależy co z tymi kodami można będzie później zrobić – i właśnie to może zachęcić lub zniechęcić potencjalnych sponsorów.
@Reddie: Nie jest to zasluga cudotworczej licencji, ale przyklady jasno pokazuja, ze oO (jak zwykle zreszta) albo klamie, albo bredzi.
Ma rację, ty zresztą też: to po prostu jeden z istotnych czynników, ale nie magiczne rozwiązanie w stylu "przesiądźcie się na BSDL, a fundusze popłyną strumieniami!".
@mish: w sposób niebezpośredni oddziaływać może nawet osobowość devów (patrz Theo de Raadt), ale czy to naprawdę tak istotne czynniki? : )
Zobaczymy jak szybko będzie się rozwijał LLVM jak będzie na tyle dobry w optymalizowaniu kodu co GCC.
Tak jakby 20% w jedną czy drugą stronę miało takie wielkie znaczenie. I tak 99% kodu powstającego w C i C++ jest nieoptymalnie napisane.
IMHO szybkość kompilacji bez optymalizacji jest dużo ważniejsza w praktyce. A tu GCC chyba wypada najgorzej wśród wszystkich kompilatorów.
Lepszym pytaniem byloby, jak szybko LLVM bedzie sie rozwijal, gdy zaczna w niego mocno inwestowac inne firmy.
A zaczną?
@mor: Tak. Przyklad Cisco pokazuje, ze GPL moze byc problematyczna nawet dla zupelnie zwyczajnych uzytkownikow toolchaina. Poza tym jest ladnych pare firm, ktore maja ciekawe rzeczy w zakresie optymalizacji, ale nie maja zamiaru dawac ich w prezencie konkurencji. Obie grupy firm chetnie przejda na cos, z czym bedzie im sie zylo wygodniej.
Znaczy wydawanie ich na GPL byłoby dawaniem w prezencie konkurencji, a na BSD nie? o_O
@Reddie: W przypadku bazowania na kodzie BSD to twoja – developera – decyzja, co wypuscisz na licencji BSD i kiedy. W przypadku bazowania na kodzie GPL nie masz tego wyboru – musisz oddac konkurencji wszystko i od razu.
Swoja droga, FreeBSD Foundation co roku zbiera 300k$. W tym roku "target" zostal podniesiony o kolejne 50k$. Calkiem niezle, jak na fundacje non-profit majaca na celu bycie zapleczem prawno-organizacyjnym darmowego systemu.
Odpalicie coś kolegom z OpenBSD? : )
czy ja wiem czy to tak niezle…? Za ta kwote mozna zatrudnic z 5 pracownikow biurowych (podliaczajac koszt utrzymania biura i bardzo srednia pensje $30k).
@vampire: Do obslugi Fundacji wystarcza jeden pracownik biurowy – i tyle afaik ich jest. Zreszta porownywanie z firma jest bez sensu, bo to kompletnie inny twor.
Zawsze mogą za te pieniądze kupić jakieś patenty , rozwiązania , wynająć programistów do napisania pewnych rozwiązań jak w haiku organizować konferencje , promocje , optymilizacje .
Więc to dobrze że ich fundusze rosną w końcu lepiej jak jest otwarta alternatywa dla linuxa
trasz: tylko jeden? Biedny czlowiek
Wiem jak wyglada praca w kilku fundacjach w PL i UK. Niekiedy sztab ludzi ma co robic (ale tutaj mowimy o fundacjach zbierajacych kilka milionow funtow rocznie… [i nie mowie o WOSP, bo z nimi nie mialem nigdy stycznosci]).
krzabr: $300k to naprawde niewiele pieniedzy….
@oO:
a dałeś chociaż centa na to ? Jak nie to się nie odzywaj.
I czy mogę wiedzieć, czemu tak bardzo przeszkadza im licencja GPLv3 chroniąca przed pozwami patentowymi?
Ludzie od BSD to masochiści jacyś czy co, że lubią jak firmy robiące kasę na ich własnym kodzie mogą pozwać nawet autora za jego używanie?
Licz się z tym że Pewne firmy daj też datki czy oddają swoje technologie na ten projekt :
http://www.osnews.com/story/22331/FreeBSD_Gets_Gr…
Inna sprawa , że konkurencja wśród kompilatorów C cieszy
Znasz jakiś przypadek, kiedy firma pozywa pierwotnego autora kodu za używanie dzieła swojej pracy?
Świat jest dziwnym miejscem – znasz może sprawę SCO? =}
Tylko nie wiem, co sprawa SCO ma do GPL v3. Trzecia wersja GPL zapobiega następującej sytuacji: przykładowo Oracle forkuje PostgreSQL i sprzedaje to jako produkt. Patentuje jakąś funkcjonalność PostgreSQL i pozywa pierwotny projekt.
Tylko, że taka sprawa może się obronić nawet bez udziału GPL v3. Praktycznie wszystkie projekty korzystają z systemów kontroli wersji. Łatwo więc stwierdzić, kto jest autorem danej funkcjonalności i kiedy została ona dodana.
W przypadku GPL v3 zmienia się tylko jedno, właściciel patentu. Patent stałby się dobrem ogólnym w powyższym przykładzie. Natomiast sprawa SCO jest znacznie bardziej skomplikowana niż to, można napisać o tym książkę.
Chciałem tylko pokazać, że różne rzeczy mogą się stać, których nikt się nie spodziewa.
A jeśli GPLv3 zamienia patent prywatny na publiczny, to chyba sobie odpowiedziałeś po co – to samo wcześniejsze wersje GPL zrobiły z kodem przecież. Oczywiście FSF chce w ogóle pozbycia się patentów, ale na razie jest to dalekie od realizacji, więc stara się automatycznie unieszkodliwić ich wykluczające skutki.
No teraz to się po prostu czepiasz… =} Napisałem chyba jasno, że nie chodzi mi o ścisłą analogię, tylko o to, żeby się nie zdziwić kiedy sytuacje teoretyczne zmieniają się w praktyczne. Ty w to naturalnie nie musisz wierzyć, ale ja się liczę z różnymi niespodziankami.
W przypadku SCO chodziło o to, kto posiada prawa patentowe do Uniksa. SCO Group posądziło IBM o wprowadzenie zmian do jądra Linuksa, które rzekomo łamią posiadane przez nich patenty. IBM, Novell i RedHat miało w tej kwestii inne zdanie.
W przypadku GPL v3 praktycznie nic by się nie zmieniło. Dalej by stawiano to samo pytanie: czy IBM miał prawo wprowadzić te zmiany do kodu i czy nie łamią one patentów rzekomo posiadanych przez SCO?
Nie można uczynić cudzego patentu publicznym, jeśli nie posiada się do niego praw. Chyba, że mówimy o potencjalnym patentowym koniu trojańskim, o którym wspomniałem w jednym z komentarzy. Jednak taka sytuacja jest zbyt teoretyczna i co najważniejsze nie została sprawdzona w sądzie.
Natomiast ty zapewne mówisz o plikach ELF, które były rozpowszechniane przez Calderę na licencji GPL. Tylko, że to jest jeden patent, a cała sprawa dotyczyła bodajże 300 patentów.
Po pierwsze, znacznie bardziej prawdopodobne jest, że projekt open source zostanie pozwany przez firmę niekorzystającą z jego kodu. Dosyć świeży przykład to IBM przeciwko TurboHercules. Tutaj nawet GPL w wersji trzeciej nie pomoże.
Secundo, zadam to same pytanie co Tor. Potrafisz podać jakiś rzeczywisty przykład takiej sytuacji? Teoretycznie jest to możliwe, ale teoretycznie możliwe jest także stworzenie patentowego konia trojańskiego.
Wychodzisz celowo lub nieświadomie z naiwnym przeświadczeniem, że otwarte źródła to głównie wolontariat. W rzeczywistości za większymi i bardziej popularnymi projektami, stoi ta czy inna firma. Pytanie, więc czemu część korporacji tak mocno unika, a raczej zakazuje użycia GPL v3 w swoich siedzibach? Moje małe gdybanie:
Firma A korzysta z oprogramowania na licencji GPL v3, które jest sponsorowane przez Firmę B. Firma B wprowadza zmiany do tego oprogramowania, które naruszają patenty Firmy A. Firma A nieświadoma tego, zaczyna korzystać z tego oprogramowania – zmienia, kopiuje, rozpowszechnia etc. Pytanie czy w ten sposób patent Firmy A staje się dobrem ogólnym na licencji GPL?
Teoretycznie możliwe, jak temu zapobiec? Wyjścia są dwa, pełne audyty kodu są jednak prawdopodobnie zbyt czasochłonne i kosztowne, by były opłacalne. Łatwiej jest po prostu nie korzystać z kodu na GPL v3.
Osobiście przyznam, że GPL v3 to jedna z lepszych rzeczy jaka przydarzyła się środowisku open source. Dzięki temu popularność zyskują inne, bardziej sensowne licencje copyleftowe jak EPL czy CDDL. Większych zainteresowaniem zaczynają się cieszyć także projekty na bardziej liberalnych licencjach jak Apache, MIT, BSD etc.
@oO: Glownym problemem licencji GPL jest to, ze uniemozliwia ona wlaczenie kodu do innych projektow na innych licencjach Open Source. Przykladowo, kodu na GPL nie mozna wlaczyc do Mozilli czy Apache'a. Kodu na GPLv2 nie mozna wlaczyc do projektu uzywajacego GPLv2 bez "or newer", czyli na przyklad do kernela Linuksa.
Z kolei głównym problemem licencji BSD jest to, że umożliwia ona włączenie kodu do innych projektów na licencjach Closed Source
Zawsze istnieje coś pośredniego jak np. EPL. Copyleft w tej licencji jest dosyć słaby, więc prace pochodne mogą być zamknięte. Skompilowany kod EPL (binarne pliki) można re-licencjonować na czym komu się podoba.
Jedynie w przypadku bezpośredniego grzebania w kodzie i dystrybucji, trzeba udostępnić poprawki. EPL jest oczywiście kompatybilna z licencjami Apache, MPL etc, prócz GPL. Zapis dotyczący patentów też jest sensowny.
Zawsze projekt można wydać na BSD a część kodu która nas interesuje objąć copylefetem .
@Reddie: Dotychczasowe doswiadczenia jasno pokazuja, ze w koncowym rozrachunku wlaczanie kodu BSD do projektow Closed Source jest dla projektu lepsze niz nie wykorzystanie go w ogole z powodu nieakceptowalnej licencji. Wiec to zaleta, nie wada.
@trash: Ewentualnie można wybrać podwójne licencjonowanie podobnie jak w przypadku MySQL. Zjeść ciastko i mieć ciastko – z jednej strony ochrona copyleftowa, z drugiej możliwość sprzedaży na licencji własnościowej.
Tylko to zapewne ma niewiele wspólnego z głoszoną przez Stallmana wolnością. W każdym razie da się to zrobić i jest to chyba coraz popularniejsza praktyka.
@trasz: i w tym momencie wracamy do dyskusji o tym, jak dobroczynne skutki miała liberalna licencja dla projektu Wine. Przypomnę, stanęło na tym że ty twierdziłeś, iż zmiana licencji na GPL wcale nie rozwiązało problemu, a developerzy Wine – że wręcz przeciwnie.
Skolei dla projektu FreeBSD dała i pieniądze i rozwiązania od Apple .
Dla wine zmiana licencji była zbawieniem ale nie każdemu projektowi pasuje copyleftowa licencja .
@Reddie: Po zmianie licencji na GPL inne firmy zarabiaja na Wine, a developerzy Wine nie maja z tego ani grosza. Wiec ewidentnie nie rozwiazala.
Ale problemem który miała rozwiązać zmiana nie było to, że inne firmy zarabiają, tylko że podbierają kod a Wine ma z tego figę. Po zmianie nie podbierają kodu. Rozwiązała problem czy nie?
@krzabr: jasne, szkoda że zwykle okazuje się to po fakcie
@Reddie: Po zmianie nie podbieraja kodu, a Wine nadal ma z tego fige. Nic wiec sie nie "naprawilo".
Bynajmniej. Dokładnie pierwsze twoje zdanie mówi, co się poprawiło. "Po zmianie nie podbierają kodu".
A Wine wcale nie ma z tego figi, bo taki CrossOver mógł przed zmianą licencji pójść w ślady Cedegi. Teraz już nie może.
@Reddie: Znaczy, ich zysk jest taki, ze co prawda nic z tego nie maja, ale nikt inny tez nie. Innymi slowy, probujesz powiedziec, ze przeszli na "licencje psa ogrodnika"? ;->
Sporo dyskusji na temat licencji a zapominam o jednym – to autorzy podejmują decyzję jaką licencję chcą użyć. FSF ma prawo zabezpiczać swoją (i projektów z nimi powiązanych) pracę tak jak chce. Nie zapominajmy, że dzięki FSF możemy używać otwarte środowiska (GCC, libc, libstd, unixtools, fstools, shell-e, gnome itd).
Każdy autor, który zaczyna projekt ma prawo wyboru licencji i najprawdopodobniej wybierze ją ze względu na jego swoje potrzeby.
Jeśli chce zarabiać i maksymalnie wyciskać kasę – to zamknie kod.
Jeśli chce realizować swoje marzenia i rozwijać swoje umiejętności to weźmie BSD albo może coś innego.
A ja chce znaleźć firmę, która będzie go sponsorowała to pewnie użyje GPL2.
Tak czy inaczej autorzy używają licencji z różnych pobudek i pewnie nie każdemu autorowi np serwera www zależy aby być lepszym niż apache i mieć więcej sponsorów. Często są to ludzie którzy robią coś dla własnego zadowolenia i nie chcą aby ktoś im się wtrącał.
Bądźmy im wdzięczni za ich pracę i cieszmy się, że mamy wybór softu i licencji. Nie krytykujmy ich wyborów i ich pracy ze względu na nasze potrzeby.
To jest bardzo ważna uwaga. Sieć spowodowała, że nagle w jednej przestrzeni, czasem ze sobą poważnie konkurując, znalazły się najrozmaitsze rodzaje projektów (nie tylko programistycznych, ale skupmy się na nich) – hobbystyczne, startupy, biznesy własnościowe, ideologiczne, technokratyczne, jednoosobowe i państwowe… i ich mieszanki. Po prostu wszelkie.
Ta demokratyzacja powoduje, że wszyscy zaczęli sobie wchodzić w drogę, współpracować, albo po prostu tylko się nawzajem obserwować i jeszcze łatwiej niż dotąd zapożyczać pomysły.
@MG
Z grubsza zgoda. Ale "A ja chce znaleźć firmę, która będzie go sponsorowała to pewnie użyje GPL2.". Mógłbyś wyjaśnić na czym polega wyjątkowość licencji GPL2, która miałaby przyciągać firmy? Rozumiem, że linuks posiada wsparcie ze strony firm, ale czy to aby za sprawą samej licencji…
Nie potrafię Ci wytłumaczyć dlaczego GPL2 jest lepsze. W sumie użyłem to jako przykładu biorąc pod uwagę, że GPL3 jest bardziej restrykcyjne jeśli chodzi o otwartość. Różne firmy używają lub tworzą nowe licencje w odniesieniu do konkretnych potrzeb np. SUN wymyślił sobie CDDL tak, żeby nie można było kopiować kodu do Linuksa.
Bardziej chciałem się skupić na tym, że krytykujemy (ja czasem też) programistów, że robią coś bez sensu bo jakiś projekt już istnieje albo licencja jest nie taka – ale oni może robią to po prostu dla własnego zadowolenia. I mają do tego prawo. Jak się komuś nie podoba to nie musi tego używać.
@MG: Gwoli scislosci, kopiowanie kodu do Linuksa uniemozliwia licencja GPL. Sun stworzyl CDDL, czyli zmodyfikowana licencje Mozilli, bo potrzebowal czegos, co, w przeciwienstwie do GPL, nie utrudni wykorzystania kodu we wszystkim, co nie jest Linuksem. Innymi slowy, gdyby Sun wybral licencje GPL, wtedy kod nie moglby byc portowany do systemow innych niz Linux.
Ten kompilator ma sens. Skompilowałem go kompilatorem GCC
Jego sens jest w wielkości repozytorium kodu. Już od dawna wietrzę upadek takich projektów jak Firefox. GCC jest podobne. Repozytoria każdego z tych dwóch zajmuje setki MiB, a tak na prawdę wystarczyło by parę KiB
Ten kompilator jest dobrym przykładem – malutki. Setki MiB przeszkadzają bo zamiast pracować nad kodem trzeba grzebać by ten kod najpierw znaleźć. Sobie od czasu do czasu zaglądam do kodu niektórych projektów i w Firefoksie nie ma szans by cokolwiek znaleźć:) Nie miałem problemów z nawigacją w Kadu, gprolog czy Linuksem (kernel). Oprócz Firefoksa i GCC wietrzę upadek Glibc… To już w ogóle mistrzostwo przerostu formy nad treścią… Ciekawe kiedy "make check" w glibc będzie w końcu działać ^^" Bo znane jest że nie wiadomo dlaczego nie wszystkie testy wychodzą
Mam teorię: "O cyklu życia programów":
1. Powstaje program.
2. Może mu wyrosnąć konkurencja.
3. Program wygrywa i dominuje.
4. Z czasem kod rośnie, a rozwój staje się przez to trudniejszy.
5. Pkt 4 zaczyna irytować niektórych, chcących dokonać zmian, niestety opiekun kodu chce go chronić i na zmiany (drastyczniejsze) nie pozwala.
6. Ci podirytowani rzucają rękawice i piszą od podstaw własny odpowiednik programu. Co ciekawe kod jest zgrabny a funkcjonalność ta sama.
7. Przejrzystość kodu przyciąga programistów i projekt-pionier upada.
8. Skok do punktu 2 lub 3.
PS. Dobra, dobra
To nie działa ^^" pcc opiera się mojemu glibc. Jakie libc jest znane z współdziałania z pcc? Chciałbym skompilować przykładowe hello world i coś większego. (nawet ponoć wine prawie się z pcc kompiluje, ciekawe czy linux też da radę…)
Z "grubszych" rzeczy możesz spróbować skompilować jądro OpenBSD za pomocą PCC. Pisałem o tym swojego czasu.
Informacje jak zbudować jądro OpenBSD znajdziesz w tym FAQu. Ustawić trzeba oczywiście zmienną środowiskową CC, ale chyba o tym nie muszę mówić.
Fajny mały kompilator – dzięki temu będzie można go łatwo i sprawnie przenieść na różne architektury , często zapomniane a to da możliwość tworzenia eksperymentów programistycznych oraz zwiększania przenośności programów .
Prosty przykład takiego działania :
http://www.sics.se/contiki/platforms/contiki-comm…
Co do alternatywnych kompilatorów to clang radzi sobie coraz lepiej , można nim kompilować Free i DragonFlyBSD oraz HelenOS z biegiem czasu cała rodzina BSD oraz systemów RT będzie tam kompilowalna . A to tylko zwiększy konkurencyjność
Trasz , blinkkin :
Ktoś z was wie czy Clang jest w stanie skompilować system używający newlib ?
Jeśli tak to będzie można w nim skompilować rtemsa
Thanks pal. This has been nice reading
Your place is valueble for me. Thanks!