Wydanie GNU Mes 0.23, zestawu narzędzi do samodzielnego budowania dystrybucji

Po roku rozwoju wydano GNU Mes 0.23, zestaw narzędzi zapewniający bootstrapping dla GCC i umożliwiający kompilację w zamkniętej pętli z kodu źródłowego. Ten zestaw narzędzi rozwiązuje problem zweryfikowanych, początkowych kompilacji kompilatora w dystrybucjach, przerywając cykl przebudowy (kompilatory wymagają plików wykonywalnych już skompilowanego kompilatora, a kompilacje binarne są potencjalnym źródłem ukrytych luk w zabezpieczeniach, uniemożliwiając pełne zagwarantowanie integralności kompilacji z referencyjnego kodu źródłowego).

GNU Mes oferuje samoobsługowy interpreter języka Scheme, napisany w C, oraz prosty kompilator języka C (MesCC), napisany w Scheme. Oba komponenty są wzajemnie powiązane. Interpreter Scheme umożliwia zbudowanie kompilatora MesCC C, który następnie umożliwia zbudowanie uproszczonej wersji kompilatora TinyCC (tcc), który jest już w stanie zbudować GCC.

Interpreter języka Scheme jest dość kompaktowy, zajmując około 5000 linii kodu w prostym podzbiorze języka C. Można go przekonwertować na plik wykonywalny za pomocą uniwersalnego translatora M2-Planet lub prostego kompilatora C zbudowanego z wykorzystaniem samoasemblującego się assemblera hex0, który nie wymaga zewnętrznych zależności. Interpreter zawiera również w pełni funkcjonalny moduł odśmiecania pamięci i udostępnia bibliotekę ładowalnych modułów.

Nowa wersja dodaje obsługę architektury ARM (armhf-linux i aarch-linux). Dodano obsługę Mes z ograniczonym zestawem plików bootstrap z projektu GNU Guix (GNU Guix Reduced Binary Seed). Zaimplementowano obsługę kompilacji Mes i biblioteki Mes C za pomocą GCC 10.x. Kompilator MesCC zawiera teraz własną bibliotekę libmescc.a (-lmescc), a podczas kompilacji za pomocą GCC określono parametr „-lgcc”. Dodano również obsługę kompilacji MesCC za pomocą Guile 3.0.x.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster