Jaki jest najmniej dostrzegany element w systemach FLOSS? Środowiska graficzne, pakiety biurowe, przeglądarki, a nawet jądra, kompilatory i biblioteki mają tutaj swoich fanów i przeciwników. Ale nikt nie zwraca uwagi na konsolidatora (nazywanego powszechnie linkerem).
Tymczasem Ian Lance Taylor wziął się za pisanie własnego linkera. Do pracy wziął się porządnie. Najpierw opublikował na swoim blogu serię 20 wpisów na temat budowy i działania konsolidatorów, a następnie opublikował kod “gold”.
Nowy linker ma swoje ograniczenia — działa tylko na architekturach x86 oraz x86_64 i produkuje binarki wyłączne w formacie ELF, jednak są to bardzo typowe platformy, a gold notuje 5-krotny wzrost prędkości w stosunku do ld! Kod trafił już do binutils jako alternatywa dla ld. Taylor myśli o portowaniu swojego linkera na dalsze architektury (ale będzie obsługiwać tylko format ELF) oraz o przyspieszeniu go przez odejście od pojedynczego, liniowego przebiegu konsolidacji. Warto wspomnieć, że istnieje też podobna inicjatywa dotycząca przyrostowej kompilacji pod GCC.
Na orbicie wokół GCC krążą też dwa inne interesujące narzędzia. Pierwszy to quagmire, którego celem jest eliminacja aplikacji pomocniczych w rodzaju autotools czy m4 i wykorzystywanie w ich miejsce wyłącznie GNU make.
Drugi (którego opiekunem jest Anthony Green) nosi nazwę ggx. W tym eksperymencie chodzi o kompilację na wirtualną architekturę sprzętową, inspirowaną możliwościami kompilatora, czyli odwrotnie niż robi się to zazwyczaj. Ggx nie jest zbyt zaawansowane w implementacji, ale przechodzi już spore fragmenty testów GCC i potrafi wydusić z siebie standardowe “hello world”.
Dodaj komentarz