vydání nástroje , který zajišťuje proces bootstrapování pro GCC a umožňuje dosáhnout uzavřeného cyklu přestavby z výchozích textů.
Nástroj řeší úlohu verifikované počáteční sestavy kompilátoru v distribucích, přerušující cyklickou přestavbu (k sestavení kompilátoru jsou vyžadovány spustitelné soubory již sestaveného kompilátoru a binární sestavy kompilátoru jsou potenciálním zdrojem skrytých zadních vrátek, což neumožňuje plně garantovat integritu sestav z referenčních výchozích textů).
V GNU Mes samostatný (self-hosting) interpret pro jazyk Scheme, napsaný v jazyce C, a nejjednodušší kompilátor pro jazyk C (MesCC), napsaný v jazyce Scheme. Oba komponenty se vzájemně sestavují. Interpret Scheme umožňuje sestavit C-kompilátor MesCC, který pak umožňuje sestavit zjednodušenou verzi kompilátoru (tcc), jehož možnosti jsou již dostatečné pro sestavení GCC.
Interpret jazyka Scheme je dostatečně kompaktní, zabírá přibližně 5000 řádků kódu v nejjednodušším podmnožství jazyka C a může být převeden na spustitelný soubor pomocí univerzálního překladače nebo nejjednoduššího C-kompilátoru, sestaveného pomocí samosestavitelného assembleru , který nevyžaduje externí závislosti. Interpret zahrnuje plnohodnotný garbage collector a poskytuje knihovnu dynamických modulů.
V novém vydání byla zajištěna podpora opakovaných sestav s využitím svazků mes+mescc nebo guile+mescc v distribucích GNU Guix, Debian GNU/Linux a NixOS. Přidána možnost spuštění Scheme-interpretu Mes v GNU Hurd, ale C-kompilátor mescc zatím nefunguje kvůli absenci podpory potřebných systémových volání (např. fork/exec). Byla přidána počáteční podpora pro vytváření spustitelných souborů FreeBSD. Zlepšena podpora bootstrapování distribuce Guix s použitím pouze komponentů napsaných v jazyce Scheme (příkazový shell Gash (Guile as Shell) místo bash a Gash Core Utils místo coreutils, grep, sed, gzip, make, awk a tar).
V příštích vydáních se očekává podpora bootstrappingu pro NixOS, zahrnutí bootstrappingu pouze s použitím komponentů v jazyce Scheme ve větvi wip-bootstrap, podpora architektury ARM, možnost kompilace Mes.c s použitím M2-Planet, úplná podpora modulů Guile, zajištění fungování mescc s jádrem Hurd.
Zdroj: opennet.ru
