Efter halvandet års udvikling er GNU Mes 0.25 værktøjet blevet udgivet, hvilket muliggør bootstrapping-processen for GCC og gør det muligt at opnå en lukket cyklus af genkompilering fra kildekoder. Værktøjet løser opgaven med en verificeret startbygning af compilere i distributioner, hvilket bryder kæden af cyklisk genkompilering (da bygning af compilere kræver eksekverbare filer fra en allerede bygget compiler, og binære builds af compilere kan være en potentiel kilde til skjulte bagdørsadgang, hvilket ikke fuldt ud kan garantere integriteten af builds fra reference kildekoder).
I GNU Mes tilbydes en selvforsynende (self-hosting) interpreter for sproget Scheme, skrevet i C, samt en simpel compiler for C-sproget (MesCC), skrevet i Scheme. Begge komponenter kan gensamles. Scheme-interpreteren muliggør opbygningen af C-kompilatoren MesCC, som derefter kan bygge en beskåret version af kompilatoren TinyCC (tcc), hvis funktionalitet allerede er tilstrækkelig til at bygge GCC.
Interpreteren for sproget Scheme er meget kompakt og består af ca. 5000 kodelinjer på det enkleste underrække af C-sproget og kan omdannes til et eksekverbart fil ved hjælp af den universelle oversætter M2-Planet eller en simpel C-compiler, bygget ved hjælp af den selvopbyggelige assembler hex0, som ikke kræver eksterne afhængigheder. Desuden inkluderer interpretereren en fuld garbage collector og tilbyder et bibliotek af indlæselige moduler. Projektet udvikler også C-biblioteket Mes C, som er tilstrækkeligt til at bygge glibc 2.2.5, binutils 2.20.1 og gcc 2.95.3, som er nødvendige for at implementere distributionen Guix til platformene i686-linux, x86_64-linux, armhf-linux og aarch64-linux, ved kun at bruge kildekoder (Full Source Bootstrap).
Den nye udgivelse har implementeret understøttelse af RISC-V arkitektur (RISC-V64-linux) og tilføjet understøttelse af kompilering ved hjælp af transpiler M2-Planet. Bygning med version M2-Planet 1.11.0 til målplatformen x86_64-linux understøttes. Angivelse af "—bootstrap-mode" er ikke længere nødvendig ved brug af M2-Planet. Problemer med kompatibilitet med GCC versioner 10+ er blevet løst i MesCC, initiere strukturfelter til værdi 0 og muligheden for at debugge binære filer på niveau med individuelle funktioner er blevet genoprettet.
I de kommende udgivelser forventes der at komme støtte til bootstrapping af NixOS udelukkende fra kildekoder, støtte til moduler, der er fuldt kompatible med Guile, muligheden for at køre Gash og Gash-Utils, støtte til bootstrapping af gcc 4.6.4, samt muligheden for en fuldstændig bygning af hele systemet fra kildekoder i Linux-miljøer baseret på arkitekturerne armhf og riscv64.
Kilde: opennet.ru
