Po półtora roku prac nad rozwojem wydano narzędzie GNU Mes 0.25, które zapewnia proces bootstrapowania dla GCC i umożliwia osiągnięcie zamkniętej pętli ponownej kompilacji z kodów źródłowych. Narzędzie rozwiązuje problem zweryfikowanej początkowej kompilacji kompilatora w dystrybucjach, przerywając łańcuch cyklicznej ponownej kompilacji (do skompilowania kompilatora wymagane są pliki wykonywalne już skompilowanego kompilatora, a binarne kompilacje kompilatora mogą być potencjalnym źródłem ukrytych backdoorów, co uniemożliwia całkowite zapewnienie integralności kompilacji z etalonowych 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 zrealizowano wsparcie dla architektury RISC-V (RISC-V64-linux) oraz dodano obsługę kompilacji przy użyciu transpiler M2-Planet. Obsługiwane jest kompilowanie z wersją M2-Planet 1.11.0 dla docelowej platformy x86_64-linux. Wskazywanie trybu „--bootstrap-mode” przy użyciu M2-Planet nie jest już wymagane. W MesCC rozwiązano problemy z kompatybilnością z wersjami GCC 10+, zapewniono inicjalizację pól struktur na wartość 0 oraz przywrócono możliwość debugowania plików binarnych na poziomie poszczególnych funkcji.
W kolejnych wydaniach przewiduje się dodanie wsparcia dla bootstrapowania NixOS wyłącznie z kodów źródłowych, wsparcia dla modułów w pełni zgodnych z Guile, możliwości uruchamiania Gash i Gash-Utils, wsparcia dla bootstrapowania gcc 4.6.4, a także możliwość pełnej kompilacji całego systemu z kodów źródłowych w środowiskach Linux opartych na architekturach armhf i riscv64.
Źródło: opennet.ru
