Opublikowano wydanie narzędzia GNU Mes 0.27, które umożliwia proces bootstrapowania dla GCC i pozwala osiągnąć zamkniętą pętlę rekompilacji z kodów źródłowych. Narzędzie rozwiązuje problem weryfikowanej początkowej kompilacji kompilatora w dystrybucjach, przerywając łańcuch cyklicznej rekompilacji (do zbudowania kompilatora wymagane są pliki wykonywalne już zbudowanego kompilatora, a binarne wersje kompilatora mogą być potencjalnym źródłem ukrytych backdoorów, co nie pozwala na pełne zapewnienie integralności wersji z oryginalnych kodów źródłowych).
W GNU Mes oferowany jest samowystarczalny interpreter dla języka Scheme, napisany w języku C, oraz najprostszy kompilator dla języka C (MesCC), napisany w języku Scheme. Oba komponenty mogą się wzajemnie kompilować. Interpreter Scheme umożliwia zbudowanie kompilatora C MesCC, który następnie pozwala na skompilowanie okrojonej wersji kompilatora TinyCC (tcc), której możliwości są wystarczające do kompilacji GCC.
Interpreter języka Scheme jest bardzo kompaktowy, zajmuje około 5000 linii kodu w najprostszej podzbiorze języka C i może być przekształcony w plik wykonywalny za pomocą uniwersalnego translacji M2-Planet lub najprostszego kompilatora C, zbudowanego przy użyciu samokompilującego assemblera hex0, nie wymagającego zewnętrznych zależności. Interpreter zawiera pełnoprawny zbieracz śmieci i udostępnia bibliotekę modułów do załadowania. Projekt rozwija również bibliotekę C Mes, która jest wystarczająca do zbudowania glibc 2.2.5, binutils 2.20.1 oraz gcc 2.95.3, niezbędnych do wdrożenia dystrybucji Guix dla platform i686-linux, x86_64-linux, armhf-linux oraz aarch64-linux, wykorzystując jedynie kody źródłowe (Full Source Bootstrap).
W nowym wydaniu wznowiono wsparcie dla uruchamiania Mes w środowisku GNU Hurd. Dodano nowe moduły: rnrs (operacje bitowe) oraz srfi (srfi-39). Aby zapewnić zgodność z Guile, moduł srfi ładowany jest domyślnie. Dodano nowe funkcje: pair-for-each oraz with-fluids*. W kompilatorze MesCC zaimplementowano możliwość pracy z modułami do generowania parserów i analizatorów leksykalnych NYACC wersji od 0.99.0 do 1.09.4. Usunięto możliwość korzystania z przestarzałych modułów w stylu mes dla NYACC i MesCC.
Źródło: opennet.ru
