Na konferencji LinuxCon North America, która odbyła się w dniach 16 – 18 września 2013 roku, Behan Webster przedstawił obecne prace nad projektem LLVMLinux. Chodzi mianowicie o umożliwienie pełnej i bez błędów kompilacji jądra Linux z użyciem LLVM i Clang. Owe narzędzia są wykorzystywane m.in. przez Apple, nVidia, Intel, Google, a nawet Debiana. Dodatkowo LLVM 3.3 i Clang 3.3, jako jedne z pierwszych narzędzi obsługiwały w pełni standard C++11.
Oto najważniejsze punkty z prezentacji:
- LLVM 3.3 i Clang 3.3 posiadają już odpowiednie wsparcie, aczkolwiek zintegrowany asembler Clang jest nadal wyłączony
- LLVM 3.3 i Clang 3.3 potrafią już kompilować jądro Linux, jednakże nadal potrzebne jest dodanie kilku łatek spoza głównego drzewa jądra Linux.
- Deweloperzy LLVM na bieżąco obserwują zmiany w jądrze, dzięki czemu mogą cały czas wprowadzać zmiany w kodzie
- Można pomóc w rozwoju, poprzez testowanie łatek, zgłaszanie błędów, pracą nad nowymi funkcjami lub zgłoszeniem własnych poprawek
Jądro Linux może być kompilowane z użyciem LLVM/Clang | OSWorld.pl http://t.co/jkEvqKUDF9 via @OSWorldpl
Oskar Duwe liked this on Facebook.
Michał Olber liked this on Facebook.
Krzysztof Hajd liked this on Facebook.
I jest jakiś realny zysk z tego, czy tak sztuka dla sztuki?
Firmy zajmujące się ARM za to płacą.
poza takim, że nie trzeba mieć kompilatora GNU? :D
Clang potrafi wypluć wydajniejszy kod niż GCC więc zysk to większa wydajność jądra oraz kompilacja trwa mniej niż w GCC więc zmniejszenie czasu kompilacji. Główny minus Clanga nie jest w jądrze istotny (brak wsparcia dla standardu OpenMP), bo i tak nie może z niego skorzystać.
To czemu na Phoronix nie mogą tej wydajności udowodnić?
Może dlatego, że używają -O3 czyli maksymalnego poziomu optymalizacji GCC też dla Clang, gdzie masz do -O4, a resztę optymalizacji zarówno w GCC i Clang trzeba włączyć ręcznie, a na Phoronix wydaje się, że nie mają pojęcia o żadnym z tych kompilatorów (brak optymalizacji Interprocedural optimization, Profile-Guided Optimization, Link Time Optimization… i masy innych (brak wektoryzacji przykładowo)).
Po prostu nie testują jakie możliwości maja te kompilatory w rękach programisty, który wyciśnie z nich wszystko, a jaki kod wypluwają w rękach laika, który nie do końca wie co robi.
Czyżby kolejna sytuacja kiedy to phoronix ma złą metodologię testów ?
Druga sprawa jest taka że GCC od lat 90tych był monopolistą wśród wolnych kompilatorów C, stąd konkurencja korzystnie wpłynie na oba produkty.
To zależy, czy ktoś będzie chciał w GCC inwestować. Na razie duża część pieniędzy idzie na LLVM.
OpenMP ostatnio dodał Intel.
Intel dodał brancha, ale zanim wejdzie to do trunka to jeszcze droga daleka, bo obecnie wspierane z tego co pamiętam jest tylko Linux, MacOS i tylko x86_64… a to trochę mało (mimo wszystko przydałby się Windows i wsparcie dla ARM/PowerPC zanim wejdzie do trunka).
Krzysztof Taraszka liked this on Facebook.
[…] proces optymalizacji i ewentualnych błędów. Warto zaznaczyć, że pierwsze wzmianki o tym, że jądro Linux może być kompilowane z użyciem LLVM/Clang pojawiły się w połowie października tamtego roku. Osoby zainteresowane projektem powinny […]