Másfél év fejlesztés után megjelent a GNU Mes 0.25 eszközkészlet, amely biztosítja a GCC bootstrap folyamatát, és lehetővé teszi a forráskódokból való visszaszerkesztés zárt ciklusának elérhetőségét. Az eszközkészlet megoldja a fordító hiteles kezdeti összeszerelésének kérdését disztribúciókban, megszakítva a ciklikus összeszerelés láncát (a fordító összeszereléséhez már meglévő, összeszerelt fordító programjaira van szükség, és a bináris fordítók potenciális forrásai lehetnek rejtett hátsó ajtóknak, ami nem garantálja teljes mértékben az eredeti forráskódokból való összeszerelés integritását).
A GNU Mes önálló (self-hosting) Scheme értelmezőt kínál, amely C nyelven íródott, és egy egyszerű C fordítót (MesCC), amely Scheme nyelven készült. Mindkét komponens kölcsönösen összeszerelhető. A Scheme értelmező lehetővé teszi a MesCC C fordító összeszerelését, amely aztán lehetővé teszi a TinyCC (tcc) vágott verziójának összeszerelését, melynek lehetőségei elegendőek a GCC összeszereléséhez.
A Scheme nyelv értelmezője nagyon kompakt, körülbelül 5000 kódsorból áll a C nyelv legegyszerűbb részhalmazán, és univerzális M2-Planet fordítóval vagy a hex0 önálló assemblerrel, amely nem igényel külső függőségeket, végrehajtható fájlra alakítható. Az értelmező teljes értékű szemétgyűjtőt tartalmaz, és modulok betöltésére szolgáló könyvtárat biztosít. A projekt a Mes C C könyvtárat is fejleszti, amely elegendő a glibc 2.2.5, binutils 2.20.1 és gcc 2.95.3 összeszereléséhez, amelyek szükségesek a Guix disztribúció telepítéséhez i686-linux, x86_64-linux, armhf-linux és aarch64-linux platformokra, kizárólag források felhasználásával (Full Source Bootstrap).
Az új kiadásban megvalósult a RISC-V architektúra (RISC-V64-linux) támogatása, és hozzáadták az M2-Planet transpilerrel való fordítást. A M2-Planet 1.11.0 verziójával való fordítás támogatott az x86_64-linux célplatformon. Az M2-Planet használatakor a "--bootstrap-mode" mód megadása már nem szükséges. A MesCC megoldotta a GCC 10+ verziókkal való kompatibilitási problémákat, inicializálta a struktúrák mezőit 0 értékre, és visszaállította a bináris fájlok lehetséges hibakeresésének lehetőségét egyes funkciók szintjén.
A következő kiadásokban várható a NixOS bootstrap támogatásának megjelenése kizárólag forráskódokból, Guile-kompatibilis modulok támogatása, a Gash és Gash-Utils futtatásának lehetősége, a gcc 4.6.4 bootstrap támogatása, valamint a teljes rendszer forráskódokból való összeszerelésének lehetősége Linux környezetben armhf és riscv64 architektúrák esetén.
Forrás: opennet.ru
