Po roce a půl vývoje došlo k vydání nástroje GNU Mes 0.25, který zajišťuje proces bootstrappingu pro GCC a umožňuje dosáhnout uzavřeného cyklu překompilace z původních zdrojových textů. Tento nástroj řeší úlohu verifikované počáteční kompilace překladače v distribucích, přičemž přerušuje řetězec cyklické překompilace (pro kompilaci překladače jsou potřeba spustitelné soubory již zkompilovaného překladače, a binární verze překladače mohou být potenciálním zdrojem skrytých zadních vrátek, což neumožňuje plně zaručit integritu kompilací z referenčních zdrojových textů).
GNU Mes nabízí samostatný (self-hosting) interpretér pro jazyk Scheme, napsaný v jazyce C, a jednoduchý kompilátor pro jazyk C (MesCC), napsaný v jazyce Scheme. Oba komponenty jsou vzájemně kompilovatelné. Interpretér jazyka Scheme umožňuje kompilaci C-kompilátoru MesCC, který pak umožňuje kompilaci zjednodušené verze kompilátoru TinyCC (tcc), jehož možnosti jsou již dostatečné pro sestavení GCC.
Interpretér jazyka Scheme je velmi kompaktní, obsahuje přibližně 5000 řádků kódu na jednoduchém podmnožinu jazyka C a může být převeden na spustitelný soubor pomocí univerzálního překladače M2-Planet nebo jednoduchého C-kompilátoru, zkompilovaného pomocí samokompilovatelného assembleru hex0, který nevyžaduje externí závislosti. Interpretér navíc obsahuje plnohodnotný sběrač odpadu a poskytuje knihovnu načítatelných modulů. Projekt rovněž rozvíjí knihovnu C Mes, která je dostačující k tomu, aby zkompilovala glibc 2.2.5, binutils 2.20.1 a gcc 2.95.3, které jsou nezbytné pro nasazení distribuce Guix na platformách i686-linux, x86_64-linux, armhf-linux a aarch64-linux, s využitím pouze původních textů (Full Source Bootstrap).
V novém vydání byla implementována podpora architektury RISC-V (RISC-V64-linux) a byla přidána podpora kompilace pomocí transpilátoru M2-Planet. Podporuje se sestavení s verzí M2-Planet 1.11.0 pro cílovou platformu x86_64-linux. Specifikace režimu „—bootstrap-mode“ při používání M2-Planet již není nutná. V MesCC byly vyřešeny problémy s kompatibilitou s verzemi GCC 10+, byla zajištěna inicializace polí struktur na hodnotu 0 a byla obnovena možnost ladění binárních souborů na úrovni jednotlivých funkcí.
V následujících vydáních se očekává podpora bootstrappingu NixOS pouze z původních zdrojových kódů, podpora modulů plně kompatibilních s Guile, možnost spuštění Gash a Gash-Utils, podpora bootstrappingu gcc 4.6.4 a také možnost kompletního sestavení celého systému z původních zdrojových kódů v Linuxových prostředích založených na architekturách armhf a riscv64.
Zdroj: opennet.ru
